GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

評価値の計算式を変えるんで、方策勾配法の式を再計算

 まず、行動価値関数(≒評価関数)の式は下記の通り。

  Q\left(s,a;\theta\right)=s\left(\sum_{b=1}^B\left{\theta_b \phi_b\left(s,a\right)\right}\right)

 ここで、Bは特徴量の数(次元数)、\phiは特徴量、sはシグモイド関数(+α*1)で、下記の通り。gはゲイン。

  s\left(x\right)=2 \cdot \frac{1}{1+exp{-gx}} - 1

 次に、方策は下記の通り。

  \pi\left(a_t | s_t;\theta\right)=\frac{exp(Q\left(s,a;\theta\right)/T)}{\sum_{a'\in A}exp(Q\left(s,a';\theta\right)/T)}

 次に、\nabla_\theta log\pi\left(a|s;\theta\right)は下記の通り計算出来る。なお、式中のs2\left(a\right)=\frac{1}{2}\left(s\left(\sum_{b=1}^B\left{\theta_b \phi_b\left(s,a\right)\right}\right)+1\right)

// 2010/10/17 21:10修正

  \begin{eqnarray} \nabla_\theta log\pi\left(a|s;\theta\right)&=&\frac{\nabla_\theta\pi\left(a|s;\theta\right)}{\pi\left(a|s;\theta\right)}\\&=&\frac{exp(Q\left(s,a;\theta\right)/T)\cdot\frac{2g \cdot s2(a) \cdot \left(1-s2(a)\right) \cdot \phi(s,a)}{T} \cdot \sum_{a'\in A}exp(Q\left(s,a';\theta\right)/T)-exp(Q\left(s,a;\theta\right)/T)\cdot\sum_{a'\in A}\left{exp(Q\left(s,a';\theta\right)/T) \cdot \left{\frac{ 2g \cdot s2(a') \cdot \left(1-s2(a')\right) \cdot  \phi(s,a')}{T}\right}\right}}{\pi\left(a|s;\theta\right)\cdot\left(\sum_{a'\in A}exp(Q\left(s,a';\theta\right)/T)\right)^2}\\&=&\frac{2g \cdot s2\left(a\right) \cdot \left( 1 - s2\left(a\right) \right) \cdot \phi\left(s,a\right) - \sum_{a' \in A }\left{ \pi\left(a'|s;\theta\right) \cdot 2g \cdot s2\left(a'\right) \cdot \left( 1 - s2\left(a'\right) \right) \cdot \phi\left(s,a'\right) \right} }{T}\end{eqnarray}

*1:値が-1から1になる様に調整する