強化学習について
上のような手順によって、得られた一連の結果を τ= ( s1 , a1 , r2 , s2 , a2 , r2 , .. )を MDP ( Markov Decision Process )と呼びます。 ただし、強化学習の目的は、与えられた状態を元に「最適な」行動を取るエージェントを作ることです。平凡な行動しか取れないエージェントに用はありあません。ここで、最適な行動を定義するベースとなるのが、累積報酬の割引現在価値です。常にこの値を最大とするような行動を取るようにエージェントを学習させるのが強化学習の目的となります(強化学習と呼ぶのも、報酬によってエージェントの行動を強制( reinforce )させるているからですね)
強化学習アルゴリズム( PPO )
まず、 Model-Free , Model-Based の違いです。これは環境の状態遷移過程について(何かしら近似的に)モデルを導入したかということです。 Model-Free の場合、実際に施行を重ね取得したモンテカルロパスを利用し、学習を行います。この方法は、ロボットのような実際に動作させて結果のサンプルを取ることが高コストとなるような領域の場合、学習効率がたいへん悪いので、Model-Basedの方法による解決が提案されています。ですが、今回の対象は Model-Freeになります 。
そして、 Model-FreeにはQ-Learning と Policy-Optimizationがあります。
まず Q-Learningについて です。、これは最適行動価値関数( Q 関数)を推定するというアプローチを取っています。この最適 Q 関数自体は最適ベルマン方程式を解くことで求めることができます。この Q 関数に DNN を用いた手法が DQN と呼ばれる代表的な手法です。この手法は Atari のゲームで高性能を出したことで話題になりました。
一方、Policy-Optimization は、方針( Policy )を直接パラメトリックな関数で表し、割引報酬の累積価値の期待値を最大にするようなパラメータを決定します。ポリシーの勾配の期待値は、モンテカルロ平均で求めることができ、不偏推定量ですのでサンプル数が多いと理論値に収束します。しかし、実用可能な試行回数程度では期待値の分散が大きく、収束しないという問題があります(下の疑似コード参照)。
Actor-Critic
割引報酬の累積価値に価値関数を引くことで、勾配のサンプル平均の分散が減らすことができます。パラメータに関係のない任意の関数を引いても、期待値に影響を与えません(つまり、不偏推定を維持)。かつ、平均値の分散が減り、期待値計算の安定性が高まります。このようなテクニックをベースライン除去と呼びます。 Actor-Critic では、 Policy ( Actor )と価値関数 V ( s )( Critic )を共に FX取引の基礎を勉強しよう FX取引の基礎を勉強しよう NN 関数で表現し、学習対象とします。こうすることにより、 PolicyGradient の精度が向上します。
Off-Policy
勾配のパラメータ更新の度に、モンテカルロパスを計算するは非効率です。これを On-Policy と呼びます。それに対し、 Off-Policy では、古いパスを再利用しながら、パラメータ更新します。パラメータ更新を複数回繰り返したら、パスを発生させた古い方針を新しい方針に置き換えます。パラメータを更新する度に、多くのモンテカルロパスを発生させる必要がなくなるので、効率的です。
PPO
ただし、もしパラメータ一更新の際、方針が大きく変わると、パスを計算している古い方針 からの ずれが大きくなり、勾配の計算が収束せず、効率が著しく悪くなるという問題が生じます。そのため、方針を改善しつつも、パラメータの一回の更新で方針を大きく変更しすぎないことが必要になります。そこで、提案されたのが PPO ( Proximal Policy Optimization )という手法です。これは、新旧のポリシーの確率の比率rを計算して、その値がしきい値以上超えると、打ち切るという方法をとっています。
図3はAdvantageの正負ごとにrに対するLのグラフです。 L が増大する方向へ r が一定以上変化すると、打ち切られる事が分かります。これにより、その方向へ過度に Policy が変化するのを防ぐことができます。
コメント