方策勾配法

方策もパラメータをもつ関数として表現可能である.状態を引数にとり,行動確率を出力する関数である.

方策の価値を期待値で計算する.方策に従い状態に遷移する確率$d^{\pi_\theta}(s)$・行動確率$\pi_\theta(a|s)$・行動価値$Q^{\pi_\theta}(s,a)$から計算を行う.

$$J(\theta) \propto \sum_s d^{\pi_\theta}(s)\sum_a\pi_\theta(a|s)Q^{\pi_\theta}(s,a)$$

期待値の最大化を考えてパラメータの調整を行う.勾配法で方策の期待値の最適化を行う手法を方策勾配法とよぶ.

$$\nabla J(\theta) \propto \sum_s d^{\pi_\theta}(s)\sum_a \nabla \pi_\theta(a|s)Q^{\pi_\theta}(s,a)$$

$$\nabla\pi_\theta(a|s)=\pi_\theta(a|s)\frac{\nabla \pi_\theta(a|s)}{\pi_\theta (a|s)}=\pi_\theta(a|s)\nabla \log \pi_\theta(a|s)$$

以上より,

$$\nabla J(\theta) \propto E_{\pi_{\theta}}[\nabla\log\pi_{\theta(a|s)}Q^{\pi_{\theta}}(s,a)]$$

勾配である$\nabla \log \pi_\theta(a|s)$が移動方向,$Q^{\pi_\theta}(s,a)$が大きさというふうに解釈できる.

参考

久保隆宏,"Pythonで学ぶ強化学習 入門から実践まで"

Tags: