SARSA(オンポリシー学習)

SARSA(State-Action-Reward-State-Action)は、オンポリシー(on-policy)型のモデルフリー強化学習アルゴリズムです。これは、エージェントが現在の方策(policy)に従って行動しながら、その方策に基づいて状態-行動の価値関数(Q関数)を更新していく手法です。


1. 基本の概念

SARSAは次のような5つの要素の頭文字を取ったものです:

  • S:現在の状態(State)

  • A:現在の行動(Action)

  • R:報酬(Reward)

  • S’:次の状態(Next State)

  • A’:次の行動(Next Action)

この流れに沿って、Q値を更新していきます。


2. SARSAのQ値更新式

SARSAの価値関数(Q関数)の更新式は次のようになります:

Q(st,at)Q(st,at)+α[rt+1+γQ(st+1,at+1)Q(st,at)]Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) – Q(s_t, a_t) \right]

各記号の意味

  • Q(st,at)Q(s_t, a_t):現在の状態 sts_t と行動 ata_t のQ値

  • α\alpha:学習率(learning rate)

  • rt+1r_{t+1}:遷移後に得られる報酬

  • γ\gamma:割引率(discount factor)

  • Q(st+1,at+1)Q(s_{t+1}, a_{t+1}):次の状態・次の行動のQ値(方策に基づく)


3. オンポリシーの特徴

SARSAは「現在の方策に従った行動の結果を使って学習」します。

例えば、ε-greedy方策を使って行動選択している場合、学習時にもそのε-greedy方策に従って選んだ行動 at+1a_{t+1} を用いてQ値を更新します。これにより、方策に忠実な行動を学習していくという特徴があります。


4. SARSAの流れ(擬似コード)

plaintext
初期化:Q(s, a) を任意に初期化 初期状態 s を観測 a を方策 π に従って選択(例:ε-greedy) ループ: 行動 a を実行し、報酬 r と次の状態 s' を観測 次の行動 a' を方策 π に従って選択 Q(s, a) ← Q(s, a) + α [r + γ Q(s', a') - Q(s, a)] s ← s' a ← a'

5. SARSAとQ学習との違い

項目 SARSA(オンポリシー) Q学習(オフポリシー)
更新に使う行動 方策に従って選んだ行動 aa’ 最大値を与える行動(greedy行動)
特徴 方策に沿った行動を忠実に学習 最適行動の価値を学習(方策とは独立)
方策のタイプ ε-greedy など任意の方策が反映される 方策に関係なく最適解を目指す

6. まとめ

SARSAは以下のような特徴を持ちます:

  • モデルフリー:遷移確率や報酬モデルを必要としない

  • オンポリシー:現在の方策に従って行動し、その結果を学習に利用

  • 実際の行動に忠実な学習:安全性や安定性が求められる場面に適している

生成日:2025/06/01