AI時代系列(3) 機器學習三部曲: 📘 第三部:《強化學習 —— AI 的決策與進化》
61/100 第七週:📌 高階強化學習演算法
61.什麼是 Trust Region Policy Optimization(TRPO)🧠 小步快跑的安全策略更新!
🧠 小步快跑的安全策略更新!
________________________________________
🎯 單元目標
• 了解 TRPO 的設計動機與數學基礎
• 掌握「信任區間」(Trust Region)的概念
• 學會 TRPO 與其他策略梯度方法(如 REINFORCE、PPO)的比較與優劣
• 探索 TRPO 在實際環境中的應用與限制
________________________________________
📌 為什麼需要 TRPO?
傳統的策略梯度方法(如 REINFORCE、Vanilla Policy Gradient)會直接對策略參數進行梯度上升更新。然而,如果更新步伐太大,可能導致策略性能急劇下降。
👉 想像你走鋼索,每一步都想向前邁進,但走太快反而可能跌下去!
因此,TRPO 的誕生就是為了限制每次更新不要離原策略太遠,確保穩定提升性能。
________________________________________
🔍 TRPO 的核心概念:信任區間
TRPO 採用 Trust Region(信任區間) 這個概念,來限制策略更新的幅度。
⚠ 問題轉化:
最大化期望回報 J(π) 時,加入一個限制條件:
最大化:
E_{(s, a) ~ pi_old} [ (pi_theta(a|s) / pi_old(a|s)) * A_hat(s, a) ]
限制條件:
KL(pi_old || pi_theta) <= delta
其中各項說明:
A_hat(s, a):Advantage 函數(優勢函數)
KL(pi_old || pi_theta):新舊策略之間的 KL 散度,衡量策略改變的幅度
delta:超參數,控制每次更新時策略的變化範圍
簡單理解:
希望新策略提升好行為的機率,但又不讓策略每次更新變動太大,避免破壞已學到的好策略。這正是 Trust Region Policy Optimization (TRPO) 的核心思想。
________________________________________
📘 TRPO 的數學直觀
TRPO 的做法是 通過二次近似(Second-order Approximation) 和 拉格朗日乘子法(Lagrangian Multiplier) 來求解上述限制最大化問題。
這是 TRPO 的核心優化問題,在原本的期望與 KL 限制條件下,經過二階泰勒展開與近似,最後簡化為:
最大化目標:
max_theta g^T * (theta - theta_old)
限制條件:
(theta - theta_old)^T * H * (theta - theta_old) <= delta
其中:
g:是策略梯度,即對 θ 的一階導數
H:是 Fisher Information Matrix 的近似,反映 KL 散度對 θ 的二階導數
theta:目前要更新的新參數
theta_old:上一輪的舊參數
delta:控制策略更新幅度的超參數
簡單理解:
在「限制參數變動幅度」的範圍內(透過二次型限制式控制),盡可能朝著目前的梯度方向前進,達成既穩定又有效率的策略更新。
這其實就是在高維空間中做「信任區間內的最佳化 (Trust Region Optimization)」。
________________________________________
🛠 TRPO 實作步驟
1. 收集樣本軌跡:使用目前策略與環境互動
2. 計算 Advantage:用 GAE(Generalized Advantage Estimation)等技術估算
3. 構造損失函數與 KL 散度約束
4. 用共軛梯度法(Conjugate Gradient)解出最佳參數方向
5. 用線搜尋(Line Search)控制步長,確保 KL 散度不超過預設閾值 δ\deltaδ
________________________________________
🆚 TRPO vs 其他方法
在不同策略梯度方法中,REINFORCE 雖簡單易實作,但由於完全依賴完整回報,更新波動大、穩定性差;Vanilla Policy Gradient 雖使用 Advantage 改善方差,但仍未限制每次策略變動幅度,容易不穩定;TRPO 引入明確的 KL 限制,能有效保證更新穩定,但實作上需計算二階導數,較為複雜;PPO 透過簡化的 clip 機制,近似控制 KL 變動範圍,既能穩定更新,又容易實作,成為目前實務上廣泛應用的大型神經網路強化學習主流方法。
________________________________________
📦 TRPO 的應用場景
TRPO 尤其適合於:
• 機器人控制(如 MuJoCo 模擬環境)
• 高維連續控制問題
• 對策略穩定性要求高的場景
________________________________________
🚧 缺點與改進方向
• ⚠ 二階導數成本高:需要近似計算海森矩陣
• ⚠ 實作複雜:相對於 PPO,開發者門檻較高
這些缺點促成了後來更簡潔實用的 PPO(Proximal Policy Optimization) 方法的誕生。
________________________________________
✅ 單元小結
TRPO 的核心思想是在每次更新策略時,透過限制新舊策略間的 KL 散度,避免策略變化過快導致學習退步,確保穩定提升。技術上結合了共軛梯度法、線搜尋與 KL 約束來求解最適更新方向,特別適合高穩定性需求的連續控制任務。其優點是穩定性高、理論保障強,但由於涉及二階導數與複雜的優化過程,實作成本較高。相比之下,PPO 透過 clip 機制近似限制策略變動,雖犧牲部分精準度,但大幅簡化實作流程,成為實務上更受歡迎的穩定訓練方法。
________________________________________
🏠 TRPO 的生活應用案例
1️⃣ 理財投資 – 逐步調整資產配置
投資策略若一次調整太激進(例如把全部資金從股票轉到加密貨幣),可能帶來巨大風險。TRPO 的「信任區間」就像每次只允許小幅度調整資產比例,確保在「安全範圍」內優化投資組合,避免因短期震盪而重創整體績效。
2️⃣ 運動健身 – 漸進式加重訓練
舉重或跑步訓練時,如果突然增加過大的重量或強度,容易導致受傷。TRPO 的小步快跑理念,就像逐步增加重量(每次+2.5 公斤)或增加跑步距離,讓身體逐漸適應,確保「穩定進步而不退步」。
3️⃣ 職涯轉換 – 漸進式嘗試新領域
從金融業轉到 AI 領域,若直接全職跳槽可能風險過大。TRPO 的方法就像先在信任區間內「小規模嘗試」:先修課、做副業專案或兼職,確保每次跨出的一步不會太偏離舊領域,穩定積累,逐漸完成轉型。
________________________________________
🧪 延伸實作練習
• ✅ 實作一個簡單的 TRPO agent 於 OpenAI Gym 的 CartPole-v1 環境
• ✅ 比較 TRPO 與 PPO 在 HalfCheetah-v2 中的收斂曲線
• ✅ 分析 TRPO 更新中 KL 散度變化與回報的關聯性