Advantage Actor Critic (A2C) の解説
TL;DR
Advantage Actor Critic (A2C) は、ポリシーベース(Actor)と価値ベース(Critic)の手法を組み合わせたハイブリッド強化学習アーキテクチャで、Reinforce のような純粋なポリシー勾配法に伴う高い分散を低減します。この組み合わせにより、価値関数を用いて行動に対する即時のフィードバックを提供し、エピソード全体のモンテカルロリターンに依存することなく、学習を安定させサンプル効率を向上させます。
The Variance Problem in Reinforce
純粋なポリシーベース手法、例えば Reinforce は、モンテカルロサンプリングに依存するため、ポリシー勾配推定において大きな分散が生じます。Reinforce では、エージェントは全軌跡を収集し、割引リターンを用いてその軌跡内のすべての行動の確率を増減させます。
このアプローチは真のリターンを使用するためバイアスがなく、しかし非常に不安定です。環境やポリシーの確率的な性質により、同じ開始状態でもエピソードごとに大きく異なるリターンが得られます。この分散を緩和するためには、多数の軌跡を使用しなければならず、サンプル効率が大幅に低下し、学習が遅くなります。
The Actor-Critic Architecture
Actor-Critic 手法は、2 つの異なる関数近似を組み合わせることで分散問題を解決します:
- Actor: エージェントの行動を制御するポリシー関数 $\pi_{\theta}(s, a)$。
- Critic: 取られた行動の品質を測る価値関数 $(\hat{q})_{w}(s, a)$。
The Actor-Critic Training Process
Actor-Critic の学習プロセスは、連続的なフィードバックループを通じて Actor と Critic が共に最適化されます:
- 行動選択: Actor は現在の状態 $S_t$ を受け取り、行動 $A_t$ を出力します。
- 価値推定: Critic は $S_t$ と $A_t$ を受け取り、Q 値(その状態でその行動を取る価値)を計算します。
- 環境との相互作用: 行動 $A_t$ が実行され、新しい状態 $S_{t+1}$ と報酬 $R_{t+1}$ が得られます。
- ポリシー更新: Actor は Critic が提供した Q 値に基づいてポリシーパラメータを更新します。
- 価値更新: Critic は自身の価値パラメータを更新し、将来のフィードバックを改善します。
Advantage Actor Critic (A2C)
Advantage Actor Critic (A2C) は、標準的な行動価値関数を Advantage 関数 に置き換えることで、学習をさらに安定させます。
行動の絶対的な価値を測る代わりに、Advantage 関数は特定の行動がその状態の平均価値と比べてどれだけ優れているかを計算します。状態-行動ペアから状態の平均価値を引きます:
$$\text{Advantage} = Q(s, a) - V(s)$$
Implementation via TD Error
TD 誤差による実装
真の Advantage 関数を実装するには通常、2 つの別々の価値関数($Q(s, a)$ と $V(s)$)が必要です。これを簡略化するために、A2C は Temporal Difference (TD) 誤差 を Advantage 関数の信頼できる推定量として使用します。
計算された Advantage $A(s, a)$ が正の場合、勾配はその方向に押し出され、行動の確率が増加します。$A(s, a)$ が負の場合(その状態の平均よりも行動が劣っていることを意味する)、勾配は逆方向に押し出されます。
Practical Application in Robotics
ロボティクスにおける実践的応用
Hugging Face は、Stable-Baselines3 ライブラリを PyBullet ロボティクスシミュレーション内で使用した A2C の応用例を示しています。これにより、二足歩行ロボットやクモ型ロボットの歩行学習など、複雑な連続制御環境でエージェントを訓練することが可能になります。
Sources
- OriginalAdvantage Actor Critic (A2C)