3-3-2-5 Actor-Critic

方策勾配法は「どう動くか」を直接学べますが、REINFORCEのような素朴な方法だと、学習が不安定になりやすい、たまたまの報酬に振り回されやすい、という弱点がありました。
そこで生まれたのが、Actor–Criticです。
これは名前の通り、役割を二つに分けます。

・Actor(アクター):行動する役
・Critic(クリティック):評価する役

Actorは、「この状態では、こう動こう」と方策に従って行動を選びます。
Criticは、「その行動、将来的にどれくらい良さそう?」と価値関数を使って評価します。

Actorが一歩踏み出し、Criticがそれを見て、「うん、それは良かった」「そこは、もう少し違うかも」とフィードバックを返すのです。
このやりとりを繰り返しながら、
方策(どう動くか)
価値(どれくらい良いか)
を同時に育てていきます

つまり、
・方策勾配の柔軟さ
・価値関数による安定性
この二つを合わせ持つ、ハイブリッド型と言えるでしょう。
REINFORCEよりも学習が安定しやすく、実用的な強化学習の中心的な枠組みになっています。

まとめると、Actor:行動を決める(方策)と、Critic:その行動を評価する(価値)の両者が協力して学習する方法ということになります。

A3C

A3C(Asynchronous Advantage Actor-Critic)は、Actor–Criticをさらに進化させた手法です。
ポイントは、複数のエージェントが、同時並行で学習する、というところです。

それぞれのエージェントが別々の環境で経験を積み、その結果を共有しながら、一つのモデルを更新していきます
だから、誰かが失敗しても、別の誰かが成功している……そんな分散した経験をまとめて使えます。

さらにA3Cでは、Advantage(アドバンテージ)という考え方を使って、「平均より、どれくらい良かったか」を基準に更新します。
これによって、学習のブレを抑え、より効率よく成長できます。

マルチエージェント強化学習は、複数のエージェントが同じ環境に存在しながら、それぞれ学習していく枠組みです。
ここでは、
・協力したり
・競争したり
・ときには駆け引きをしたり
他のエージェントの行動そのものが、自分にとっての「環境」になります

たとえば、
・囲碁や将棋の自己対戦
・複数ロボットの協調動作
・ゲーム内の複数プレイヤーAI
こうした場面では、「相手がどう動くか」が結果を大きく左右します。
つまり世界は、静かなフィールドではなく、「生きている相手」を含んだ舞台なのです。
マルチエージェント強化学習は、その動的な関係性の中で最適行動を探します。

「複数」で学ぶとは、A3Cのことでは?
そう、A3Cとマルチエージェント強化学習は混ざりやすい。ですので、ここで少し整理しましょう。

◆A3C
・同じエージェントのコピーが複数
・目的は全員同じ
・学習モデルはひとつ
・競争しない
・並列化による高速・安定学習が目的

たくさんの「自分」が、別々の世界で修行して、学びを持ち寄るイメージですね。

◆マルチエージェント強化学習
・エージェントは別個の存在
・目的が異なることもある
・それぞれが学習する
・競争や協調が起きる
・他のエージェントも「環境」の一部

複数の「他者」が同じ世界にいて、影響し合いながら成長するイメージですね。

まとめると、以下のとおりとなります。
A3C→同じAIを複数走らせて効率よく学習
マルチエージェント強化学習→複数のAIが互いに影響し合いながら学習