A2C/A3C

Advantage Actor-Critic / Asynchronous Advantage Actor-Critic

A2C/A3Cとは

A3C(Asynchronous Advantage Actor-Critic)とは、2016年にDeepMindが提案した深層強化学習アルゴリズムです。複数のエージェントを並列に実行して経験を収集し、アドバンテージ関数を用いたActor-Criticアーキテクチャで学習します。A2C(Advantage Actor-Critic)はA3Cの同期版で、より安定した学習が可能です。

A3Cの非同期学習

A3Cでは複数のワーカーが各自の環境で独立にデータを収集し、非同期にグローバルなパラメータを更新します。これにより経験再生バッファが不要となり、多様な経験が得られることで探索が促進されます。また、GPU無しでもCPU並列で高速な学習が可能です。

A2Cの同期学習

A2CはA3Cの同期版で、全ワーカーのデータ収集が完了してからまとめてパラメータを更新します。非同期更新に比べてGPUの利用効率が高く、実装もシンプルです。実験的にはA2CとA3Cの性能差は小さく、A2Cの方が実装しやすいため実務ではA2Cが好まれることが多いです。

アドバンテージ関数の利用

A2C/A3CではアドバンテージA(s,a) = R - V(s)(Rは実際のリターンまたはn-stepリターン)を用いてActorの勾配を推定します。これによりバリアンスが削減され、効率的な学習が可能になります。PPOの登場によりA2C/A3Cの使用頻度は減りましたが、基礎的な手法として重要です。