Proximal Policy Optimization
- 又稱: PPO, PPO-Clip
- 類別: Learning & autonomy › RL & simulation
- 標籤: reinforcement-learning, policy-gradient, on-policy, robot-learning, sim-to-real, locomotion
一種同策略的強化學習演算法,以小幅、經過裁剪的步伐改進策略,廣泛用於在平行模擬中訓練機器人的行走運動與控制策略。
定義
近端策略最佳化(Proximal Policy Optimization,PPO)是一種用於強化學習的策略梯度演算法,由 John Schulman 與其在 OpenAI 的同事於 2017 年提出。它訓練一個隨機策略(通常是神經網路):先以目前的策略蒐集成批的經驗,再更新策略,讓優勢高的動作更有可能被選中。其核心想法是讓每次更新都貼近蒐集資料的那個策略,這讓訓練比單純的策略梯度方法更穩定,又沒有 TRPO 等早期信賴域方法的複雜度。
PPO 最知名的形式使用裁剪過的替代目標。對每個動作,它會計算該動作在新策略下與在舊策略下的機率比值。目標函數將這個比值乘上優勢估計值,但會把比值裁剪到 1 附近的一個小區間內,因此最佳化器在單次更新中把策略移得太遠也得不到任何好處。這讓 PPO 能在同一批資料上執行多個 epoch 的小批次梯度下降。優勢通常是利用學習而得的價值函數,以廣義優勢估計(GAE)計算,因此 PPO 是一種 actor-critic 方法。
PPO 是同策略(on-policy)的:以較舊策略蒐集的資料在每次更新後都會被捨棄。這使它的樣本效率低於 Soft Actor-Critic 等異策略(off-policy)方法,後者會重複使用經驗回放緩衝區中的經驗。在機器人領域,於模擬中訓練時這個弱點就沒那麼重要,因為以 GPU 為基礎的模擬器能平行執行數千個環境,快速產生大批新資料。PPO 的簡單、穩定,以及能隨平行環境良好擴展的特性,使它成為許多模擬到現實(sim-to-real)行走運動流程中的預設演算法。
PPO 的結果對實作細節很敏感。觀測與優勢的正規化、學習率排程、熵獎勵、價值函數裁剪與網路初始化都會影響效能。機器人團隊通常仰賴經過充分測試的實作,而不是自己撰寫,並會謹慎地設計獎勵塑形與隨機化模擬參數,因為 PPO 會利用獎勵或模擬器中的任何缺陷。
為何重要
在真實足式機器人、人形機器人與靈巧手上取得的強化學習成果中,有很大一部分背後用的是 PPO,因為它能容忍很寬的超參數範圍,且能隨大規模平行模擬良好擴展。理解它,是閱讀或重現多數模擬到現實之機器人學習研究的實際前提。
主要應用
- 足式行走運動 — 在模擬中為四足機器人與人形機器人訓練行走與奔跑策略
- 靈巧操作 — 以多指手學習手內物體重新定向
- 無人機控制 — 學習敏捷飛行與競速策略
- 全身控制 — 訓練能同時協調許多關節的策略
- 語言模型微調 — PPO 也用於基於人類回饋的強化學習
實際應用
典型的團隊會在 Isaac Lab 或 MuJoCo 等 GPU 模擬器中定義機器人及其觀測、動作與獎勵,啟動數千個平行環境,並以 rsl_rl、Stable-Baselines3 或 skrl 等現有函式庫訓練 PPO 策略。每次迭代會從每個環境蒐集一段短的展開(rollout)、計算優勢,並執行幾個 epoch 的裁剪更新。工程師會監看回合獎勵、回合長度、策略熵與價值損失,而他們大部分的心力都花在獎勵項、課程設計與領域隨機化上,而不是演算法本身。訓練好的策略通常是一個小型多層感知器或遞迴網路,匯出後以固定的控制頻率在機器人上執行。
常見誤解
- PPO 是樣本效率最高的強化學習(RL)演算法 — 它是同策略的,會捨棄舊資料;它的強項在於穩定性以及隨平行模擬擴展的能力
- PPO 開箱即用 — 效能在很大程度上取決於獎勵設計、正規化與其他實作細節
- PPO 只適用於離散動作 — 它以高斯策略處理連續動作空間,在機器人領域也主要以這種方式使用
- 裁剪保證單調改進 — 裁剪是一種抑制大幅更新的啟發式方法,而非形式化的信賴域保證
誰需要了解
- 在模擬中訓練策略的機器人學習工程師
- 研究足式與人形機器人的行走運動研究人員
- 學習深度強化學習的學生
- 建置訓練環境的模擬工程師
相關技術
- 信賴域策略最佳化(Trust Region Policy Optimization,TRPO)
- 廣義優勢估計(Generalized Advantage Estimation,GAE)
- Soft Actor-Critic
- Isaac Lab
- MuJoCo
- 領域隨機化(Domain Randomization)
相關術語
相關專案
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- MuJoCo: DeepMind physics engine for robotics and ML research
- PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
- OpenPI: Physical Intelligence VLA foundation models for general robot control
- Microduck: Pollen Robotics' $399 walking duck robot: open-source software, closed hardware
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
影片
- Proximal Policy Optimization Explained: Edan Meyer