Hugging Face 深度強化學習課程第 8 單元:近端策略優化(PPO)說明

TL;DR

Hugging Face 發布了一篇完整的近端策略優化(PPO)教學,說明了限制策略更新以提升學習穩定性的裁剪代理目標,並提供了在 CartPole‑v1 與 LunarLander‑v2 上評估的完整 PyTorch 實作。


為何 PPO 重要

PPO 透過將每次策略更新限制在一個小且預先定義的範圍 ([1-\epsilon,,1+\epsilon]) 內,提升了強化學習的穩定性。較小的更新在實驗上收斂更快,且能避免災難性的「策略懸崖」——大幅度的步伐會產生難以恢復的劣質策略。


核心技術概念:裁剪代理目標

策略目標回顧

傳統的 REINFORCE 目標透過對 (\log \pi_\theta(a_t|s_t) A_t) 進行梯度上升,以最大化期望回報。若未加限制,過大的步長會導致學習緩慢(若步長過小)或高變異性(若步長過大)。

比率函數

PPO 用機率比率取代了對數機率項:

[ r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} ]

  • 若 (r_t > 1),表示在當前策略下此動作的機率較高。
  • 若 (0 < r_t < 1),表示在當前策略下此動作的機率較低。

此比率直接衡量新舊策略之間的差異。

未裁剪目標

未裁剪的部分將比率與優勢 (A_t) 相乘:

[ r_t(\theta) \cdot A_t ]

若未設上限,過大的 (r_t) 會產生過大的梯度,導致破壞性的更新。

裁剪目標

PPO 將比率裁剪至 ([1-\epsilon,,1+\epsilon]) 區間(論文使用 (\epsilon=0.2))。裁剪後的代理目標為:

[ \min\big(r_t(\theta) A_t,; \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) A_t\big) ]

  • minimum(最小值)會選擇較保守的估計。
  • 當比率位於裁剪範圍內時,使用未裁剪的項目,允許正常的策略改進。
  • 當比率超出範圍時,梯度會變為零,因為裁剪後的項目是常數,從而防止過於激進的更新。

與 TRPO 的比較

  • TRPO 在損失函數之外強制執行 KL 散度限制,計算成本高且實作複雜。
  • PPO 透過裁剪直接將限制嵌入損失函數,提供更簡單且更快速的替代方案。

目標的可視化

以下六種情況說明最小運算的行為:

  1. 比率在範圍內,優勢為正 – 提高動作機率。
  2. 比率在範圍內,優勢為負 – 降低動作機率。
  3. 比率低於範圍,優勢為正 – 提高機率(梯度非零)。
  4. 比率低於範圍,優勢為負 – 梯度為零(不再降低)。
  5. 比率高於範圍,優勢為正 – 梯度為零(防止過度貪婪的更新)。
  6. 比率高於範圍,優勢為負 – 降低機率。

在所有情況下,只要選擇了 裁剪 後的項目,梯度即為零,確保策略不會遠離舊策略。


完整的 PPO 損失(Actor‑Critic)

最終的損失結合了三個部分:

  1. 裁剪代理目標(策略損失)。
  2. 價值損失(預測回報與實際回報之均方誤差)。
  3. 熵獎勵(鼓勵探索)。

文章最後的圖示說明了這個結合的損失。


從理論到程式碼

Hugging Face 提供了逐步的 PyTorch 實作:

  • 使用 CleanRL 單檔案風格(Costa Huang)。
  • 參考了 13 項實作細節的詳細清單(ICLR 部落格文章)。
  • 在兩個經典的 Gym 環境上訓練代理:
    • CartPole‑v1 – 簡單的平衡任務。
    • LunarLander‑v2 – 較複雜的二維著陸問題。
  • 訓練完成後,模型可推送至 Hugging Face Hub 進行評估與可視化。

完整教學的 Notebook 可在以下取得:

https://github.com/huggingface/deep-rl-class/blob/main/unit8/unit8.ipynb

對實務工作者的意涵

  • 穩定性 – PPO 的裁剪機制提供了一種實用且低開銷的方式,以在不需 TRPO 高計算成本的情況下達成穩定的策略學習。
  • 可及性 – 文章以程式碼為先的方式,使 PPO 對初學者友好,同時仍揭示研究層級所需的細節。
  • 可擴充性 – 透過將訓練好的模型推送至 Hub,實務工作者能在社群中分享、基準測試與持續改進 PPO 代理。

深度強化學習課程的後續步驟

此教學是八單元系列的一部分,涵蓋以下內容:

  • Advantage Actor‑Critic(A2C)– 混合價值/策略方法。
  • PPO – 本單元的重點。
  • 未來單元將探討多代理設定、離線 RL、Decision Transformers 以及更深入的論文說明。

持續學習,保持精彩 🤗

Sources