普通の人間が普通のことを書くブログ

日記、自動車関係、カーシェアリングを中心に思ったことをつらつらと書きます。

【論文紹介】Deep Q Network(DQN)におけるマルチエージェント強化学習

Deep Q Network(DQN)を用いた強化学習は「倒立振子で学ぶ DQN (Deep Q Network)」「ゼロからDeepまで学ぶ強化学習」などに分かりやすくまとめられています。 上記はいずれもシングルエージェント、すなわち学習や行動を決定するエージェントが一つの場合のみを対象にしています。しかし、現実問題でシングルエージェントで対処できるものはあまり多くなく、ほとんどがマルチエージェント、すなわち学習や行動を決定するエージェントが複数存在する場合が多いと考えられます。 そうなると、シングルエージェントでは問題とならなかった、「複数エージェント間の連携」をどうするかという問題が新たに出てきます。各エージェントが好き勝手に行動するよりも、エージェント同士が連携したほうが多くの報酬を獲得できるはず、でもどうすればいいのか? その1つの方法として、DeepMindが以下の論文を発表しています。

Learning to Communicate with Deep Multi-Agent Reinforcement Learning

タイトルから分かるようにエージェント同士がコミュニケーションを取りながら行動できるようにしてみた、という内容です。以下、論文のざっくりした要旨をまとめますが、間違っている可能性が高いので、詳細を知りたい方は元の論文を参照することをおすすめします。 簡単に言うと、通常Q-Netには時刻tの状態s、行動a、報酬r、時刻t+1の状態sを入力しますが、これに加えてもう一方のエージェントの時刻t-1における行動uも入力するというものです。これが論文タイトルの「Communication」の意味で、もう一方のエージェントの直前の行動を考慮しつつ、自分の次の行動を決めるということです。これはエージェント同士がCommunicationできる=互いの行動を知ることができることが前提ではありますが、多くの問題に適用出来ると思われます。 複数のエージェントが連携せずとも、自分の利益だけを考えて行動すれば、全体の報酬が最大化されるような場合は上記のようなCommunicationは必要ありません。問題設定に応じてうまく使い分ける必要がありそうです。両方のやり方を比較すると面白い結果が分かるかもしれません。 また、DeepMindは「囚人のジレンマ」の実験も行っているようです。

AI同士は協力するか競争するか Google DeepMind、AIにゲームをプレイさせて研究

相手のエージェントを攻撃することが出来る場合、各エージェントはより高い報酬を獲得するために、相手を攻撃するか?という問題です。元の論文をざっと見る限り、エージェント同士がCommunicationをするプログラムではなさそうです。Communicationを取っていれば、相手を攻撃するという行動に至らなかった可能性もあります。 今後はマルチエージェントに関する論文が発表されることを期待しています。