コンピュータ大貧民の研究報告を読む

「方策勾配法による局面評価関数とシミュレーション方策の学習」の中で教師有り学習についても提案されている。この研究報告は数式が難しそうで読める気がしない(クズ)が、この手法が最近、コンピュータ大貧民に持ち込まれ、一定の成果を上げている。 これはコンピュータ大貧民大会(UECda)に二年連続で優勝してテレビにも出演した大渡氏による(すごい)。詳細は研究報告「方策勾配を用いた教師有り学習によるコンピュータ大貧民の方策関数の学習とモンテカルロシミュレーションへの利用」を読まれたい。(コメント欄に修正版リンクを張っていただいたので参照のこと。)

この学習においては次のような誤差関数を最小化することで、評価関数のパラメータをチューニングするようだ。 数式の意味とかは研究報告を参照として、ここから更新式を導出するまでをとりあえず追ってみたい。

 \displaystyle
L(\pi_* , \pi_\theta ) = \sum_{b\in A}\pi_*(s,b) \ln\left(\frac{\pi_*(s,b)}{\pi_\theta(s,b)}\right)

\pi_*が決定的とは、局面 sでの教師の行動が xのとき

 \displaystyle
\pi_*(s,x) = 1

が成り立つということなので( b=x以外では0となる)

 \displaystyle
\begin{align}
L(\pi_* , \pi_\theta ) &=& \sum_{b\in A}\pi_*(s,b) \ln\left(\frac{\pi_*(s,b)}{\pi_\theta(s,b)}\right) \\
&=&  \pi_*(s,x) \ln\left(\frac{\pi_*(s,x)}{\pi_\theta(s,x)}\right) \\
&=&
\ln\left(\frac{1}{\pi_\theta(s,x)}\right) \\
&=&
-\ln(\pi_\theta(s,x))
\end{align}

で、これが(3)式である。

(4)式の更新式は、この式を\thetaによって偏微分することで得られる。

 \displaystyle
\begin{align}
\frac{\partial L(\pi_* , \pi_\theta )}{\partial \theta} &=& 
-\frac{\partial }{\partial \theta} \ln(\pi_\theta(s,x))\\
&=& 
-\frac{\partial }{\partial \theta} \ln\left(\frac{\exp^{\phi (s,x)\cdot \theta /T}}{\sum_{b\in A}\exp^{\phi (s,b)\cdot \theta /T}}\right)\\
&=& 
-\frac{\partial}{\partial \theta}\ln(\exp^{\phi(s,x)\cdot \theta /T})+\frac{\partial}{\partial \theta}\ln\left(\sum_{b\in A}\exp^{\phi(s,b)\cdot \theta /T} \right) \\
\end{align}

第1項は自然対数なので簡単に計算ができて

 \displaystyle
\begin{align}
-\frac{\partial}{\partial \theta}\ln(\exp^{\phi(s,x)\cdot \theta /T}) &=& -\frac{\partial}{\partial \theta}\frac{\phi(s,x)\cdot \theta}{T} \\
&=&
-\frac{\phi(s,x)}{T}
\end{align}

第2項は少し複雑になるが、同じようにできて、最後に\piの式が現れるので置き換えられる。

 \displaystyle
\begin{align}
\frac{\partial}{\partial \theta}\ln\left(\sum_{b\in A}\exp^{\phi(s,b)\cdot \theta /T}\right)
&=&
\frac{ \frac{\partial}{\partial \theta}\sum_{b\in A}\exp^{\phi(s,b)\cdot \theta /T} }{\left(\sum_{b\in A}\exp^{\phi(s,b)\cdot \theta /T}\right)} \\
&=&
\frac{ \sum_{b\in A} \frac{\phi(s,b)}{T} \exp^{\phi(s,b)\cdot \theta /T} }{\left(\sum_{b\in A}\exp^{\phi(s,b)\cdot \theta /T}\right)} \\
&=&
\sum_{b\in A} \frac{\phi(s,b)}{T}\pi(s,b)
\end{align}

それで結局

 \displaystyle
\begin{align}
\frac{\partial L(\pi_* , \pi_\theta )}{\partial \theta} &=& 
-\frac{\partial }{\partial \theta} \ln(\pi_\theta(s,x))\\
&=& 
-\frac{\phi(s,x)}{T} + \sum_{b\in A} \frac{\phi(s,b)}{T}\pi(s,b) \\
&=&
-\frac{1}{T} \left( \phi(s,x) - \sum_{b\in A} \phi(s,b) \pi(s,b) \right)
\end{align}

となって更新式が得られる。 これに学習係数をかけて、実際には更新を行っているようだ。

参考文献

  1. 五十嵐治一,森岡祐一,山本一将, 方策勾配法による局面評価関数とシミュレーション方策の学習, 研究報告ゲーム情報学 (GI), 2013-GI-30(6), 1-8, 2013.
  2. 大渡勝己, 田中哲朗, 方策勾配を用いた教師有り学習によるコンピュータ大貧民の方策関数の学習とモンテカルロシミュレーションへの利用, 研究報告ゲーム情報学(GI), 2016-GI-35(10), 1-8, 2016.
  3. 2の訂正版