r_nsdのブログ

r_nsdのブログ

勉強したこと・調べたこと・思ったことを残しておくためのブログ

MENU

【強化学習】モデルフリー(モンテカルロ法,Q学習,SARSA,Actor-Critic)

強化学習について軽くおさらいします.

強化学習は,長期的な報酬が最大化するような方策を学習することが目的でした.

学習対象である良い方策を求めるためには,長期的な報酬(価値)を求める必要がありました.

環境(モデル:遷移関数,報酬関数)がわかっていればモデルベースの手法(価値反復法,方策反復法)で価値を推定し方策を求めることができました.

しかし,環境が未知の場合は,エージェントと環境の相互作用に得られたデータをもとに価値,方策推定をします.モデルを陽に使わずに方策を求める方法を「モデルフリー」な手法と呼びます.

モデルフリーな手法では,推定した価値と経験して得られた結果の差を小さくするように価値を更新し推定していきます.

モンテカルロ法

更新を1エピソードで行う手法をモンテカルロ法といいます.更新式は次式です.

 V^{\pi}(s_t) \leftarrow V^{\pi}(s_t) + \alpha(G_t - V^{\pi}(s_t))

 G_t は割引報酬和です.実際に得られた即時報酬を割り引いて足し合わせた値と推定価値の差を修正します. \alphaモンテカルロ法では状態sに遷移した回数の逆数とし,平均値を出しています.

TD法

例えば価値の更新を1ステップごとに行うときの更新式の一例は次式のようになります.

 V^{\pi}(s_t) \leftarrow V^{\pi}(s_t) + \alpha \bigl(R(s_t, a_t, s_{s+1}) + \gamma  V^{\pi}(s_{t+1})- V^{\pi}(s_t) \bigr)

この R(s_t, a_t, s_{s+1}) + \gamma  V^{\pi}(s_{t+1})- V^{\pi}(s_t)をTD誤差 (TD; Temporal Difference) といい,1ステップでの価値の更新分を示しています.

更新を1ステップごとに行う方法をTD(0)法,数ステップで行う方法をMulti-step learning,数ステップを組み合わせて更新する方法をTD( \lambda)法と呼びます.

ここでは,TD(0)法の代表的な手法である「Q学習,SARSA, Actor-Critic」について説明します.

Q学習

ここでは行動価値関数 Q^{\pi}(s,a) の推定を考えます.状態価値関数を 行動価値関数に書き換え,価値が最大となる行動を選択すると仮定すると,上記の式は次式に書き換えることができます.

 Q^{\pi}(s_t,a_t) \leftarrow Q^{\pi}(s_t,a_t) + \alpha \bigl(R(s_t, a_t, s_{s+1}) + \gamma  \max_a Q^{\pi}(s_{t+1}, a_{t+1}) - Q^{\pi}(s_t, a_t) \bigr)

これがQ学習におけるQ値の更新式です.「価値が最大となる行動を選択する」という仮定を置き,方策を用いていないため「Off-policy(方策オフ型)」な手法と呼ばれます.

SARSA

Q学習とは異なり,行動は方策に従って選択されます.そのため更新式は次式のようになります.

Q^{\pi}(s_{t},a_{t}) \leftarrow Q^{\pi}(s_{t},a_{t}) + \alpha \bigl( R(s_t, a_t, s_{s+1}) + \gamma Q^{\pi}(s_{t+1},a_{t+1})  - Q^{\pi}(s_t, a_t) \bigr)

SARSA は,state-action-reward-(next)state-(next)actionの頭文字をとったものです.

方策を用いているので「On-policy(方策オン型)」な手法と呼ばれています.

(Q学習とSARSAの違い)

Q学習もSARSAもTD誤差を用いて価値を更新するので「value ベース」の手法と捉えることができます.(SARSAでは価値を更新することで方策を更新することにも繋がりますが,value ベースと言ってよいでしょう.)

Q学習は「Off-policy」,SARSAは「On-policy」です.Q学習は,常に価値が最大の行動をとるため,目的に向かって楽観的に最短経路で進みます.一方,SARSAは,方策に従って行動するため,慎重に安全な経路で進みます.

またQ学習では,更新している方策を使うという制約がないため,過去のデータを使ったり,他の方策を使ったりすることができ,サンプル数を増やすことができます.これはOn-policyなSARSAではできないメリットです.

Actor-Critic

Q学習やSARSAは「value ベース」の手法でした.これに対し,Actor-Critic は「value ベース」と「policy ベース」を組み合わせた手法です.

方策反復法でいう方策改善がActor,方策評価がCritic にあたります.方策と価値関数が別々に更新される(異なる関数を扱える)ため,例えば方策のほうをニューラルネットワークで近似するとすると,連続値を入力できるため,連続行動空間の問題にも使えるというメリットがあります.