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

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

ソフトマックス方策を用いた方策勾配法の計算式

 どっかおかしかったら指摘お願いします。

 まず、行動価値関数Qは下記の通りの線形近似を行う。

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

 ここで、Bは特徴量の数(次元数)、\phiは特徴量。

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

  \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)は下記の通り計算出来る。

// 17:54修正 こうですか分かりません
// 21:09追記 間違ってました、今から修正します
// 21:50修正 添削済みなんで、多分これであってます
// 2010/10/17 21:08 下の式、思いっ切り間違ってます。ただ、この式はもう使わないので放置。

  \begin{eqnarray} \nabla_\theta log\pi\left(a|s;\theta\right)&=&\frac{\nabla_\theta\pi\left(s|a;\theta\right)}{\pi\left(a|s;\theta\right)}\\&=&\frac{exp(Q\left(s,a;\theta\right)/T)\cdot\frac{\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}exp(Q\left(s,a';\theta\right)/T)\cdot\sum_{a'\in A}\frac{\phi(s,a')}{T}}{\pi\left(a|s;\theta\right)\cdot\left(\sum_{a'\in A}exp(Q\left(s,a';\theta\right)/T)\right)^2}\\&=&\frac{exp(Q\left(s,a;\theta\right)/T)\cdot\left(\phi\left(s,a\right)-\sum_{a'\in A}\phi\left(s,a'\right)\right)}{\pi\left(a|s;\theta\right)\cdot\sum_{a'\in A}exp(Q\left(s,a';\theta\right)/T)\cdot T}\\&=&\frac{\phi\left(s,a\right)-\sum_{a'\in A}\phi\left(s,a'\right)}{T}\end{eqnarray}

 んで、後はこれをプログラムに落し込むだけなんですが…出来るのか、本当に?