SARSA

SARSA (State-Action-Reward-State-Action)

SARSAとは

SARSA(State-Action-Reward-State-Action)とは、オンポリシー型のTD制御アルゴリズムです。名前の由来は更新に使用する経験タプル(S_t, A_t, R_{t+1}, S_{t+1}, A_{t+1})の頭文字で、現在の状態・行動、報酬、次の状態・行動を使ってQ値を更新します。

表:SARSAの要点まとめ
ひとことで言うと実際に次に取った行動を使ってQ値を更新する、慎重な学習法。
Q学習との違いQ学習は「次の最善手」を仮定。SARSAは「実際に選んだ行動」で更新する。
注意点探索の影響を受けるため、危険な場所を避ける安全寄りの方策になりやすい。

SARSAの更新則

SARSAの更新式は Q(s,a) ← Q(s,a) + α[r + γQ(s',a') - Q(s,a)] です。Q学習との違いは、次の状態s'での行動a'として、実際にエージェントが選択した行動を使う点です。Q学習がmax_a' Q(s',a')を使うのに対し、SARSAは方策に従って選択されたa'のQ値を使います。

図:SARSAの更新(名前の由来)
1S:状態今の状況
▶
2A:行動実際に選んだ行動
▶
3R:報酬得られた報酬
▶
4S':次の状態遷移先
▶
5A':次の行動実際に選ぶ行動で更新

オンポリシー学習の特徴

SARSAはオンポリシー手法であり、学習に使う方策と学習対象の方策が同じです。これは安全性の面で利点となります。例えばε-greedy方策で学習する場合、SARSAはランダム行動のリスクも考慮した「安全な」方策を学習します。崖歩き問題ではQ学習が崖の縁を歩く最短路を学習するのに対し、SARSAは崖から離れた安全なルートを学習します。

SARSAの変種

Expected SARSAは次状態での全行動のQ値の期待値を用いる変種で、更新のバリアンスが低減されます。n-step SARSAは複数ステップ先まで実際のリターンを使う拡張です。