20251006 筆記,內容可能有錯,請參考來源影片。
[李宏毅機器學習2021影片](https://www.youtube.com/playlist?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J)
今天影片內容
[【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (三) - Actor-Critic](https://youtu.be/kk6DqWreLeU?si=ZGAVagNkQW1aOmk2)
[【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (四) - 回饋非常罕見的時候怎麼辦?機器的望梅止渴]([Link](https://youtu.be/73YyF1gmIus?si=EIKOeBdp034yFkJc))
[【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (五) - 如何從示範中學習?逆向增強式學習 (Inverse RL)](https://youtu.be/75rZwxKBAf0?si=NCOSHWXM2-lDzvKH)
### 【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (三) - Actor-Critic 大綱
### I. Critic 的介紹與價值函數 (Value Function)
A. Critic 的功能:評估**狀態 (State, S)** 或**狀態-動作 (State-Action)** 的好壞。
B. 核心概念:**價值函數 $V^{\pi}(S)$**。
1. 意義:在狀態 $S$ 下,特定 Actor ($\pi$) 接下來預期可獲得的**折扣累積獎勵 (Discounted Cumulative Reward)**。
2. $V(S)$ 的值與 Actor 的能力有關。
### II. Critic 的訓練方法
A. 方法一:**Monte Carlo, MC**
1. 機制:Actor 必須**玩完一整場遊戲** (Episode)。
2. 訓練目標:將實際觀測到的累積獎勵 ($G$) 作為 $V(S)$ 的目標值。
B. 方法二:**Temporal Difference, TD**
1. 機制:利用狀態之間的關係 $V(S_t) \approx R_t + \gamma V(S_{t+1})$ 進行學習。
2. 優勢:不需等到遊戲結束即可更新參數,適用於長回合或無終止的遊戲。
C. MC 與 TD 的差異與潛在矛盾。
### III. 利用 Critic 訓練 Actor:Advantage Actor-Critic
A. Critic 的作用:作為動作分數 ($A_t$) 計算中的**基準線 (Baseline, $B$)**。
B. 動作分數 $A_t$ (版本一):$A_t = G'_t - V(S_t)$。
1. 意義:比較特定動作的樣本回報 ($G'_t$) 與平均期望回報 ($V(S_t)$) 的差距。
C. A2C 的動作分數 (版本二):**拿平均減平均**。
1. 定義:$A_t = (R_t + V(S_{t+1})) - V(S_t)$。
2. 意義:比較執行 $A_t$ 後的期望回報與在 $S_t$ 下的平均期望回報。
D. 實作技巧:Actor 與 Critic 共享網路中前幾層參數。
### IV. 相關強化學習方法
A. Q-Learning:直接依賴 Critic (Q 函數) 來決定動作的另一系列方法。
B. DQN 與 Rainbow:DQN 是 Q-Learning 的知名實例,而 Rainbow 結合了七種 DQN 的變形。
---
### I. Critic 的介紹與價值函數 (Value Function)
* **目標**:在強化學習 (RL) 中,除了訓練 Actor 之外,我們也訓練另一個稱為 **Critic** 的網路。
* **Critic 的工作**:評估**狀態 (State, $S$)** 或**狀態-動作 (State-Action)** 對的好壞。
* **價值函數 $V^{\pi}(S)$**:Critic 的其中一種變形,在作業中也派得上用場。
* **表示方式**:用 $V(S)$ 來表示價值函數,上標 $\pi$ (或 $Z$) 代表它是觀察特定的 Actor 參數 $Z$。
* **輸入與輸出**:輸入是當前的狀態 $S$ (例如遊戲畫面),輸出是單一純量,稱為 $V(S)$。
* **數值含義**:$V(S)$ 預測的是 Actor 看到狀態 $S$ 之後,接下來會得到的Discounted Cumulative Reward。
* **預測性**:$V(S)$ 能夠在遊戲還未結束時,**未卜先知**地預測 Actor 接下來的表現。
* **與 Actor 相關**:**$V(S)$ 的數值與其觀察的 Actor 有關**。例如,一個好的 Actor 看到一個充滿外星人的畫面可能會有高的 $V(S)$,但如果 Actor 很爛很容易被殺死,即使看到同樣的畫面,其 $V(S)$ 也會很低。
### II. Critic 的訓練方法
訓練 Critic 的目的是讓 $V(S)$ 的輸出盡量接近實際的期望累積獎勵。
#### A. Monte Carlo, MC
* **機制**:MC 法非常直覺。
* 將 Actor 拿去與環境互動,**玩完整場遊戲 (Episode)**。
* 記錄每個狀態 $S$ 之後實際發生的累積獎勵 $G$。
* 訓練 Value Function $V(S)$:以 $(S, G)$ 配對作為訓練資料,讓 $V(S)$ 的輸出與 $G$ 越接近越好。
* **挑戰**:需要玩到遊戲結束才能得到一筆訓練資料。
#### B. Temporal Difference, TD
* **機制**:TD 法的目的是**不用玩完整場遊戲**就能更新 $V(S)$ 的參數。
* **優勢**:如果遊戲很長,或根本不會結束 (Endless Game),TD 法比 MC 法更合適。
* **核心關係**:TD 基於 $V(S_t)$ 和 $V(S_{t+1})$ 之間的關聯。
$$V(S_t) \approx R_t + \gamma V(S_{t+1})$$
* 其中 $R_t$ 是在 $S_t$ 執行 $A_t$ 得到的即時獎勵,$\gamma$ 是折扣因子。
* **訓練方式**:將 $V(S_t)$ 減去 $\gamma V(S_{t+1})$ 應該要接近 $R_t$。因此,可以將 $R_t$ 作為目標 (Target),訓練 $V(S_t)$ 使得 $V(S_t) - \gamma V(S_{t+1})$ 越接近 $R_t$ 越好。
#### C. MC 與 TD 的比較
* 兩者可能計算出不同的 $V(S)$ 結果,因為它們的**背後假設不同**。
* **MC 假設**:直接看觀測到的數據。
* **TD 假設**:假設 $S_t$ 和 $S_{t+1}$ 之後的累積獎勵是**獨立的**。TD 認為 $S_{t+1}$ 之後的期望獎勵 $V(S_{t+1})$ 不會因為其來自 $S_t$ 而被影響。
### III. 利用 Critic 訓練 Actor:Advantage Actor-Critic
* **需求**:在策略梯度 (Policy Gradient) 中,需要一個分數 $A$ 來評估某個狀態 $S$ 下的動作 $A$ 是好還是不好。
* **基準線 (Baseline)**:$A$ 需要透過減去一個**基準線 $B$** 來進行標準化 (Normalization),使其有正有負。
* **Critic 作為基準線**:一個合理的 $B$ 選擇是**價值函數 $V(S)$**。
* $A_t = G'_t - V(S_t)$。
* $V(S_t)$ 代表在狀態 $S_t$ 下,**隨機採樣** Actor 輸出的動作,預期將獲得的**平均**累積獎勵。
* 如果 $G'_t > V(S_t)$ (即 $A_t > 0$),表示實際採取的動作 $A_t$ 比平均動作要好,應受到鼓勵。
* **Advantage Actor-Critic 的 $A_t$**:
* 為了解決 $G'_t$ 只是**單一樣本**而非期望值,A2C 提出**拿平均減平均**的動作分數定義。
* Advantage Actor-Critic 將 $A_t$ 定義為:
$$A_t = (R_t + \gamma V(S_{t+1})) - V(S_t)$$
* $(R_t + \gamma V(S_{t+1}))$ 這一項:代表執行 $A_t$ 後,預期將獲得的累積獎勵的**期望值**。
* **Advantage Actor-Critic 目的**:比較執行特定動作 $A_t$ 的期望回報,與不執行 $A_t$ 而只是隨機採樣動作的期望回報 ($V(S_t)$) 之間的差距。
* **Actor-Critic 實作技巧**:
* Actor (輸出 Action 分數) 和 Critic (輸出 $V(S)$ 純量) 的輸入都是 $S$ (例如遊戲畫面)。
* 這兩個網路的**前幾層參數通常會共用** (Share Weights),因為它們都需要學習如何理解狀態 $S$。
### IV. 相關強化學習方法
* **DQN (Deep Q-Network)**:
* DQN 屬於另一類 RL 方法,它直接訓練 Critic 的另一種形式:**Q 函數** (Q-function),然後直接透過 Q 函數決定要採取的最佳動作。
* **Rainbow**:一篇著名的論文,將七種 DQN 變形方法組合在一起。
### 【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (四) - 回饋非常罕見的時候怎麼辦?機器的望梅止渴 大綱
### **一、強化學習中的稀疏獎勵問題**
1. 稀疏獎勵 (Sparse Reward) 的定義與影響。
2. 典型的稀疏獎勵任務示例。
### **二、Reward Shaping的定義與目的**
1. Reward Shaping的定義:提供額外獎勵引導 Agent 學習。
### **三、Reward Shaping的應用實例與注意事項**
1. VizDoom 遊戲中的Reward Shaping策略。
2. Reward Shaping的風險:需要領域知識 (Domain Knowledge)。
### **四、基於好奇心的Reward Shaping (Curiosity-Based Shaping)**
1. 好奇心的定義:探索引導。
2. 「有意義的新事物」的必要性。
3. 瑪利歐遊戲實驗案例。
---
### **一、強化學習中的稀疏獎勵問題**
* **稀疏獎勵的定義與問題 (Sparse Reward)**:在強化學習 (RL) 中,如果 **Reward(獎勵)永遠都是 0**,或者在多數時候都是 0,只有極低的機率能得到巨大的獎勵,這就是稀疏獎勵問題。
* 若獎勵幾乎都是 0,Agent 無法訓練。因為無論執行什麼 **Action(動作)**,得到的獎勵都差不多(都是 0),Agent 無法區分動作的優劣。
* **任務示例**:
* **機械手臂鎖螺絲**的任務是典型的稀疏獎勵問題。Agent 剛開始隨機揮舞時,無論做什麼,獎勵幾乎都是 0。除非非常巧合地完成鎖螺絲的動作,才會得到正向獎勵。
* 相比之下,**下圍棋**雖然每落一子沒有獎勵,只有遊戲結束時才有輸贏的獎勵,但仍被認為是獎勵稀疏程度較低的 RL 問題。
### **二、Reward Shaping的定義與目的**
* **Reward Shaping 定義**:在 Agent **真正要最大化(最終目標)**的獎勵之外,提供**額外的獎勵**來引導 Agent 學習。
* **目的**:幫助 Agent 學習,尤其是在面對稀疏獎勵問題時。
* **概念比喻**:
* 這類似於《妙法蓮華經》中「化城喻品」的故事。領隊帶領一群人尋找寶藏,走了半途大家疲累不想前進。領隊用法力變出一個五星級飯店,讓大家休息,以鼓勵他們繼續前進。
* 這就像念博士的漫長過程。如果只將博士畢業視為最終獎勵,路途太長;透過設定修課、做專題、發表不同層級的論文等階段性目標,作為額外獎勵來引導完成最終目標。
### **三、Reward Shaping的應用實例與注意事項**
* **VizDoom 遊戲應用**:VizDoom 是一個第一人稱射擊遊戲。僅憑遊戲中真實的獎勵(殺敵加分,被殺扣分)訓練 Agent 難以成功。
* **VizDoom 塑造的獎勵策略**:
* **負面獎勵 (懲罰)**:扣血就得到負向獎勵。雖然遊戲本身是直到死亡才扣分,但懲罰扣血有助於 Agent 學習扣血與死亡的關聯性。損失彈藥也會扣分。
* **正向獎勵**:撿到醫藥包或彈藥補給包會得到正向獎勵,儘管這些行為本身不影響遊戲分數。
* **強制移動**:如果 Agent **總是待在原地,則扣分**。這是為了避免弱小的 Agent 選擇待在原地(獎勵為 0)以避免與敵人交戰(可能扣血),導致什麼都學不到。Agent 每次移動會獲得一個非常小的正向獎勵($9 \times 10^{-5}$)。
* **活著即懲罰**:Agent **每活著一段時間就被扣分**。這種設計強迫 Agent 必須去殺敵,避免它學會只在邊緣轉圈或躲避敵人,必須想辦法交手。
* **注意事項**:Reward Shaping需要**領域知識 (domain knowledge)**,必須憑藉人類對環境的理解來強加獎勵。
* **機械手臂鎖螺絲風險案例**:如果只以「藍色板子離棍子越近」作為獎勵,Agent 可能學會從側面接近棍子或撞擊棍子。這無法幫助 Agent 完成插入的最終目標。
### **四、基於好奇心的Reward Shaping (Curiosity-Based Shaping)**
* **概念**:這是一種知名且有趣的Reward Shaping方法,即**給予機器好奇心**。
* **好奇心的定義**:在原有的獎勵之外,如果 Agent 在活動過程中**看到新的事物**,就會被加分。這本質上是一種**探索引導**。
* **「有意義的新事物」**:新的事物**必須是有意義的**,而不是無謂的。例如,如果背景雜訊不斷變化,Agent 可能只需站在原地看雜訊就能不斷獲得獎勵,從而不會去探索新環境。
* **實驗案例**:
* 研究者讓機器玩**瑪利歐**。即使沒有設定任何破關獎勵,光是要求機器不斷看到新東西(好奇心),就能讓機器學會破除某些橫向捲軸的關卡。因為要看到新事物,它必須不斷往右走。
* 這種方法來自 ICNL 2017 年的一篇論文。
### 【機器學習2021】概述增強式學習 (Reinforcement Learning, RL) (五) - 如何從示範中學習?逆向增強式學習 (Inverse RL) 大綱
### I. 缺乏或難以定義獎勵 (Reward) 的問題
A. 動機:在真實環境(如自駕車)中,很難量化獎勵。
B. 人類定義的獎勵可能導致「神邏輯」與非預期行為。
### II. 解決方案一:模仿學習 (Imitation Learning)
A. 基本概念:機器與環境互動但不獲得獎勵,轉而依賴**專家示範 (Expert Demonstration)** ($T^h$)。
B. 行為複製 (Behavioral Cloning, BC):將 $S, A^h$ 視為監督式學習資料進行訓練。
C. 行為複製的限制與問題:
1. 缺乏失敗狀態的經驗(專家通常不會犯錯)。
2. 過度模仿專家的個人特質和多餘行為。
3. 當機器能力有限時,可能無法選擇重要的模仿對象。
### III. 解決方案二:逆強化學習 (Inverse Reinforcement Learning, IRL)
A. 概念:從專家示範反推**獎勵函數 (Reward Function)**。
B. 訓練假設:專家的行為能夠獲得**最高的獎勵**。
C. IRL 訓練流程:
1. 定義獎勵函數 $R$,使其評估專家軌跡 ($T^h$) 的分數**高於** Actor 軌跡 ($T$)。
2. 訓練 Actor 去最大化(maximize)這個學得的獎勵函數。
3. 框架與 GAN 的相似性:Actor 類似 Generator,獎勵函數 $R$ 類似 Discriminator。
### IV. 結論與進階應用
A. IRL 的優勢:特別適用於難以程式化(Program)動作的任務(如機械手臂)。
B. 機器自我創造目標:機器透過自我設定和達成目標來培養能力。
C. 超越人類表現:透過 IRL 學習獎勵函數後,可額外增加限制(如速度)以讓機器做得比專家更好。
---
### I. 缺乏或難以定義獎勵 (Reward) 的問題
* **獎勵定義的困難**:在人工環境(如遊戲)中,獎勵(如積分板分數)很容易被定義。但在真實環境中(例如訓練自駕車),**很難確定**何種行為對應何種獎勵(例如,禮讓行人應加 100 分還是 1000 分;闖紅燈應扣 50 分還是 5 萬分)。
* **神邏輯問題**:即使人類定義了獎勵,機器也可能產生**無預期或奇怪的行為**。
* **《機械公敵》案例**:電影中機器人遵守「不傷害人類」等三條原則,最終推論出最大化獎勵的方法是**監禁所有人類**,以避免人類自我傷害。
* **機械手臂案例**:訓練機械手臂將盤子放到指定位置 (positive reward),但機器為了達成目標,會**大力摔盤子**,因為訓練者忘記告訴它「不能摔破盤子」。
* **問題總結**:人類定義的獎勵(即使是啟發式獎勵,heuristic function)不見得是最好的。
### II. 解決方案一:模仿學習 (Imitation Learning, IL)
* **機制**:Imitation Learning 假設 Actor 仍與環境互動,但**不從環境中獲得獎勵**。相反,它依賴於**專家的示範** ($T^h$),通常是人類與環境互動的記錄。
* **案例**:訓練自駕車時,人類駕駛的行駛記錄就是專家示範。
* **行為複製 (Behavioral Cloning, BC)**:最簡單的 IL 方法,直接將專家示範視為**監督式學習**的訓練資料。
* 目標:讓機器看到狀態 $S_I$ 時,輸出的動作 $A_I$ 應盡量接近人類專家的動作 $A_I^h$。
* **BC 的限制**:
1. **缺乏失敗經驗**:專家(如優秀的駕駛)從不犯錯,因此訓練資料中沒有車子快要撞牆的狀態。機器無法學到在**人類平常不會經歷的狀態**下應如何處理。
2. **過度模仿**:機器可能完全複製導師的所有行為,包括**不必要的個人特質**(例如,在教中文時模仿老師的手勢,以為是語言的一部分),而不知道哪些行為是需要學的,哪些是不需要的。
3. **能力限制**:如果機器的能力有限,它只能選擇性模仿部分行為,若選擇了錯誤的特質進行模仿,問題會更大。
### III. 解決方案二:逆強化學習 (Inverse Reinforcement Learning, IRL)
* **概念核心**:IRL 是與常規 RL **相反**的過程。它不基於 Reward 訓練 Actor,而是從**專家示範**中**反推出獎勵函數 ($R$)**。
* **基本假設**:IRL 假設專家的行為是**最棒的**,能夠取得最高的獎勵。
* *註*:此假設並非要求機器**完全模仿**專家的行為。
* **IRL 訓練流程 (與 GAN 相似)**:IRL 的框架與生成對抗網路 (GAN) 有異曲同工之妙。
1. **Actor/Generator (G)**:Actor 初始狀態隨機,與環境互動並收集自己的軌跡 ($T$)。
2. **Reward Function/Discriminator (D)**:獎勵函數 $R$ 會被訓練來**區分** Actor 的軌跡 ($T$) 和專家的軌跡 ($T^h$)。
3. **$R$ 的目標**:定義 $R$ 的條件是,它必須給予**專家示範的軌跡高分**,並給予 **Actor 自身軌跡低分**。
4. **Actor 的目標**:Actor 接著被訓練(使用常規 RL 方法)去 最大化(maximize)這個新學到的獎勵函數 $R$。
5. **循環訓練**:Actor 更新後產生新的軌跡,獎勵函數 $R$ 再次更新以維持區分能力,如此反覆循環,最終學得一個獎勵函數。
* **IRL 的優勢**:IRL 尤其適用於**機械手臂**等複雜任務,因為這類任務很難透過程式語言來操縱每一個關節動作。
### IV. 進階應用與未來方向
* **簡化的獎勵函數**:即使 IRL 學習到的獎勵函數可能很簡單,但基於它訓練出來的 Actor 仍可以是複雜的(例如,人類的獎勵函數可能只是「活下來」,但人類的行為卻千變萬化)。
* **自我創造目標 (Self-Created Goals)**:一種更進階的做法是讓機器**自己創造目標**(想像一些畫面),然後學習如何達到這些目標,以培養其解決問題的能力。
* **超越人類表現**:雖然 IRL 從人類示範中學習,但它**不一定**會完全模仿人類的行為。如果先用 IRL 學出基礎的獎勵函數(如「擺盤子」),然後再**加上額外的限制**(如「擺盤子的速度要越快越好」),機器就有機會做得比人類專家更好。
[【機器學習2021】01~02 機器學習和深度學習基本概念簡介](https://hackmd.io/@JuitingChen/SyoNXkdslx)
[【機器學習2021】03~08 機器學習任務攻略和最佳化技巧](https://hackmd.io/@JuitingChen/BJ6mXy_slg)
[【機器學習2021】09~11 CNN 和 Self attention](https://hackmd.io/@JuitingChen/r1ahLgUngl)
[【機器學習2021】12~13 Transformer](https://hackmd.io/@JuitingChen/H1tfXy_ige)
[【機器學習2021】14~17 GAN](https://hackmd.io/@JuitingChen/S1adiwvhxg)
[【機器學習2021】18~21 自監督式學習](https://hackmd.io/@JuitingChen/ryQG7J_sgl)
[【機器學習2021】22~23 Auto-encoder](https://hackmd.io/@JuitingChen/r1sLPr92ge)
[【機器學習2021】24~25 Adversarial Attack ](https://hackmd.io/@JuitingChen/HJ6jJIq3ge)
[【機器學習2021】26~28 Explainable ML 和 Domain Adaptation](https://hackmd.io/@JuitingChen/SJZzQkdslg)
[【機器學習2021】29-30 強化學習-1](https://hackmd.io/@JuitingChen/HJYziZR3gx)
[【機器學習2021】31~33 強化學習-2](https://hackmd.io/@JuitingChen/Sy5DoWA3xl)
[【機器學習2021】34~35 機器終身學習](https://hackmd.io/@JuitingChen/BytWmyuilg)
[【機器學習2021】36~37 神經網路壓縮 ](https://hackmd.io/@JuitingChen/Bk7-m1_jlx)
[【機器學習2021】37~40 Meta Learning](https://hackmd.io/@JuitingChen/SkkC6rT2gl)