近端策略優化 (PPO) 發布說明 – OpenAI Baselines
TL;DR
OpenAI 宣布發布近端策略優化 (PPO),這是一種新型強化學習算法類別,其表現可與最先進的方法相媲美或更好,同時實現和調整更為簡單,並已成為 OpenAI 的預設 RL 算法。
為什麼 PPO 很重要
策略梯度方法對步長選擇敏感,且學習簡單任務通常需要數百萬甚至數十億個時間步。現有的受限更新方法,如 TRPO 和 ACER,雖能解決這些問題,但會引入複雜性:ACER 需要離策略校正和經驗回放緩衝區,而 TRPO 不易與共享參數架構相容。PPO 在實作簡易性、樣本效率和調整簡單性之間取得了平衡。
PPO 的核心思想
PPO 旨在計算一個策略更新,使目標函數得到改善,同時保持與先前策略的偏差較小。該算法使用裁剪後的代理目標,使其能夠進行與隨機梯度下降相容的信任區域風格更新。
Clipped Objective Formula
The objective used in PPO is:
$$L^{C L I P} \left( heta ight) = \left(\hat{E} ight){t} \left[ ext{min} \left( r{t} \left( heta ight) \hat{A}{t}, ext{clip}ig(r{t} ig( heta ig), 1-\epsilon, 1+\epsilonig) ight) ight]$$
where:
- ( heta) 為策略參數
- (\left(\hat{E}\right)_{t}) 為時間步的經驗期望
- (r_{t}) 為新舊策略下概率之比
- (\left(\hat{A}\right)_{t}) 為時間 (t) 的估計優勢
- (\epsilon) 為超參數,通常為 0.1 或 0.2
此公式實現了一種不帶 KL 懲罰的信任區域更新,在保持性能的同時簡化了算法。
實證性能
在測試中,裁剪後的 PPO 目標在連續控制任務上表現最佳,且在 Atari 基準測試上幾乎與 ACER 的性能相匹配,儘管其實現遠比較簡單。
Baselines 發布
OpenAI Baselines 儲存庫現在包含可擴展、並行的 PPO 和 TRPO 實現,這些實現使用 MPI 進行數據傳遞,均以 Python 3 和 TensorFlow 編寫。同時也提供了 Roboschool 代理動物園的預訓練策略。
PPO2 和 ACER 新增
一次更新引入了一個名為 PPO2 的 GPU 支援實現,該實現在 Atari 上的運行速度約為原始 PPO 基線的三倍。此外,發布了 Actor‑Critic with Experience Replay (ACER) 的實現;ACER 使用經驗回放緩衝區對每個經驗樣本執行多次梯度更新,並整合了一個使用 Retrace 算法訓練的 Q‑函數近似器。
可控機器人示範
在 Roboschool 中構建了使用 PPO 訓練的互動代理。使用鍵盤,使用者可以為機器人設定新的目標位置;儘管輸入序列與訓練期間看到的不同,但策略能夠泛化到新的指令。
徵求貢獻者
OpenAI 正在尋求貢獻者,以協助構建和優化強化學習代碼庫。有興趣的個人歡迎透過提供的連結申請,並在申請中提及他們閱讀了 baselines PPO 貼文。
Sources
- OriginalProximal Policy Optimization