【強化学習、方策勾配法】方策勾配定理

今回は方策勾配法の基礎なる定理である方策勾配定理について紹介します。

方策勾配定理

方策勾配定理とは、
Q値を用いて、累積報酬を増加させる方策の勾配を求めるための定理です。
つまり、この勾配を用いることで、
累積報酬の向上を目指して方策を更新できます。

では、方策勾配定理によって得られる勾配\(\nabla J({\bf \theta})\)を見てみます。

$$
\begin{eqnarray}
\nabla J({\bf \theta}) = \mathbb{E}_{\pi}[\gamma ^{t}\sum_{a}Q_{\pi}(S_t, a)\nabla_{{\bf \theta}} \pi(a|S_t, {\bf \theta})]
\end{eqnarray}
$$

式中の各変数については以下のようになります。

  • \(J\):累積報酬\(J=\mathbb{\sum_{t}\gamma ^{t}r_t}\)
  • \(S_t\):\(S_t\)は初期状態\(s_0\)から方策\(\pi\)とMDPの状態遷移確率に従って遷移した状態群
  • \(Q\):Q値
  • \({\bf \theta}\):方策\(\pi\)のパラメータ
  • \(\gamma\):割引率

証明に関しては参考文献を参照してください。

この式のおかげで、これまで学習してきたQ値を用いて
累積報酬値を向上させる方向の勾配を求めることができます。

単純な問題でパラメータが1つの場合、以下のような図になります。
求めている勾配は赤矢印になります。 (実際にはこのような簡単な問題はありません。)

f:id:ttt242242:20190805050509p:plain

つまり、矢印方向に\(\theta_t\)を更新していけば、累積報酬\(J\)を最大化させる\(\theta\)を求めることができることがわかります。

なので、パラメータ\(\theta _t\)は以下のように更新します。

$$
\begin{eqnarray}
{\bf \theta}_{t+1} \leftarrow {\bf \theta}_{t} + \alpha \nabla J({\bf \theta _t})
\end{eqnarray}
$$

\(\alpha\)は学習率になります。

この方策勾配定理を用いて、REINFORCEアルゴリズム等の様々な方策勾配法が提案されてきました。
今後はREINFORCEアルゴリズム等の紹介と実装を進めていきます。

参考文献

http://incompleteideas.net/book/the-book-2nd.html

コメント

タイトルとURLをコピーしました