🎭 Actor-Critic · iPAS 進階
Actor-Critic:演員負責演、評論家負責評,兩者互相教
純 策略梯度 變異太大、學得抖。Actor-Critic 找來一個「評論家」即時打分當基準,大幅降低變異——它把策略法(Actor)和價值法(Critic)的優點合在一起,是現代強化學習(PPO、SAC…)的共同骨架。
演員 Actor 策略評論家 Critic 價值優勢函數低變異A2C · A3C · PPO
🤝 一、它把兩條路線合起來
前面學過 RL 的兩條路:價值法(學 Q/V)和 策略法(學 π)。Actor-Critic 同時用兩個網路,各司其職:
🎬 Actor 演員(策略 π)
看當前狀態,決定要做什麼動作(輸出機率,如 80% 往左、20% 往右)。它就是策略法那一半。
📋 Critic 評論家(價值 V)
不下場,只幫狀態打分(這局面有多好),再算出優勢告訴 Actor「這步比預期好還是差」。它就是價值法那一半。
🏅 二、運動員 + 教練比喻
Actor 是運動員,Critic 是教練
運動員(Actor)看著場上情況做動作;教練(Critic)不親自下場,但每一步都即時喊:「這姿勢很有希望」或「你快跌倒了」。
關鍵是這個即時回饋——運動員不必等比賽結束才知道剛剛那球好不好,每一步都能馬上修正。這就是 Actor-Critic 比純策略梯度學得又快又穩的祕密。
🎮 三、動手玩:平衡桿 CartPole
目標是讓桿子不要倒。左邊是環境,中間Actor 顯示左/右動作機率,右邊 Critic 顯示 V(s) 與最重要的優勢(Advantage)。按「自動訓練」連跑。
環境 (Environment)
狀態 (State): 平衡中
🎬 演員 Actor — 策略 $\pi(a|s)$
根據狀態決定動作機率。
選擇動作: -
📋 評論家 Critic — 價值 $V(s)$
評分這個狀態好不好,計算優勢 (Advantage)。
預測價值 V(s): 0.00
實際回報 (Target): 0.00
🗺️ 怎麼看
盯著右下角的優勢數字:綠色(正)=這步結果比教練預期的好(驚喜)→ Actor 會調高該動作機率;紅色(負)=比預期差(失望)→ 調低。中間紅色長條會隨之改變左右機率。這條「優勢訊號」就是 Critic 在教 Actor。
🎯 四、核心:優勢函數(Advantage)
這是 Actor-Critic 最關鍵、也最常考的一招——不看「絕對回報」,看「比預期好多少」。
$$ A_t \;=\; \underbrace{r_t + \gamma V(s_{t+1})}_{\text{實際發生的}} \;-\; \underbrace{V(s_t)}_{\text{Critic 原本的預測}} $$
A > 0 驚喜 😀實際比教練預測的好 → Actor 大幅調高這個動作的機率。
A < 0 失望 😟實際比預測的差 → Actor 調低這個動作的機率。
🧠 為什麼用「優勢」而不是原始回報?
原始回報忽高忽低、雜訊大。減掉 Critic 的基準後,只剩「相對於平均好多少」——數值穩定多了,這就是 Critic 當 baseline(基準線) 降變異的作用。也常寫成 A=Q − V。
🔁 五、Actor 與 Critic 怎麼互相幫忙
Critic 幫 Actor提供低變異的基準分,讓 Actor 的更新不再忽上忽下、學得更穩。
Actor 幫 Critic不斷去探索新狀態,給 Critic 更多資料來校準自己的評分標準。
一邊演、一邊評、一起進步
兩個網路同時訓練:Critic 用 TD 誤差(就是上面的優勢)修正自己的價值估計;Actor 用同一個優勢調整動作機率。良性循環。
📊 六、為什麼贏過純策略梯度?
| 比較 | 純策略梯度 (REINFORCE) | Actor-Critic |
| 學習訊號 | 整回合的總回報(雜訊大) | Critic 的優勢(低變異) |
| 更新時機 | 要等整回合結束 | 可每步即時更新 |
| 穩定度 / 收斂 | 抖、慢 | 穩、快 |
👪 七、Actor-Critic 家族:A2C / A3C / PPO
📌 一個框架,很多名字
A2C(Advantage Actor-Critic):同步版,一個主程式控制多個環境一起收資料。
A3C(Asynchronous…):非同步版,多個 worker 在不同 CPU 核心各自跑、各自更新全域網路。(實務上 A2C 在 GPU 常更穩更快。)
還有 PPO、SAC、DDPG、TD3——現代強化學習的主力幾乎都是 Actor-Critic 的變體,差別在怎麼讓訓練更穩、怎麼處理連續動作。
🧪 八、觀念自我檢測
先想再點開。
Q1. Actor 和 Critic 各負責什麼?
Actor=策略,決定動作(輸出機率);Critic=價值函數,幫狀態打分、算優勢來指導 Actor。
Q2. 優勢函數 A 是什麼?
「實際發生的 − Critic 的預測」= r + γV(s′) − V(s),也就是 Q − V,表示某動作比預期好多少。
Q3. A > 0 代表什麼、Actor 怎麼反應?
比預期好(驚喜) → Actor 調高該動作機率;A < 0 則調低。
Q4. 為什麼比純策略梯度好?
Critic 當 baseline 降變異、可每步即時更新(不必等整回合),更穩更快。
Q5. A2C 和 A3C 差在哪?
A2C 同步、A3C 非同步(多 worker 各自更新全域網路)。
✅ 九、30 秒重點整理
Actor+Critic策略法 + 價值法合體。
Actor 演、Critic 評運動員+教練。
優勢 A=r+γV(s′)−V(s)比預期好多少。
A>0 調高、A<0 調低該動作機率。
Critic 當 baseline降變異、可即時更新。
家族A2C/A3C、PPO、SAC、DDPG。
📝 iPAS 考點提醒
Actor-Critic 結合策略法與價值法,是強化學習的重要架構。重點:Actor(演員)決定行動、Critic(評論家)估計價值並回饋,降低純策略梯度的高變異、加速學習。易混點:Critic 不直接選行動(那是 Actor 的事),它提供這步好不好的訊號;A2C、A3C 是常見變體。情境:遊戲與連續控制等需要穩定又能處理連續行動的任務。
想練情境題與詳解 → AI 學習與考證地圖
❓ 常見問題
Actor-Critic 是什麼?
結合策略(Actor)與價值(Critic):Actor 決定動作、Critic 評估動作好壞並指導 Actor 更新,兼具兩者優點。
Actor 和 Critic 各做什麼?
Actor 是策略函數、輸出動作或動作機率;Critic 是價值函數、估計狀態或動作價值,用來算出優勢、告訴 Actor 哪些動作比預期好。
比起純策略梯度好在哪?
純策略梯度(如 REINFORCE)用整段回報估計、變異大;Critic 提供低變異的價值基準(baseline),讓更新更穩、更快收斂。
什麼是優勢函數(Advantage)?
A(s,a)=Q(s,a)−V(s),表示某動作比該狀態平均好多少;用優勢而非原始回報能降低變異、聚焦相對優劣。
常見的 Actor-Critic 演算法?
A2C/A3C、DDPG、TD3、PPO、SAC 等都屬此框架,差別在如何穩定訓練與處理連續動作。