AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
54/100 第六週:📌 策略梯度與 Actor-Critic 架構
54.基礎 Actor-Critic 架構 🧑🎤「演員」做決策、「評論員」評價表現!
_______________________________________
🎯 單元導讀
在前幾單元中,我們學習了兩大路線:
• Q-Learning:學習狀態-動作的價值 Q(s, a)
• 策略梯度:直接學習行為策略 π(a|s),用回報調整策略參數
那麼,是否有可能把兩者結合在一起,讓學習更穩定、更有效?
答案就是:Actor-Critic 架構!
這是一種將「策略學習」與「價值估計」融合的經典方法:
Actor 負責選擇行動
Critic 負責評估行動的好壞
兩者互相合作,使學習不再迷失方向!
________________________________________
🧠 一、什麼是 Actor-Critic 架構?
Actor-Critic 將智慧體分為兩部分:
+-----------+------------------------+----------------------------+
| 元件 | 功能 | 輸出 |
+-----------+------------------------+----------------------------+
| 🎭 Actor | 學習策略 | π(a|s; θ) |
+-----------+------------------------+----------------------------+
| 🧾 Critic | 學習價值函數 (V 或 Q) | 評估當前策略的好壞 |
+-----------+------------------------+---------------------------
Actor 負責學會「該怎麼做」的策略分布 𝜋(𝑎∣𝑠;𝜃),
Critic 負責「評分」每個狀態或動作的價值 𝑉(𝑠)或 𝑄(𝑠,𝑎)
兩者互相協作,讓學習既有方向又有穩定度。
_____________________________________
🔁 二、Actor-Critic 的更新方式
策略更新:
θ ← θ + α * ∇θ log π(a|s; θ) * A_t
評論員提供的優勢 A_t:
A_t = G_t - V(s) ← Advantage(優勢函數)
也就是:
評論員告訴演員:「這個動作做得比你預期的好(或差),請相應調整你下次的機率!」
評論員自身的價值函數也會學習:
Loss = (G_t - V(s))²
________________________________________
🧪 三、架構圖解(概念示意)
+--------------+
State --> | Actor | --- Action -->
+--------------+ |
↓
Environment
↓
+--------------+ Reward, Next State
State --> | Critic | <--------------+
+--------------+
這張圖展示了 Actor-Critic 架構的核心流程:Actor 負責根據當前狀態選擇動作送入環境,環境回饋新的狀態與獎勵;Critic 則評估 Actor 的行動好壞,並提供學習信號,幫助 Actor 調整策略。如此形成一個循環,讓策略學習(Actor)與價值估計(Critic)互相配合,加速且穩定強化學習的過程。
Actor 根據 Critic 的評價進行策略更新
Critic 則根據真實回報持續改進估值 V(s)
________________________________________
📈 四、為何 Actor-Critic 更穩定?
傳統的 REINFORCE 策略梯度方法使用整集 episode 的累積回報 𝐺𝑡作為學習信號,必須等整局結束後才能更新,導致方差較大、收斂速度較慢;而 Actor-Critic 方法則結合價值函數,利用 TD 誤差或 Advantage 來提供即時且更穩定的學習信號,能在互動過程中逐步更新,降低方差,加快收斂速度與穩定性。
________________________________________
🧠 五、實作邏輯總結(PyTorch 範例簡述)
python
# Actor 輸出動作機率分布
# Critic 輸出狀態價值 V(s)
log_prob = actor(state).log_prob(action)
value = critic(state)
# TD Target = r + γ * V(s')
advantage = reward + gamma * next_value - value
# 更新 Actor
actor_loss = -log_prob * advantage.detach()
# 更新 Critic
critic_loss = (value - target_value).pow(2)
________________________________________
📌 六、適合 Actor-Critic 的任務範例
在不同應用任務中,Actor-Critic 架構發揮分工協作的優勢:在自動駕駛中,Actor 負責控制方向與加減速,而 Critic 評估所選路徑對長期安全的影響;在投資決策中,Actor 制定買賣行動,Critic 根據資金配置後的長期收益進行評價;在遊戲操作 AI 中,Actor 持續執行策略,Critic 依據比賽分數或勝率提供回饋,指引策略調整方向。
________________________________________
🔍 七、常見變體與進階版本
方法名稱 核心改進
A2C(Advantage Actor-Critic) 使用 Advantage 取代 G_t
A3C(Asynchronous A2C) 多智慧體並行學習提升效率
PPO(Proximal Policy Optimization) 加入策略更新限制避免過衝
DDPG / SAC 將 Actor-Critic 應用到連續動作領域
________________________________________
🧩 八、問題與思考 💭
1️⃣ Actor 若沒有 Critic 協助,會遇到什麼困難?
👉
若只有 Actor(例如單純使用 REINFORCE),每次學習都要等整個 episode 結束才能累積回報 𝐺𝑡,這樣的學習信號方差很大,導致訓練震盪、收斂慢,且無法即時得知哪些行動比較好或比較壞。缺少 Critic 協助時,Actor 很難快速辨識哪些行為值得增強,學習效率大幅降低。
2️⃣ 為什麼將 TD 誤差當作 Advantage 可以提升學習穩定性?
👉
TD 誤差提供了「當前行動比預期好或壞多少」的即時訊號,相當於一種近似的 Advantage(相對優勢)。相比使用完整回報 𝐺𝑡 ,TD 誤差不需等完整 episode,能快速修正近期的偏差,降低回報估計的方差,使更新方向更穩定、收斂更有效率。
公式觀念:
Advantage ≈ TD誤差 = [r + γV(s') - V(s)]
3️⃣ 在真實生活中,有哪些情境像是「一個人決策、一個人給建議」的協作方式?
👉
例如:
新創公司中,創辦人(Actor)做出經營決策,而顧問(Critic)根據市場反饋給予策略建議;
駕訓學員開車(Actor)時,教練(Critic)在旁適時指導駕駛行為;
選手賽(Actor)時,教練(Critic)在場邊觀察比賽情況,提供戰術修正建議。
這些情境都反映了 Actor-Critic 的合作精神:行動者執行,評論者提供即時評估與調整建議,促進整體表現提升。
________________________________________
✅ 九、小結與啟示
• Actor-Critic 是策略學習與價值學習的完美結合
• Actor 學會如何行動,Critic 負責幫他評估效果
• 可逐步學習、方差小、效率高,是現代強化學習的核心架構
• 就像生活中:主動嘗試 + 實時反饋 = 穩定成長!