OpenAI Baselines: ACKTR および A2C
OpenAI は、Baselines フレームワーク向けに 2 つの新しい実装をリリースしました:ACKTR (Kronecker-factored Trust Region を使用した Actor Critic) と A2C (Advantage Actor Critic)。これらのリリースは、強化学習におけるサンプル効率を向上させるツールを研究者に提供し、非同期の A3C アルゴリズムに対するより計算効率が高く、同期的な代替手段を提供します。
ACKTR: 高いサンプル効率とスケーラビリティ
ACKTR は、A2C などの一次法や TRPO などの他の信頼領域法よりもサンプル効率が高いように設計されています。これは、標準の勾配方向ではなく、自然勾配方向にステップを踏むことで実現されます。
技術的基盤
ACKTR は、ポリシー改善を最適化するために 3 つの核心的な技術を組み合わせます:
- Actor-Critic メソッド: ポリシーベース学習と価値ベース学習の組み合わせ。
- Trust Region 最適化: KL ダイバージェンスを制限することで、新しいポリシーが古いポリシーと極端に異なる動作をしないようにし、一貫した改善を確保します。これにより、パフォーマンスの崩壊を防ぎます。
- 分散 Kronecker 因子分解: スケーラビリティとサンプル効率の両方を向上させるために使用されます。
サンプル複雑度 vs. 計算複雑度
ACKTR は、インタラクションタイムステップの数(サンプル複雑度)と数値演算の数(計算複雑度)の間のトレードオフを最適化します:
- サンプル複雑度: ACKTR は、自然勾配が出力分布の単位変化あたりの目的関数における最大の瞬間的改善を達成するパラメータ空間の方向を特定するため、一次法よりもサンプル複雑度が優れています。
- 計算複雑度: ACKTR で使用される KFAC アップデートは、標準の勾配アップデートと比較して 1 アップデートステップあたりわずか 10–25% しか計算コストが増えません。これにより、高価な共役勾配計算を必要とする TRPO よりもはるかに効率的になります。
パフォーマンスとスケーリング
ACKTR のパフォーマンスはバッチサイズに対して良好にスケールします。各バッチからの情報を使用してパラメータ空間の局所的な曲率を近似するため、大規模な分散トレーニングで一般的な大バッチサイズにおいて特に効果的です。
A2C: A3C の同期的な代替手段
A2C は、非同期 Advantage Actor Critic (A3C) アルゴリズムの同期的かつ決定論的なバリアントです。A3C は影響力があったものの、OpenAI は A3C の非同期性がパフォーマンスの向上に寄与しないことを発見しました。
A2C vs. A3C
- メカニズム: A3C が非同期にアップデートするのとは対照的に、A2C は各アクターが経験のセグメントを終了するのを待ってからアップデートを行い、すべてのアクターについて平均を取ります。
- パフォーマンス: OpenAI の同期的な A2C 実装は、非同期の実装よりも優れた性能を示します。彼らは、非同期によって導入されるノイズが正則化または探索の利益を提供する証拠を見つけることができませんでした。
- 効率: A2C は、大規模なバッチサイズで GPU をより効果的に活用できるため、シングル GPU マシンにおいてコストパフォーマンスが高いです。また、より大きなポリシーを使用する場合、CPU 専用の A3C 実装よりも高速です。
ベンチマークとアプリケーション
OpenAI は、さまざまなタスクにおいて ACKTR と A2C を PPO と ACER と比較するベンチマークをリリースしました。ACKTR は 49 の Atari ゲームでテストされ、ハイパーパラメータはゲーム Breakout のみに基づいて調整されました。
ACKTR は、以下の制御ポリシーを学習するために適用されています:
- シミュレートされたロボット: ピクセルを入力とし、連続的なアクション空間を使用。
- Atari エージェント: ピクセルを入力とし、離散的なアクション空間を使用。
Sources
- OriginalOpenAI Baselines: ACKTR & A2C