複数エージェントの協調学習に成功している論文を読む

この論文はデモが凄いので結構よく論文が読まれている。これはバークレイ学派 Abbeel達の発表である。

[1706.02275v3] Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments

この4つのデモでは、複数のエージェントが協調や敵対を報酬設定によって実現されているのが示されている。f:id:mabonki0725:20180805091433p:plain

①協調対話:複数の発話者(3点)と聞き役(1点)がある。聞き役は指定された発話者の所に移動する場合、発話者は聞き役に移動方向を指示し、聞き役は呼応して移動する。

②協調狩:大きな障害物がある所で遅い動きの猟者達が早い動きの目標を協調して狩る

③協調指導:複数のエージェントが同数の目標を協調して占める

④偽装協調:複数の協調エージェントと敵対エージェントがある。協調エージェントは敵対エージェントを偽装して引き付ける役と目標を補足する役とで協調する

 

 動画はこちら

Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments

これらのデモを達成するために論文では以下の工夫をしている。

①各エージェントは独自に報酬が設定でき、協調や敵対行動が可能になる

 自分と他のエージェント間の関係

 自分と目標との関係

②各エージェントには次のActor-criticモデルを適用

 ・協調や敵対するため各エージェントは他のエージェントの行動a_jを見ることができる

 ・行動選択は決定的方策勾配法を採用:独自の方策関数\mu_\theta(s)を使う

 ・各エージェントの行動選択a_i=\mu_\theta(o_i)は自分の観察o_iから選択する

 上記の方法より、全てのエージェントの行動を把握できる事を前提にしており、行動選択はエージェント独自の状況から決定するので「中央監視・独自行動モデル」(centralized training with decentralized execution)として図1が示してある。

  f:id:mabonki0725:20180805110952p:plain

この図を式で示すと

 一般のactorでは

      \nabla_{\theta_i} J(\theta_i) = \mathbb{E}_{s \sim p^\pi,a_i \sim \pi_i} [\log_{\theta_i }\pi_i(a_i|o_i)  Q_i^\pi(o_i,a_i) \ ]

 協調や敵対で他のエージェントの行動を考慮して拡張する

      \nabla_{\theta_i} J(\theta_i) = \mathbb{E}_{s \sim p^\pi,a_i \sim \pi_i} [\log_{\theta_i }\pi_i(a_i|o_i)  Q_i^\pi(x,a_1 \dots a_N) \ ]

     x = (o_1\dots o_N)  o_jはエージェントjの観察

 

   これに決定勾配関数を\muを適用すると

      \nabla_{\theta_i} J(\theta_i) = \mathbb{E}_{s \sim p^\mu,a_i \sim \mu_i} [\nabla_{\theta_i }\mu_i(a_i|o_i)  \nabla_{a_i} Q_i^\mu(x,a_1 \dots a_N) \ | a_i  = \mu_i(a_i) ]

 

   criticは次の最小化でQ関数を決定

    \mathcal{L}(\theta_i) = \mathbb{E}_{x,a,r,x'}[Q_i^\mu(x,a_1 \dots a_N) - y)^2 ]

    y = r_i + \gamma Q_i^{\mu'}(x',a'_1 \dots a'_N) | a'_j = {\mu}'_j(o_j)

 

この論文が強調としている様にエージェントが全てのエージェントの行動を把握できる前提がある。これはエージェントは注意深く他のエージェント(敵対エージェントも含む)を監視して行動を把握できるモデルと解釈すべきである。

 

多数エージェント型のアルゴリズムは上記の式をactor-criticフレームに適用した内容になっている。

f:id:mabonki0725:20180805124450p:plain