強化学習:モンテカルロ法(行動価値評価)
はじめに
前回はモンテカルロ法を使って状態価値を評価するアルゴリズムを紹介しました. 今回は行動価値を評価するアルゴリズムについて紹介します.
強化学習:モンテカルロ法(状態価値評価) - 他力本願で生き抜く(本気)
今さら聞けない強化学習(8): モンテカルロ法でOpenAI GymのCartpoleを学習 - Qiita
モンテカルロ法による行動価値の評価(Sutton本の5.2章)
繰り返しになりますが、前回紹介したアルゴリズムでは状態価値の評価を行うことができます.しかし、環境のダイナミクス(モデル)が分からない状況では、状態価値が分かるだけでは十分ではありません.
なぜなら、行動を取った時の状態の遷移確率が分からないので、その行動による収益の期待値を計算できず、どの行動をとるべきかを知ることができないからです.(経路探索であれば、状態価値が分かれば各状態で取る行動を知ることはできます).
そこで、状態価値の代わりに行動価値関数を評価することを考えていきます.
といっても、行動価値関数を用いる場合も状態価値関数を用いる場合もアルゴリズムはほぼ同じです.状態価値関数の場合は開始点を状態としエピソードを生成させますが、行動価値関数の場合は開始点を状態、行動としてエピソードを生成すればよいです.
開始点探査(Exploring Starts)について
行動価値関数も状態価値関数もほぼ同じと書きましたが、一点注意する必要があります.それは評価しようとする行動価値の行動対が観測されないと、その行動価値を評価することはできないという点です.
要は、必ずすべての行動対が選ばれる必要があるような条件を設定する必要があります.それをここでは開始点探査(Exploring Starts、略してES)と呼んでいます.
行動価値関数を用いた方策改善
上記ESを考慮した方策評価によって、全ての状態の状態価値が計算できれば、方策の改善は難しくありません.ある状態における、最も行動価値の高い行動を方策に入れてしまえばよいだけです.
$$\pi (s) \leftarrow \;arg max_{a} Q(s, a)$$
ただし、方策評価を全て行ってから、方策改善を行うという作業を繰り返すと、方策改善が行われるまでにかなりの時間を要することになります.そこで、方策評価が終わるまで待つのではなく、方策評価の途中で方策改善も行っていくこと計算効率を上げることができます.価値反復法と同様の考え方になります.
ここまでの内容をまとめると以下のようなアルゴリズムで書くことができます.
- Monte Carlo ES
まとめ
今回はモンテカルロ法による行動価値の評価および方策改善についてまとめました.
次回は、ES(開始点探査)を行わないモンテカルロ法について整理する予定です.(ちょっと難しそうなので断言はできません)