AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
62/100 第七週:📌 高階強化學習演算法
62.TRPO 架構與核心原理 🏛 保證策略改進的穩定性!
________________________________________
🎯 本單元學習目標
• 掌握 TRPO 的完整系統架構
• 深入理解 TRPO 為何能「保證策略改進的穩定性」
• 建立對 TRPO 每一個元件之間運作關係的系統圖像
________________________________________
🏗 TRPO 的總體架構概覽
TRPO 是一種策略梯度強化學習演算法,具有以下關鍵組件:
┌─────────────┐
│ 現有策略 π_old │
└────┬────────┘
↓ 與環境互動產生樣本
┌──────────────┐
│ 收集軌跡 τ │ ← 多條 episode
└────┬─────────┘
↓
┌───────────────┐
│ Advantage Estimation │ ← 可用 GAE 方法
└────┬────────────┘
↓
┌───────────────┐
│ 目標函數建構 (Surrogate L) │
└────┬────────────┘
↓
┌────────────────────────────┐
│ 最大化 L 並限制 KL < δ │ ← Trust Region 條件
└────┬───────────────┘
↓
┌────────────────────┐
│ 共軛梯度法求解更新方向 │
└────┬──────────────┘
↓
┌────────────────┐
│ 線搜尋找合適步長 │ ← 保證 KL 不超限
└────┬────────────┘
↓
┌────────────────┐
│ 更新新策略 π_new │
└────────────────┘
這張流程圖完整呈現 TRPO(Trust Region Policy Optimization) 的運作機制:
先由舊策略 π_old 與環境互動收集軌跡,透過 Advantage Estimation(如 GAE)計算行為優劣,構建代理目標函數 L;接著在 KL 散度限制 < δ 的信任區間下,利用共軛梯度法尋找更新方向,再透過線搜尋控制步長,確保策略不會改變過快,最後得到更新後的 π_new。這樣能「小步快跑」,穩定提升策略效能而避免退步。𝐿
________________________________________
🧠 核心原理解析
1️⃣ Surrogate Loss(代理目標函數)
TRPO 不直接優化期望回報,而是構造一個代理目標:
L(theta) = E_{(s, a) ~ pi_old} [ (pi_theta(a|s) / pi_old(a|s)) * A^{pi_old}(s, a) ]
解釋:
L(theta):這是 TRPO 構造出的「代理目標函數」,用來代替直接最大化的期望回報。
pi_theta(a|s):當前新策略在狀態 s 下選擇動作 a 的機率。
pi_old(a|s):舊策略在同樣狀態下選擇動作的機率。
A^{pi_old}(s, a):舊策略下計算出的 Advantage,代表這個動作在該狀態下的相對好壞。
這個函數估計的是在 新策略 π_θ 下,行動會對舊策略 π_old 的優勢提升多少。
________________________________________
2️⃣ KL 限制條件(信任區間)
subject to KL(pi_old || pi_theta) <= delta
這條件保證策略更新「不要跳太遠」,避免策略表現退化,是 TRPO 最核心的穩定保證。
________________________________________
3️⃣ 二階優化與共軛梯度法
為了尊重 KL 限制,TRPO 使用二階近似:
maximize g^T * x
subject to x^T * H * x <= delta
其中:
• g 是 Surrogate Loss 的梯度
• H 是 KL 散度的 Hessian 矩陣
這可以轉化為共軛梯度法(Conjugate Gradient Method)來高效計算方向。
________________________________________
4️⃣ 線性搜尋(Line Search)
即便方向對了,還要測試不同步長 α,確保:
• KL 不超過 δ
• Surrogate Loss 不降低
才會接受該更新,這是「保守式改善策略」的關鍵。
________________________________________
🧪 TRPO 的核心優勢
特性 說明
✅ 策略穩定性保證 使用 KL 約束來防止策略崩潰
✅ 改進一定不會變差 理論上保證策略性能不會退步
✅ 適合連續動作空間 尤其在機器人控制、MuJoCo 等領域廣泛應用
________________________________________
⚠ TRPO 的潛在挑戰
• 🧮 實作複雜,需要計算 KL 散度 Hessian(通常近似)
• 🧠 共軛梯度法與線性搜尋步驟成本較高
• 🔁 每次更新只用一次資料 → 資料效率不佳(vs. PPO)
________________________________________
📚 關鍵公式回顧
📌 代理損失函數:
L(theta) = E_{(s, a) ~ pi_old} [ r(theta) * A^{pi_old}(s, a) ]
where r(theta) = pi_theta(a|s) / pi_old(a|s)
📌 KL 約束(限制策略變動):
subject to KL(pi_old || pi_theta) <= delta
完整理解:
我們希望讓新的策略 theta 能最大化代理損失 L(theta)(代表提升 Advantage 好的行動機率)。
但同時透過 KL 限制,控制新舊策略分布間的變化量不超過 delta,避免更新幅度過大、導致學習不穩定。
這組成了 TRPO 核心邏輯:
「穩定提升表現、又避免劇烈變化」。
________________________________________
✅ 單元小結
元素 說明
Surrogate Loss 避免直接最大化複雜的期望回報,轉而估計 Advantage 的改善程度
KL 限制 為了避免策略退化,加入「跳太遠」的懲罰
共軛梯度法 解決二次限制問題,用來計算最有效的策略更新方向
線性搜尋 找出剛好不違反 KL 限制的步長,確保安全更新
結果 在理論與實務上都具備「策略穩定改善」保證