---
# System prepended metadata

title: 【機器學習2021】31~33 強化學習-2
tags: [機器學習]

---

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)
