AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
86/100 第九週:📌 深度強化學習(Deep Reinforcement Learning)🎮
86.策略梯度與 Actor-Critic 🧠 分工合作穩定訓練!
_____________________________________
🎯 單元導讀:
強化學習中,除了 Q-Learning 類的值函數法,還有另一大支派是:策略為主(Policy-based)學習法。
尤其是將「值函數估計」與「策略更新」結合的 Actor-Critic 結構,成為當前深度強化學習中的主流方法之一。
本課重點介紹:
✅ 策略梯度(Policy Gradient)原理
✅ Actor-Critic 架構與學習流程
✅ 優點與挑戰
✅ 常見演算法(A2C、A3C、PPO)
________________________________________
🧠 一、策略梯度法是什麼?
➤ 定義:
策略梯度法(Policy Gradient) 是一種強化學習演算法,直接學習一個參數化的策略,也就是一個可以輸出「每個動作機率」的模型,記為: πθ(a∣s),
意思是在某個狀態 𝑠下,採取動作 𝑎的機率是由參數 𝜃所控制的。
透過最大化期望總回報:
J(θ) = Eπθ [ ∑tRt ]
🧠 定義說明:
這是一個**期望總報酬(Expected Return)**的表達式,意思是:
當代理人依照參數為 𝜃的策略
𝜋𝜃(𝑎|𝑠)採取行動後,
它在整個一段互動過程中(episode)所能累積的所有報酬總和的期望值。
也可以理解為:
👉「我這個策略到底有多好?」
👉「如果照這個策略執行,平均能拿到多少獎勵?」
使用梯度上升進行參數更新:
θ←θ+α⋅∇ θJ(θ)
這是一個典型的**梯度上升(Gradient Ascent)**過程:我們的目標是讓策略越來越好,也就是讓總報酬 𝐽(𝜃)越來越大。為了達成這個目標,我們會計算出一個「讓績效變更好的方向」(也就是對 𝐽(𝜃)求梯度),再乘上一個學習率,朝這個方向微調策略的參數 𝜃。經過多次這樣的更新後,參數會逐漸收斂到讓報酬最大的值,整體策略也就學會了更有效的行動方式。這就是策略梯度法的學習核心。
✅ 一句話解釋:
我們要讓策略的參數 𝜃往「讓報酬變大的方向」調整,每次更新一小步,這個方向就是梯度。
📌 稱為 REINFORCE 演算法(Williams, 1992)
________________________________________
🧭 二、策略梯度的特性
策略梯度法具備一些獨特的優點,使它在某些情境下比 Q-Learning 更具優勢。首先,它能直接處理連續動作空間,非常適合像機器人控制這類精細操作任務。其次,它能學會非確定性策略(Stochastic Policy),讓代理人在同一狀態下保留行動的隨機性,有助於探索並降低陷入局部最優的風險。然而,它也有明顯缺點:學習過程容易不穩定,因為回報本身具有高度變異,導致梯度估計波動大。此外,策略梯度法對資料需求量大,必須累積大量互動樣本才能有效學習,樣本效率相對較低。因此,雖然它靈活、表現力強,但實作上仍需搭配改良技術(如 baseline 或 actor-critic)來提升穩定性與效率。
________________________________________
🤖 三、Actor-Critic 架構登場:分工合作的穩定策略學習法
➤ 核心概念:
• Actor(演員):負責根據策略 π(a∣s)決定行動
• Critic(評論家):估計狀態或狀態-行動的價值函數(V 或 Q)
🎯 兩者合作:
• Actor 負責學「該怎麼做」
• Critic 提供「這樣做好不好」的評價信號
________________________________________
🧮 策略更新公式(使用 Advantage):
∇θJ(θ)=E[∇θlogπθ(at∣st)⋅A(st,at)]
這條公式是策略梯度法中的核心更新規則,意思是:我們透過計算策略在某狀態下選擇某動作的機率的梯度(log π),再乘上這個動作的優勢值(A),來決定參數的調整方向。優勢值代表這個動作相對於平均表現好多少,因此這個公式會強化「表現比平均更好的行為」,抑制較差的行為,讓整體策略朝著獲得更高回報的方向學習。這種方法能提升學習效率並降低梯度估計的不穩定性。
其中 優勢函數 A(s,a)=Q(s,a)−V(s)
代表該動作相對於平均水準的好壞程度,若為正值則強化該行為,為負則抑制。這種方法能有效降低學習過程中的方差,聚焦在「強化比平均表現更好的動作」,使策略學習更穩定、更具效率,是多種現代強化學習演算法(如 A2C、PPO)的核心更新機制。
→ 表示這個動作比平均水準好多少
________________________________________
🧱 四、Actor-Critic 架構總覽
環境
↑
← [Reward]
↑
Critic (值函數 V)
↑
[Actor] → 動作 a_t
↑
狀態 s_t
這張圖描述的是 Actor-Critic 演算法的資料流過程。系統從環境接收到當前的狀態 st,接著由 Actor(策略網路) 根據這個狀態產生一個動作 at,送回給環境執行。環境執行後會回傳一個即時的 獎勵(Reward),以及下一個狀態,同時交給 Critic(價值網路) 來估計當前狀態的「好壞」——也就是值函數 V(st)。Critic 根據這個估計結果提供給 Actor 一個方向性的學習信號(例如優勢值 Advantage),幫助 Actor 調整策略,使它未來在相似情況下能做出更好的決策。整體過程結合了策略學習(Actor)與價值評估(Critic),實現更穩定且有效的強化學習。
________________________________________
🧪 五、常見 Actor-Critic 擴充演算法
名稱 特性
A2C 同步版 Actor-Critic,穩定收斂好上手
A3C 多執行緒非同步訓練,加快速度
PPO 穩健策略優化,限制更新幅度 → 廣泛應用於 OpenAI
DDPG / SAC Actor-Critic 延伸至連續動作空間
________________________________________
🧠 六、Actor-Critic 的優勢與挑戰
優勢 挑戰
✅ 同時學策略與值,更新效率高 ❗ Critic 的誤差會影響 Actor 的訓練
✅ 可應用於連續 / 複雜行為學習 ❗ 對超參數(learning rate、γ)敏感
✅ 可以使用 TD 誤差穩定訓練 ❗ 易產生高變異策略學習不穩
________________________________________
📚 七、小結與啟示:
✅ 策略梯度法直接最大化期望回報,是強化學習的一大主流
✅ Actor-Critic 分工:Actor 學策略,Critic 給評價
✅ 結合 TD 誤差、優勢函數、baseline 後訓練更穩定
✅ PPO 等衍生方法已被廣泛應用於多種控制與決策場景
________________________________________
💬 問題挑戰與思考:
1️⃣ 為什麼使用 Advantage 而非直接用 reward 來更新策略?
使用 Advantage 的目的是為了降低梯度估計的方差,讓學習更穩定。
如果直接使用 reward(或回報 𝑅𝑡),會因為獎勵高低本身波動很大,導致策略更新方向不穩,甚至學習錯誤。
Advantage 函數 𝐴(𝑠,𝑎)=𝑄(𝑠,𝑎)−𝑉(𝑠)
表示「這個動作相對於平均水準的好壞」,只強化「比平均表現更好」的行為,有效去除掉 baseline 的影響,提升學習穩定性與效率。
2️⃣ 如果 Critic 訓練不穩定,對 Actor 有什麼影響?要怎麼解決?
Critic 是用來幫助 Actor 評估行為好壞的,如果它學得不準,會導致 Advantage 或值函數估計錯誤,
進一步讓 Actor 得到錯誤的方向指引,學到「錯誤的策略」,甚至完全崩壞。
✅ 解決方式包括:
使用 目標網路(Target Network):像 DQN 一樣讓 Critic 更穩定
限制 Critic 的更新速度(例如使用 soft update)
加入權重正則化 或使用更穩定的 loss 函數
結合經驗回放(如 in PPO、TD3 中的技巧)
或使用 Advantage Normalization 平滑學習信號
3️⃣ 與 Q-learning 相比,Actor-Critic 最大的應用優勢是什麼?
Q-learning 是值為主(value-based)的方法,主要處理離散動作空間,難以應用於連續控制問題。
而 Actor-Critic 結合了策略學習與價值評估的優點,能直接輸出連續動作(透過 Actor)並同時有 Critic 做指導,因此特別適合應用在像機器人控制、自駕車、金融投資等需要高精度輸出的場景。
此外,Actor-Critic 支援隨機策略學習,有助於更靈活的行為探索,能避免卡在局部最優。
📌 總結一句話:
使用 Advantage 是為了穩定學習,Critic 的品質會直接影響 Actor 的策略表現,而 Actor-Critic 相對 Q-learning 最大的優勢在於能處理連續、複雜的決策問題,是許多現代強化學習應用的基礎架構。









