深層強化学習アルゴリズムDDPGをしっかり理解する(1)
- Stochastic Policy Gradient method
- Deterministic Policy Gradient method
- Deep Deterministic Policy Gradient method
1) SPGアルゴリズム
方策勾配に基づくアルゴリズムでは、「現在のtarget-policy(= 最適化の対象となる方策)にしたがってagentが行動しつづけたときの期待報酬 」を目的関数とします. つまり、target-policyのパラメータ を更新しつづけた結果、期待報酬 が最大になることを目指します.
1.1) 2通りの期待報酬Jの表し方
1.1.1) 平均報酬でJを定義した場合
行動価値関数は
状態sに関する関数は、
(平均報酬でJを定義した場合のd(s)は、sの定常分布を表しています. つまり、確率分布を表す量となっています)
1.1.2) 割引報酬和でJを定義した場合
1.2) 勾配方策定理の導出
1.2.1平均報酬でJを定義した場合
1.2.2) 割引報酬和でJを定義した場合
1.3) 勾配の近似
1.4) 実装
- 10エピソードに渡っての和をとったのち、その勾配方向にを更新している.
- パラメータの更新にはRMSProp(直近で大きく更新した方向には、更新量が小さくなるようにする手法)を用いている.
といったアルゴリズムになっています.
入力データには前処理をした画像のraw-pixelを用いていますが、畳み込みニューラルネットワークではなく、通常のニューラルネットワークを用いています. 畳み込みニューラルネットワークを用いるとさらに性能が良くなるはずです.
1.5) 行動価値の推定
方策勾配の式をみてみると、勾配を求めるためには未知の行動価値関数を評価しなくてはならないことがわかります.
もっとも簡単な近似として知られているのが、を即時報酬に置き換えてしまうアプローチです. この近似によるアルゴリズムをREINFORCEアルゴリズム[Williams, 1992]とよびます. これはちょっと荒すぎる近似であり、あまりいい性能もでないことから、大きな注目は浴びませんでした.
やはりもっとも妥当はアプローチは、行動価値関数も関数近似し、そのパラメータを最適化するアプローチでしょう.
このように、方策と行動価値関数とをモデル化し、そのモデルたちを更新し続けることで報酬和の期待値を最大化しようとするアプローチを、Actor-Criticアルゴリズムとよびます.
Actorという名前は、方策がagentの行動を決定しようとする主体であることに由来し、
Criticという名前は、方策勾配定理の中において、行動価値関数は方策モデルを評価しようとする批判者とみなせることに由来します.
さて、状態空間や行動空間が離散である場合は、行動価値関数をルックアップテーブルで保持して、行動価値関数を推定していくことが可能です.
しかし、状態空間や行動空間が連続である場合は、そのようなアプローチが困難なので、行動価値関数をパラメタライズされた関数で近似する必要があります.
このとき、以下のように行動価値関数をパラメタライズすると、バイアスのない推定ができることがわかっています[Sutton et al., 1999].
where
ほかにも、方策に確率的なものを想定したActor-Criticアルゴリズムによる、強化学習の手法がありますが、この記事シリーズの目的から外れてしまうので、紹介は省略します.
1.6) 参考文献
- Policy Gradient Methods for Reinforcment Learning with Function Approximation, 1999 https://papers.nips.cc/paper/1713-policy-gradient-methods-for-reinforcement-learning-with-function-approximation.pdf
- Deep deterministic policy gradients in TensorFlow, 2016/8/21 http://pemami4911.github.io/blog/2016/08/21/ddpg-rl.html
- これからの強化学習, 2016/10/31
- nishio/reinforcement_learning https://github.com/nishio/reinforcement_learning
次の記事では、Deterministic Policy Gradient methodについて書いていきます.