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 の周りの小さな区間にクリップするため、1 回の更新でポリシーを大きく動かしすぎても最適化器は何も得られない。これにより PPO は、同じデータのバッチに対してミニバッチ勾配降下を複数エポック実行できる。アドバンテージは通常、学習した価値関数を用いて一般化アドバンテージ推定(GAE)で計算されるため、PPO はアクター・クリティック手法である。
PPO はオンポリシーであり、古いポリシーで収集したデータは各更新の後に破棄される。そのため、リプレイバッファの経験を再利用する Soft Actor-Critic などのオフポリシー手法よりもサンプル効率が低い。ロボティクスでは、シミュレーションで学習する場合にはこの弱点はそれほど問題にならない。GPU ベースのシミュレータは数千の環境を並列に実行し、新しいデータの大きなバッチをすばやく生成できるからである。その単純さ、安定性、並列環境に対する良好なスケーリングによって、PPO は多くの sim-to-real のロコモーションパイプラインで標準のアルゴリズムとなった。
PPO の結果は実装の細部に敏感である。観測とアドバンテージの正規化、学習率のスケジュール、エントロピーボーナス、価値関数のクリッピング、ネットワークの初期化のすべてが性能に影響する。ロボティクスのチームは通常、自前で書くのではなく十分にテストされた実装に頼り、報酬の設計とシミュレーションパラメータのランダム化を慎重に行う。PPO は報酬やシミュレータのあらゆる欠陥を突いてくるからである。
重要な理由
実機の脚型ロボット、ヒューマノイド、器用なハンドでの強化学習の成果の大部分は PPO によるものである。広い範囲のハイパーパラメータを許容し、大規模並列シミュレーションとともにうまくスケールするからである。PPO を理解することは、sim-to-real のロボット学習研究の大半を読んだり再現したりするための実際的な前提条件である。
主な用途
- 脚型ロコモーション — シミュレーションで四脚ロボットやヒューマノイドの歩行・走行ポリシーを学習させる
- 器用なマニピュレーション — 多指ハンドによる手の中での物体の向き変えを学習する
- ドローン制御 — 機敏な飛行やレースのポリシーを学習する
- 全身制御 — 多数の関節を同時に協調させるポリシーを学習させる
- 言語モデルのファインチューニング — PPO は人間のフィードバックからの強化学習にも使われる
実際の使われ方
典型的なチームは、Isaac Lab や MuJoCo などの GPU シミュレータでロボットとその観測、行動、報酬を定義し、数千の並列環境を起動して、rsl_rl、Stable-Baselines3、skrl などの既存のライブラリで PPO ポリシーを学習させる。各イテレーションでは、すべての環境から短いロールアウトを収集し、アドバンテージを計算し、クリップされた更新を数エポック実行する。エンジニアはエピソード報酬、エピソード長、ポリシーのエントロピー、価値損失を監視し、労力の大部分をアルゴリズムそのものではなく、報酬項、カリキュラム、ドメインランダム化に注ぐ。学習済みのポリシーは通常、小さな多層パーセプトロンまたは再帰型ネットワークであり、エクスポートされてロボット上で一定の制御周期で実行される。
よくある誤解
- 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