見出し画像

PPO : OpenAIのデフォルトの強化学習アルゴリズム

以下の記事が面白かったので、ざっくり訳してみました。

Proximal Policy Optimization

1. はじめに

「方策勾配法」は、ビデオゲーム、3D移動、囲碁などディープニューラルネットワークを使用する昨今のブレークスルーの基本です。しかし、「方策勾配法」を使用して良い結果を出すのは非常に困難です。ステップサイズの選択に敏感であり、小さすぎると進行が絶望的に遅くなり、大きすぎると、パフォーマンスが壊滅的に低下します。さらに、サンプル効率が非常に低く、単純なタスクを学習するだけでも数百万(または数十億)ステップを要することがあります。

研究者は、「TRPO」や「ACER」などのアプローチを利用して、ポリシー更新のサイズを制限または最適化することにより、これらの欠陥を排除しようとしました。これらの方法にはそれぞれトレードオフがあります。

「ACER」は「PPO」よりもはるかに複雑で、ポリシー違反の修正とリプレイバッファのコードを追加する必要がありますが、Atariベンチマークでは「PPO」よりわずかに優れています。

「TRPO」は、継続的な制御タスクには便利ですが、Atariや視覚入力が重要なタスクに使用されるような、ポリシーと価値関数の間でパラメータを共有するアルゴリズムとの互換性がありません

2. PPO

「PPO」(Proximal Policy Optimization)は、実装と調整が非常に簡単でありながら、最先端のアプローチと同等以上のパフォーマンスを発揮する強化学習アルゴリズムです。「PPO」は、使いやすさと優れたパフォーマンスのため、OpenAIのデフォルトの強化学習アルゴリズムになっています。

「教師あり学習」を使用すると、コスト関数を簡単に実装し、勾配降下法を実行でき、比較的少ないハイパーパラメータチューニングで優れた結果が得られることがわかっていますが、「強化学習」はそれほど明白ではありません。アルゴリズムにデバッグが困難な多くの可動部分があり、良い結果を得るためにかなりのチューニングの努力が必要となります。

「PPO」は、実装の容易さ、サンプルの複雑さ、および調整の容易さのバランスを取り、コスト関数を最小限に抑えながら以前のポリシーからの偏差が比較的小さいことを保証する各ステップで更新を計算しようとします。

以前に「PPO」のバリアント(亜種)を説明しました。適応KLペナルティを使用して、各反復でポリシーの変更を制御します。今回の新しいバリアントは、他のアルゴリズムには通常見られない新しい目的関数を使用します。

画像1

θ : ポリシーパラメータ
E_t : タイムステップにわたる経験的期待値
r_t : 新しいポリシーと古いポリシーでの確率の比率
A_t : 時間ttで推定されるアドバンテージ
ε : ハイパーパラメータ(0.1または0.2)

この目標は、確率的勾配降下法と互換性のある信頼領域更新を実行する方法を実装し、KLペナルティと適応更新を行う必要性を取り除くことでアルゴリズムを簡素化します。

テストでは、このアルゴリズムは連続制御タスクで最高のパフォーマンスを示し、実装がはるかに簡単であるにもかかわらず、Atariでの「ACER」のパフォーマンスとほぼ同じになりました。

3. 制御可能な複雑なロボット

画像2

「PPO」によって訓練されたポリシーに基づいてインタラクティブエージェントを作成しました。キーボードを使用して、Roboschool内の環境でロボットの新しいターゲット位置を設定できます。入力シーケンスはエージェントが訓練したものとは異なりますが、汎化することができます。

また、以下に示すボストンダイナミクスの「アトラス」モデルのように、「PPO」を使用して、複雑なシミュレートされたロボットの歩行を指導しました。モデルには30の異なるジョイントがありますが、2足ロボットの場合は17です。

画像3

他の研究者は、「PPO」を使用してシミュレートされたロボットを訓練し、障害物の上を走りながら印象的なパルクールを実行しました。

4. Baselines: PPO、PPO2、ACERおよびTRPO

このリリースのBaselinesには、データの受け渡しにMPIを使用する「PPO」と「TRPO」のスケーラブルな並列実装が含まれています。どちらもPython3とTensorFlowを使用します。また、上記のロボットをRoboschoolエージェントzooに訓練するために使用されるポリシーの事前訓練済みバージョンを追加しています。

【更新】
「PPO2」と呼ばれる、GPU対応のPPOの実装をリリースしました。これは、現在の「PPO」よりも約3倍高速に実行されます。

さらに、サンプル効率の高い方策勾配アルゴリズムである「ACER」をリリースしました。「ACER」はリプレイバッファを使用して、サンプリングされた各エクスペリエンスと訓練アルゴリズムで訓練されたQ関数近似を使用して、複数の勾配更新を実行できるようにします。


この記事が気に入ったらサポートをしてみませんか?