相互情報量を使ったOptionを認識する論文を読んでみる

Open-AIの強化学習のリスト[1]でVariational(変分)のカテゴリィにあった論文だが、環境から得られる相互情報量を変分を使っての最大化し、Optionを認識しようとするものである。

[1611.07507] Variational Intrinsic Control

 この論文はoptionの始点s_0と終点(サブゴール)s_fとの相互情報量(mutial information)の最大化によってOptionを環境から認識しようとする論文[2]をLSTMを使って拡張したものである。

 この論文はサブゴールを認識対象としているオプションのモデル[3]と異なり、サブゴールが明示されているもので、多数のサブゴールがあるオプションの中から有意なものを相互情報量で認識するモデルである。

 相互情報量を使ってOptionを認識する方法は数理的に完成されたものなので醍醐味があり、この方法について説明する。

 (LSTM版はこの相互情報量の最大化と同じであるが、この強化学習による動作をLSTMで過去の情報を利用しただけなので割愛する。しかしこの方法によってより高次元の問題を解ける様になったと述べている)

 

(1)モデル

 現在点s_0を条件としてオプション\Omegaとその終点s_fとの条件確率と相互情報量を考える。

  条件確率     p(\Omega,s_f | s_0)

     相互情報量 \mathcal{I}(\Omega,s_f | s_0)

 この相互情報量を最大化することは現時点s_0と様々なOptionのサブゴールs_fについての分布に差が大きくなることである。この方法で同様なOptionを排除して相異なるOptionを認識しょうとするアイデアである。

 

   また同時確率はベイズを使って次に変形できる。

  p(\Omega,s_f | s_0)=p^J(s_f | s_0,\Omega) p^C(\Omega | s_0)

       ここでp^J p^Cと記述するのは違いを明示しているだけである。

 

   相互情報量はエントロフィの同時確率なので次の定理がある。

  \mathcal{I}(X,Y) = H(X,Y) = -H(X)+ H(X|Y)

   これを使うと相互情報量は次式で展開できる。

  \mathcal{I}(\Omega,s_f|s_0) = H(\Omega | s_0) - H(\Omega | s_f,s_0)    

        ところでエントロフィの定義から

         H(\Omega | s_0) = \sum_\Omega p^C(\Omega | s_0) \log p^C(\Omega | s_0)

   H(\Omega | s_f,s_0) = \sum_{\Omega,s_f} p(\Omega | s_f,s_0) \log p(\Omega | s_f,s_0)

            \sum_{s_f}  p(\Omega | s_f,s_0) = \sum_{s_f} p(s_f  | s_0,\Omega) p(\Omega|s_0)

       なので論文の記述が得られた。

    \mathcal{I}(\Omega,s_f|s_0)= - \sum_\Omega p^C(\Omega | s_0) \log p^C(\Omega | s_0) + \sum_{\Omega,s_f} p^J(s_f |s_0,\Omega) p^C(\Omega| s_0)  \log p(\Omega | s_f,s_0)

 この相互情報量を最大化するため変分\log p(\Omega | s_f,s_0) \to \color{blue}{\log q_\phi(\Omega | s_f,s_0)}を導入する。

 またoptionのサンプリング確率p^C(\Omega,s)\thetaをパラメータとして与えると、変分相互情報量は以下で表現できる。

 \mathcal{I}_{\theta}^{VB}(\Omega,s_f|s_0)= - \sum_\Omega p_\theta^C(\Omega | s_0) \log p_\theta^C(\Omega | s_0) + \sum_{\Omega,s_f} p^J(s_f |s_0,\Omega) p_\theta^C(\Omega| s_0)  \color{blue}{\log q_\phi(\Omega | s_f,s_0)}

  Appendex2に従って変分相互情報量\mathcal{I}_{\theta}^{VB}を最大化するため\theta微分してみる。

     \nabla_\theta \mathcal{I}^{VB} = - \sum_\Omega\{(\nabla_\theta p_\theta^C (\Omega | s_0) \log p_\theta^C(\Omega | s_0) +   p_\theta^C (\Omega | s_0) \nabla_\theta \log p_\theta^C(\Omega | s_0) \} + \sum_{\Omega,s_f} \{p^J(s_f | s_0,\Omega) \nabla_\theta p_\theta^C(\Omega | s_0) log_\phi(\Omega | s_0,s_f) \}

 ここで次の式を使うと論文の記述が得られる。

  \nabla_\theta p_\theta^C(\Omega|s_0) = p_\theta^C(\Omega|s_0) \nabla_\theta \log(\Omega | s_0)

     \nabla_\theta \mathcal{I}^{VB} = - \sum_\Omega p_\theta^C(\Omega | s_0) \{ -1 - \log p_\theta^C(\Omega|s_0) + \sum_{s_f} p^J(s_f | s_0,\Omega) \log_\phi(\Omega,s_f) \} \nabla_\theta \log p_\theta^C(\Omega|s_0)

     \nabla_\theta \mathcal{I}^{VB} = - \sum_{\Omega,s_f} p^J(s_f | s_0,\Omega) p_\theta^C(\Omega | s_0) [-1 - \log p_\theta^C(\Omega|s_0) + \log q_\phi(\Omega | s_f,s_0)] \nabla_\theta \log p_\theta^C(\Omega|s_0)

ここで 擬似報酬r_Iを考え、以下と置く

 r_I  = \log q_\phi(\Omega|s_0,s_f) - \log p_\theta^C(\Omega|s_0) - b(s_0)と置くと

    \nabla_\theta \mathcal{I}^{VB} = - \sum_{\Omega,s_f} p^J(s_f | s_0,\Omega) p_\theta^C(\Omega | s_0) [ r_I - e(s_0)] \nabla_\theta \log p_\theta^C(\Omega|s_0) 

よって 相互情報量を大きく改善するには擬似報酬r_Iを大きく得る方策を採ればよいことが分る。

    但し b(s_0)はベースラインでAppendix2では任意の値を設定しても0値になることが示してあり、実装上では回帰で算出される。

    擬似報酬は次式なので、option \Omegaが稀にサンプリングされるが、始点s_0とサブゴールs_fとでそのoptionの発生確率が高ければ擬似報酬は大きい値をもつ。(注):言語解析で稀に出る単語で結び付きの高い単語があれば有意な関連を持つのと同じである。

 r_I = \log q_\phi(\Omega|s_0,s_f) - \log p_\theta^C(\Omega|s_0) = \log\frac{q_\phi(\Omega|s_0,s_f)}{p_\theta^C(\Omega|s_0)}

 ここでサブゴールs_fで報酬r_Iを得る方策\pi(a|\Omega,s_0)を考える。この方策\piは報酬の多寡によってサブゴールへの効率が異なる。またサブゴールs_fに至る確率p^J(s_f | s_0,\Omega)は観測できるものである。

 以上により相互情報量\mathcal{I}(\Omega,s_f|s_0)を最大化するアルゴリズムが構築できる。

 

(2) アルゴリズム

 Agent の初期位置s_0とする

 以下をM回繰返す 

  \Omega \sim p_\theta^C(\Omega|s_0) optionをサンプリングする 

  \Omegaで設定されたサブゴールs_f\pi(a |\Omega,s)の方策で向かう。

    (注)方策の訓練が十分でない場合は効率が悪く(迂回して)s_f点に至ることになる。

       観測されたs_0,s_fでoption\Omegaを回帰して\color{blue}{q_\phi(\Omega|s_0,s_f)}のパレメータ\phiを改善する。

  r_I \gets \log q_\phi(\Omega | s_0,s_f) - \log_\theta^C(\Omega|s_0) 擬似報酬を得る

  \Omegaで設定したサブゴールで擬似報酬r_Iを得る方策\pi(a | \Omega,s_0)強化学習モデルで訓練する

  擬似報酬が高いと方策\pi(a | \Omega,s_0)がよく訓練され効率がよくなる。

  \theta \gets \theta + \alpha \nabla_\theta I_\theta^{VB}(\Omega,s_f,s_0)で更新する

  p_\theta^C(\Omega|s_0)を更新する

  s_0 \gets s_f

 上記の様な繰返で、選択されたopitonに従って移動しながら次の3つの確率を精緻化して相互情報量を最大化している。その結果、相互に有意なoptionを識別していることが分る。

    方策\pi(a | \Omega)

    optionの優先選択p_\theta^C(\Omega | s_0)

    変分 \color{blue}{q_\phi(\Omega | s_0,s_f)}  

 

(3) 実験結果

  実験①30点のoptionで互いに離れている位置への到達の学習

     グリッド上は20%の確率でランダムに移動する。  左図の中央から30点が互いに離れている位置への移動の学習で右図の20画面の明るい所がサブゴールを示す。

f:id:mabonki0725:20190114010654p:plain

 実験②間違った方向を採ると左上隅に落ちるグリッド

  グリッドワードの青色は壁で、チェックの上下の領域では、赤字で示す様に上側は左右、下側は上下に動くとペナルティとして左上隅に落込んで暫く動けない。またある確率でランダムに移動するので、少し動くとどの領域にいるか分らなくなる。

  最下段は領域の区別をしない学習で、左上隅に落ち込まない様に真ん中を避けてサブゴールを設定する様子を表している。

  1段目と2段目は自分がどの領域に居るか識別できている学習で、次のサブゴールを示している。 

f:id:mabonki0725:20190114011151p:plain

(4) 感想

 サブゴールが明示的なOptionの場合は、相互情報量を使わず全オプションを評価した方が簡単で効率的でないかと思えるが、実験②の様に2つの領域が突然変化する場合は、環境からの相互情報量を使うモデルが有効である事が分る。なお著者が述べている様に、このモデルには課題が低次元で近似関数も線形が使われている。高次元でも学習するにはLSTMを使った拡張版が必要なのかもしれない。  

 

[1]Key Papers in Deep RL — Spinning Up documentation

[2] C.Salge et al. 2014  [1611.07507] Variational Intrinsic Control

[3] P.Barcon et al. 2016 [1609.05140] The Option-Critic Architecture