方策勾配法
方策もパラメータをもつ関数として表現可能である.状態を引数にとり,行動確率を出力する関数である.
方策の価値を期待値で計算する.方策に従い状態に遷移する確率$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: