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

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

ソフトマックス方策を用いた方策勾配法の計算式その2〜温度も学習しよう〜

 方策πの式は下記の通り(再掲)。
 
  \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)}

 Qは価値関数で、sの手番が優位な局面ほど高い値となる。

 んで、温度Tで偏微分すると下記の通り。

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

// TeXの式が長すぎて画像表示されなくなったので、続きは別に。

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