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の使用頻度は減りましたが、基礎的な手法として重要です。