🐡

[強化学習][ゼロつく4] SARSA, Q学習

2024/06/23に公開

SARSA

動的計画法と同様に、評価と改善を繰り返して最適方策を求める。
ただし、V_π(s)ではなくQ_π(s)を用いることで、環境のモデルを知らずに計算することができる。

評価:Q'_{\pi}(S_t, A_t) = Q_π(S_t, A_t) + α \{R_t + γQ_π(S_{t+1}, A_{t+1}) − Q_π(S_t, A_t)\}

改善:

µ(s) = \begin{cases} \argmax_{a}Q_π(s, a)(1-εの確率) \\ ランダムな行動 (εの確率) \end{cases}

評価フェーズでは、TD法を用いてQ関数を更新する。
また改善フェーズでは、ε-greedy法を用いて方策を更新する。

方策オフ型のSARSA

本来SARSAは方策オン型の手法だが、方策オフ型の代表例であるQ学習への導入として、まずはSARSAを方策オフ型にしてみる。

方策オフ型では、方策をサンプリング用(挙動方策)と提出用(ターゲット方策)の2つに分けるため、重点サンプリングを使って重みρによる補正を行う。
ターゲット方策をπ, 挙動方策をbとする。

sampling : A_{t+1} ∼ b

ρ=\cfrac{π(A_{t+1}|S_{t+1})}{b(A_{t+1}|S_{t+1})}

評価:Q'_{\pi}(S_t, A_t) = Q_π(S_t, A_t) + α \{ρ(R_t + γQ_π(S_{t+1}, A_{t+1}) − Q_π(S_t, A_t))\}

改善(挙動方策):

µ(s) = \begin{cases} \argmax_{a}Q_π(s, a)(1-εの確率) \\ ランダムな行動 (εの確率) \end{cases}

改善(ターゲット方策):µ(s) = \argmax_{a}Q_π(s, a)

また探索は挙動方策で行えるため、改善フェーズではターゲット方策をgreedyに更新する。

問題点として、2つの方策の確率分布が異なれば異なるほど、重点サンプリングで用いる重みρも大きく変動する。それによって、SARSA の更新式にあるターゲットも変動するため、Q 関数の更新が不安定になってしまう。

方策オフ型のメリット

よくわかってない

  • なにか
  • なにか
  • なにか

Q学習

SARSAと同様にTD法を用いてQ値を更新する。
また方策オフ型だが重点サンプリングを使わずにQ値を更新できるため、
方策オフ型SARSAで見られた不安定性の問題がなくなっている。

評価:Q'(S_t, A_t) = Q(S_t, A_t) + α \{R_t + γ\max_{a}Q(S_{t+1}, a) − Q_π(S_t, A_t)\}

改善(挙動方策):

µ(s) = \begin{cases} \argmax_{a}Q_π(s, a)(1-εの確率) \\ ランダムな行動 (εの確率) \end{cases}

改善(ターゲット方策):µ(s) = \argmax_{a}Q_π(s, a)

SARSAとQ学習の違い(あんま自信ない)

Q値の更新に方策が加味されているか

SARSA:挙動方策からサンプリングした行動を用いて計算したQ値を使って新たなQ値を計算
Q'_{\pi}(S_t, A_t) = Q_π(S_t, A_t) + α \{R_t + γQ_π(S_{t+1}, A_{t+1}) − Q_π(S_t, A_t)\}

Q学習:考えられる行動のパターンで最もQ値が高いものを使って新たなQ値を計算
Q'(S_t, A_t) = Q(S_t, A_t) + α \{R_t + γ\max_{a}Q(S_{t+1}, a) − Q_π(S_t, A_t)\}

SARSAのバックアップ線図

Q学習のバックアップ線図

学習の速度と安定性

SARSA

  • 現在の方策に基づいて行動するため、比較的安全な選択をする
    例 多少遠回りでも安全な経路を選ぶ
  • Q学習に比べて学習に時間がかかる

Q学習

  • 最適解を追及するため、比較的リスクの高い行動を選択する
    例 危険な近道を選ぶ可能性が高い
  • SARSAに比べて学習効率がよい

疑問点

  • なぜQ学習の方が広く使われているのか?
    ゼロつくでは方策オフ型のSARSAとQ学習を比較して、Q学習が重点サンプリングを必要としない点を強調していたが、方策オン型のSARSAと比べた優位性はなにか?

参考

Discussion