方策勾配法 - Shinichi0713/Reinforce-Learning-Study GitHub Wiki

方策勾配に基づくアルゴリズム

価値反復に基づく強化学習では、方策(policy)は行動価値関数Qを通して表現されていました。

方策は行動価値関数から導出されるものとして定義されて、エージェントは行動価値関数を試行錯誤して学習して、最適な方策を算出してました。

他方、方策を価値関数とは別パラメータでひょうげんして、最適化することで強化学習問題を解く手法も考えられます。 具体的には確率方策を $\theta$ によってパラメータ化された確率モデル $\pi_{\theta}(a \mid s)$ を考え、 $\theta$ により最適化する手法が考えられます。

方策勾配が必要となる理由

人間の動作を最適にするようなケースを考えてみます。 例えばゴルフのスイングの最適化を強化学習で行うケースにおいて。

状態 $s$ と行動 $a$ は連続値で、パターンを網羅してテーブル状の行動価値関数で判断することは、非常に困難な問題です。   解決案となるのは、行動価値関数 $Q(s, a)$ を何かしらで関数近似する方法を使って、連続値でも予測出来るようにすることを考えます。

方策勾配学習の流れ

  1. 方策 $\pi_{\theta}(a \mid s)$ による行動

  2. 方策 $\pi_{\theta}(a \mid s)$ の評価

  3. 方策 $\pi_{\theta}(a \mid s)$ の更新

  4. 確率的方策による行動 方策があるパラメータベクトル $\theta$ でパラメタライズされていることを仮定しているため、まずは、エージェントの方策を確率モデル $\pi_{\theta}(a \mid s)で定める必要がある。

$$ \pi_{\theta}(a \mid s) = \frac{exp(\theta_{sa})}{\Sigma_{b\in A}exp(\theta_{sb})} $$

$$ \theta_{sa} は 行動価値関数とは別の調整可能なパラメータであり、本パラメータベクトル [\theta_{11}, \ldots, \theta_{sa}, \ldots, \theta_{S|A|}]^T を直接学習することが策定に基づく強化学習アルゴリズムの目的になる。 $$

$$ \pi_{\theta}(a | s) = \frac{\exp(\theta^T \Phi(s, a))}{\sum_{b \in A} \exp(\theta^T \Phi(s, b))} $$

この数式に見られる $\phi (s, a)$ は状態と行動によって特徴づけられる任意の関数によって定まる特徴ベクトルとなる。 θが方策を調整するパラメータベクトルとなる。

$$ \pi_{\theta}(a|s) = \frac{1}{(2\pi)^{\frac{d_g}{2}} |C|^{\frac{1}{2}}} \exp \left( -\frac{1}{2} (a - Ws)^T C^{-1} (a - Ws) \right) $$