好奇心による強化学習の改善の理論化とその実証の論文を読む

人間本来が持つ好奇心は未知なものへのリスクやストレスに勝つていたので様々な発展と開拓があったのは間違いはない。強化学習の分野でも好奇心による改善はいくつか示されている。

mabonki0725.hatenablog.com

Abbeel達は次の論文で、好奇心を情報量の改善と見做し、情報理論より報酬関数の改善を理論化して、これをVIMEとして変分法で実装し実証して見せた。

[1605.09674] VIME: Variational Information Maximizing Exploration

(1) 好奇心の定式化

 この論文では好奇心を以下の情報量IのGainの改善と捉える。

即ち探索行動a_t後の新局面s_{t+1}より遷移確率p_\theta\theta \in \Thetaパラメータを精緻化できた量を好奇心と定式化している。

  I(s_{t+1};\Theta|\xi_t,a_t) = \sum_t [H(\Theta|\xi_t,a_t) - H(\Theta|s_{t+1},\xi_t,a_t) ]

        ここで

   p(s_{t+1}|a_t,s_t;\theta)は遷移確率 パラメータ\thetaで定義

   Hは情報量(エントロフィ)

  \xi_t0 \sim tまでの経路(s_0,a_0) \dots (s_t,a_t)

それゆえ好奇心は遷移確率のp(\theta|\xi,a_t,s_{t+1})の改善量としてカルバック情報量\mathcal{D}_{KL}の増分で表せられる。

  \mathcal{I}(s_{t+1};\Theta|\xi_t,a_t) = \mathbb{E}_{s_{t+1} \sim P(\cdot|\xi_t,a_t)} [\mathcal{D}_{KL} [p(\theta|\xi_t,a_t,s_{t+1}) || p(\theta|\xi_t) ] ]       [2]

この行動によって遷移確率が改善されるなら、報酬と見做せるので改善された報酬r'は次となる。ここで\etaはハイパーパラメータ

        r'(s_t,a_t,s_{t+1}) = r(s_t,a_t) + \eta \mathcal{D}_{kL} [p(\theta|\xi_t,a_t,s_{t+1}) || p(\theta|\xi_t)]    [3]

 この記述によって本論文は逆強化学習であることがわかる。

 

(3) 近似関数の導入 

問題は事後分布p(\theta|\xi_t,a_t,s_{t+1})を解くことであるが、これは容易に解けないので、近似関数q(\theta;\phi_t)を導入する。

  p(\theta|\xi_t,a_t,s_{t+1}) \cong q(\theta; \phi_t) 

       但し\phiは次式の\mathcal{D}_{KL}は最小化するものとする。 

        \mathcal{D}_{KL}[q(\theta;\phi) || p(\theta|\xi_t,a_t,s_{t+1})]

近似関数は具体的にはガウス分布の重ね合わせたものを想定している。

 上式は変分の公式(PRML 10.2~10.3) を使うと下限\mathcal{L}の最大化で実現できる。

       \mathcal{L}[q(\theta;\phi),\mathcal{D}] = \mathbb{E}_{\theta \sim q(\cdot;\phi)} [\log p(\mathcal{D}|\theta) ] - \mathcal{D}_{KL} [q(\theta;\phi) || p(\theta) ]

       但し \mathcal{D} = (\xi_t,a_t,s_{t+1}) である。

近似関数q(\theta;\phi)を使うと逆強化学習は次式の様に簡単になる。

        r'(s_t,a_t,s_{t+1}) = r(s_t,a_t) + \eta \mathcal{D}_{kL} [q(\theta;\phi_{t+1}) || q(\theta;\phi_t)]   [7]

 

 (3) 目的関数 

目的関数は次としている。

 \mathcal{L} [q(\theta;\phi_{t+1}),\xi_t ] - \mathcal{L}[ q(\theta;\phi_t);\xi_t ]  [10]

目的関数は第1項と第2項を変分の定理を使って変形すると次式となる。

  (\log p(\xi_t) - \mathcal{D}_{KL} [q(\theta;\phi_{t+1}) || p(\theta|\xi_t) ])  -  (\log p(\xi_t) - \mathcal{D}_{KL} [q(\theta;\phi_t) || p(\theta|\xi_t) ])    

この目的関数が正しいかは、近似が正しいく q(\theta;\phi_t) = p(\theta|\xi_t)なる場合、

   \mathcal{D}_{KL} [q(\theta;\phi_t||p(\theta|\xi_t)] = 0となるので

目的関数(10)式は    

   \mathcal{D}_{KL} [p(\theta|\xi_{t+1})|| p(\theta|\xi_t) ]

となり、目的関数の最大は好奇心を表す情報量の差分[2]式の最大になることで分る。

但し、近似q(\theta;\phi_{t+1}) = p(\theta|\xi_{t+1})は成立とした。

 

(4) 実装

 実装のため近似関数を正規分布の重ね合わせで定義して、目的関数[10]を最大化する各平均\mu_i標準偏差\sigma_iを深層学習BNN(Bayesian Neural Network)で算出する。

  q(\theta;\phi) = \Pi^{|\Theta|}_{i=1} \mathcal{N}(\theta_i|\mu_i;\sigma^2_i)

       \sigma = \log(1+e^\rho)

ここで目的関数[10]の2項は以下で近似する。

  -\mathcal{L} [q(\theta;\phi_{t+1}),\xi_t ] \approx  l(q(\theta;\phi_{t+1}),s_t)

        -\mathcal{L} [q(\theta;\phi_t),\xi_t ] \approx  l(q(\theta;\phi_t),s_t)

変分の下限の定義は公式より次式である。

       -\mathcal{L}[q(\theta;\phi),\mathcal{s_t}] = \mathcal{D}_{KL} [q(\theta;\phi) || p(\theta) ] - \mathbb{E}_{\theta \sim q(\cdot;\phi)} [\log p(\mathcal{s_t}|\theta) ]   [6]

ここで、q(\theta:\phi_{t-1}) \approx p(\theta)とすると次式で近似できる。  

        -\mathcal{L} [q(\theta;\phi_t),\xi_t ] \approx l(q(\theta;\phi),s_t) = \mathcal{D}_{KL} [q(\theta;\phi_t) || q(\theta;\phi_{t-1}) ] - \mathbb{E}_{\theta \sim q(\cdot;\phi)} [\log p(s_t| \xi_t,a_t;\theta) ] [12]

また[6]が最小値の場合、q(\theta:\phi_{t-1}) \approx p(\theta)と見做せる。

よって[6]と[12]を最小化すると最適な\phiが求めることになる。

 

 但し右辺の第2項はサンプリングで求める。

  \frac{1}{N} \sum^N_{i=1} \log p(s_t|\xi_t,a_t;\theta)

近似関数を正規分布の重ね合わせにしたのでダイバージェンス\mathcal{D}_{KL}は次式で計算できる。

  \mathcal{D}_{KL} [q(\theta;\phi) || q(\theta;\acute{\phi})] = \frac{1}{2}   \sum^{|\Theta|}_{i=1} [ (\frac{\sigma_i}{\acute{\sigma_i}})^2 + 2\log \acute{\sigma_i} - 2 \log \sigma_i   + \frac{(\acute{\mu_i} - \mu_i)^2}{\acute{\sigma_i}^2} ] - \frac{|\Theta|}{2}

上式は凸2次式なので、1階微分と2階微分を計算すれば最大値が計算できる。

まず2階微分

    \frac{\partial^2 \mathcal{L}_{KL}}{\partial \mu^2} = \frac{1}{\log^2(1+e^{\rho_i})}

       \frac{\partial^2 \mathcal{L}_{KL}}{\partial \rho^2} = \frac{2 e^{2\rho_i}}{(1+e^{\rho_i})^2} \frac{1}{\log^2(1+e^{\rho_i})}

   但し\mathcal{L}_{KL}q(\theta;\phi) = \mathcal{D}_{KL} [q(\theta;\phi_t) || q(\theta;\phi_{t-1}) ]

次に1階微分

  \mathcal{D}_{KL} [q(\theta;\phi+\lambda \Delta \phi) || q(\theta;\phi) ] \approx \frac{1}{2} \lambda^2  \nabla_\phi l^T H^{-1}(\mathcal{L}_{KL}) \nabla_\phi l

       ここで 

        \Delta_\phi = H^{-1}(l) \nabla_phi l(l)

        H^{-1}(l)l(q(\theta;\phi),s_tのヘッセ行列

   \nabla_phi(l)l(q(\theta;\phi),s_t)微分

一階微分と2階微分を投入して目的関数[10]を最大とするBNNで最適なパラメータ\mu_i \rho_iを計算してp(\theta)の近似解を算出する

 

 

(5)実験

 このVIEMは報酬を好奇心で改善する強化学習なのでTRPO(Trust Region Policy Optimization)にVIME追加して下記の古典的な3つの課題に関して比較している。

右の2例ではVIEMが無いと殆ど学習できていない。

f:id:mabonki0725:20180304094954p:plain

TRPOは利益関数をA_\theta(s,a)を改善するパラメータ\thetaが大きく逸脱しない様に最適化する手法です。この論文では明記していないがTRPO+VIEMは利益関数Aを算出する場合にVIMEで好奇心を反映した報酬r'を使っていると考えられる。 

mabonki0725.hatenablog.com