E資格対策・強化学習の重要数式の覚え方(7)SARSAの更新式を語呂合わせと計算例で確実に覚える

こんにちは。ゆうせいです。

E資格の強化学習で出題される重要数式を、1つずつ覚えていくシリーズの第7回です。

前回は、経験から状態の価値を学ぶための「TD誤差」と「TD学習の更新式」を学びました。今回は、その考え方を行動価値 Q に当てはめた「SARSA(サルサ)」を取り上げます。

SARSAは、次回学ぶQ学習と並ぶ代表的な強化学習の手法です。E資格では、SARSAとQ学習の更新式の違いや、「方策オン型」と「方策オフ型」の違いがよく問われます。今回の内容は、次回のQ学習を理解するための準備にもなります。

この記事のゴール

  • SARSAの更新式を、何も見ずに書けるようになる
  • SARSAという名前の由来を説明できるようになる
  • 「方策オン型」の意味を説明できるようになる
  • SARSAの更新を手計算できるようになる

第6回の復習

前回学んだTD学習の更新式を確認します。

V(S_t) \leftarrow V(S_t) + \alpha [R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]

覚え方は次のとおりでした。

  • TD誤差は「ある我慢ブイ、引く今のブイ」
  • 更新式は「新しい予想は、古い予想にアルファ・デルタ」
  • アルファは、ある程度だけ直す

また、強化学習の更新式には、次の共通の型があることも学びました。

新しい推定 = 古い推定 + 学習率 ×(目標 − 古い推定)

なぜ V ではなく Q を学習するのか

前回のTD学習では、状態価値 V を学習しました。しかし、V だけでは、次にどの行動を選べばよいかが分かりません。第3回で学んだとおり、行動を決めるには、各行動の後にどの状態に移るかを知る必要があるからです。

一方、行動価値 Q が分かれば、行動ごとの値を比べるだけで行動を選べます。第3回の語呂合わせ「Qがあれば、迷わず一番の手」のとおりです。

そこで、TD学習の考え方を使って、V の代わりに Q を学習する手法が考えられました。その代表がSARSAです。

SARSAの更新式

今回覚える式は次のとおりです。

Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]

前回のTD学習の更新式と並べてみます。

TD学習:

V(S_t) \leftarrow V(S_t) + \alpha [R_{t+1} + \gamma V(S_{t+1}) - V(S_t)]

SARSA:

Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]

違いは、V がすべて Q に変わり、かっこの中に行動が加わっただけです。

部分TD学習SARSA
更新する値V(S_t)Q(S_t, A_t)
目標値の次の価値V(S_{t+1})Q(S_{t+1}, A_{t+1})
引く今の価値V(S_t)Q(S_t, A_t)

SARSAのTD誤差だけを取り出すと、次のようになります。

\delta_t = R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)

式全体を日本語にすると、次のようになります。

「今の状態で選んだ行動の Q 値を、すぐもらえた報酬と、次の状態で実際に選んだ行動の Q 値(割り引いたもの)の合計に、ある程度だけ近づける」

名前の由来:更新に使う5つの要素

SARSAという名前は、更新に使う5つの要素の頭文字を並べたものです。

順番記号意味
1S_t今の状態(State)
2A_t今の状態で選んだ行動(Action)
3R_{t+1}行動した結果もらえた報酬(Reward)
4S_{t+1}次の状態(State)
5A_{t+1}次の状態で選んだ行動(Action)

この5つが、時間の流れどおりに並んでいます。

  1. 状態 S_t を見る
  2. 行動 A_t を選ぶ
  3. 報酬 R_{t+1} を受け取る
  4. 次の状態 S_{t+1} に移る
  5. 次の行動 A_{t+1} を選ぶ

5つがそろった時点で、1回目の行動 A_t の Q 値を更新します。

練習問題1

SARSAという名前の由来になった、更新に使う5つの要素の組み合わせとして正しいものを選んでください。

  • ア:状態、行動、報酬、次の状態、次の報酬
  • イ:状態、行動、割引率、次の状態、次の行動
  • ウ:状態、行動、報酬、次の状態、次の行動
  • エ:状態、行動、報酬、次の状態、報酬の平均

練習問題1の解答と解説

正解はウです。

State、Action、Reward、State、Action の頭文字を並べて SARSA です。

  • アは誤りです。5つ目は次の報酬ではなく、次の状態で選んだ行動です。
  • イは誤りです。3つ目は割引率ではなく報酬です。割引率 γ は、あらかじめ決めておく定数です。
  • エは誤りです。SARSAは平均を使わず、実際に得た1回分の経験を使って更新します。

語呂合わせで覚える

語呂合わせ1:サルサは5ステップで踊る

SARSA(サルサ)は、中南米の音楽とダンスの名前でもあります。

覚え方は「サルサは5ステップで踊る。エス、エー、アール、エス、エー」です。

ダンスの足運びのように、「状態を見て、動いて、報酬をもらって、次の状態に移って、次の動きを決める」という5つのステップを、リズムよく唱えて覚えましょう。この5つの順番どおりに、更新式の中に記号が登場します。

語呂合わせ2:ブイをキューに、次は実際の一手

前回のTD学習の更新式から、SARSAの更新式を作る手順は次の2つです。

  1. V をすべて Q に変える
  2. Q のかっこの中に、それぞれの時刻の行動を加える

覚え方は「ブイをキューに、次は実際の一手」です。

特に重要なのは、目標値の中の Q(S_{t+1}, A_{t+1}) です。ここには、次の状態で「実際に選んだ行動」A_{t+1} の Q 値が入ります。次回のQ学習では、この部分が「Q値が最大の行動」に変わります。SARSAとQ学習の違いは、この1か所だけです。

語呂合わせ3:サルサは有言実行

SARSAは「方策オン型」の手法に分類されます。

方策オン型とは、「実際に行動するときに使っている方策」と「価値を学習している方策」が同じである手法のことです。SARSAでは、次の状態で実際に選んだ行動 A_{t+1} を使って更新します。そのため、「自分が実際にどう行動するか」を前提に、その行動の価値を学習します。

覚え方は「サルサは有言実行」です。

「次はこう動く」と決めた行動を、そのまま実際に行い、その行動で答え合わせをします。言ったこと(学習に使った行動)と、やったこと(実際の行動)が一致している、というイメージです。

練習問題2

SARSAの更新式として正しいものを選んでください。

  • ア:Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_{t+1}, A_{t+1}) - Q(S_t, A_t)]
  • イ:Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma \max_{a'} Q(S_{t+1}, a') - Q(S_t, A_t)]
  • ウ:Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma V(S_{t+1}) - Q(S_t, A_t)]
  • エ:Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma Q(S_t, A_t) - Q(S_{t+1}, A_{t+1})]

練習問題2の解答と解説

正解はアです。

目標値に、次の状態で実際に選んだ行動の Q 値 Q(S_{t+1}, A_{t+1}) を使っています。

  • イは誤りです。次の状態の Q 値の最大値を使っているので、次回学ぶQ学習の更新式です。
  • ウは誤りです。目標値に状態価値 V が混ざっています。SARSAでは、すべて行動価値 Q で計算します。
  • エは誤りです。今の Q 値と次の Q 値が入れ替わっています。「ある我慢キュー(次)、引く今のキュー」の順です。

SARSAで行動を選ぶ方法:ε-greedy法

SARSAでは、学習しながら行動を選びます。このとき、いつも Q 値が最大の行動だけを選んでいると、まだ試していない行動の良さに気づけません。

そこで、次のような ε-greedy(イプシロン・グリーディ)法がよく使われます。

  • 確率 1 − ε で、Q 値が最大の行動を選ぶ(知っている一番良い行動を使う。活用)
  • 確率 ε で、すべての行動からランダムに選ぶ(新しい行動を試す。探索)

ε(イプシロン)は、0.1 のような小さな値にすることが多い値です。greedy は「貪欲な」という意味の英語で、いつも一番良いものを選ぶ様子を表しています。

いつも同じ定食屋の一番好きなメニューばかり頼んでいると、もっとおいしいメニューに出会えません。たまには新しいメニューも頼んでみる、というのが ε-greedy 法の考え方です。

SARSAでは、次の行動 A_{t+1} も、この ε-greedy 法で選びます。そのため、たまたまランダムに選んだ行動の Q 値が、目標値に使われることもあります。ここがSARSAの大きな特徴です。

SARSAの手順

SARSAの学習は、次の手順で進みます。

  1. 状態 S_t で、ε-greedy 法を使って行動 A_t を選ぶ
  2. 行動 A_t を実行し、報酬 R_{t+1} と次の状態 S_{t+1} を観測する
  3. 次の状態 S_{t+1} で、ε-greedy 法を使って次の行動 A_{t+1} を選ぶ
  4. 5つの要素を使って、Q(S_t, A_t) を更新する
  5. 次の状態を今の状態に、次の行動を今の行動にして、手順2に戻る

手順3で選んだ行動 A_{t+1} は、手順5の後に実際に実行します。更新に使った行動を、そのまま次に行うので「有言実行」です。

計算例で確かめる

計算例1:基本の更新

次の状況を考えます。

  • 今の Q 値:Q(S_t, A_t) = 2
  • すぐもらえた報酬:R_{t+1} = 1
  • 次の状態で実際に選んだ行動の Q 値:Q(S_{t+1}, A_{t+1}) = 4
  • 割引率 γ = 0.9、学習率 α = 0.1

まず、TD誤差を計算します。

\delta_t = 1 + 0.9 \times 4 - 2 = 1 + 3.6 - 2 = 2.6

次に、Q 値を更新します。

Q(S_t, A_t) \leftarrow 2 + 0.1 \times 2.6 = 2 + 0.26 = 2.26

計算の手順は、前回のTD学習とまったく同じです。V が Q に変わっただけであることを確認してください。

計算例2:次の行動がランダムに選ばれた場合

計算例1と同じ状況で、次の状態での Q 値が次のようになっているとします。

次の状態での行動Q 値
a_14
a_2-2

ε-greedy 法では、ほとんどの場合、Q 値が大きい a_1 を選びます。その場合の更新は計算例1と同じで、2.26 になります。

では、たまたまランダムに a_2 が選ばれた場合はどうなるでしょうか。

\delta_t = 1 + 0.9 \times (-2) - 2 = 1 - 1.8 - 2 = -2.8

Q(S_t, A_t) \leftarrow 2 + 0.1 \times (-2.8) = 2 - 0.28 = 1.72

同じ状態で同じ行動をして、同じ報酬をもらったのに、次に選んだ行動によって、更新後の Q 値が上がったり下がったりしています。

これは、SARSAが「次に自分が実際に取る行動」を前提に学習しているためです。探索で悪い行動を選んでしまうことも含めて、「自分の行動のくせ」を考慮した価値を学習します。

練習問題3

次の状況で、SARSAによる更新後の Q(S_t, A_t) の値を選んでください。

  • 今の Q 値:Q(S_t, A_t) = 3
  • すぐもらえた報酬:R_{t+1} = 2
  • 次の状態で実際に選んだ行動の Q 値:6
  • 次の状態での Q 値の最大値:14
  • 割引率 γ = 0.5、学習率 α = 0.5
  • ア:6.0
  • イ:5.5
  • ウ:2.0
  • エ:4.0

練習問題3の解答と解説

正解はエです。

SARSAでは、次の状態で実際に選んだ行動の Q 値 6 を使います。

\delta_t = 2 + 0.5 \times 6 - 3 = 2 + 3 - 3 = 2

Q(S_t, A_t) \leftarrow 3 + 0.5 \times 2 = 3 + 1 = 4

  • アの6.0は、Q 値の最大値 14 を使った値です。δ = 2 + 7 − 3 = 6 となり、3 + 0.5 × 6 = 6 となります。最大値を使うのは、次回学ぶQ学習です。
  • イの5.5は、割引率を掛け忘れた値です。δ = 2 + 6 − 3 = 5 となり、3 + 0.5 × 5 = 5.5 となります。
  • ウの2.0は、TD誤差を引いてしまった値です。3 − 0.5 × 2 = 2 となり、修正の向きが逆になっています。

問題文に「最大値」が書かれていても、SARSAでは使いません。試験では、このようなひっかけの数値が与えられることがあるので注意しましょう。

計算例3:終端状態に着いた場合

次の状態が終端状態のときは、その後に行動はありません。そのため、終端状態での Q 値は 0 として計算します。

  • 今の Q 値:Q(S_t, A_t) = 4
  • すぐもらえた報酬:R_{t+1} = 10
  • 次の状態は終端状態
  • 学習率 α = 0.5

\delta_t = 10 + \gamma \times 0 - 4 = 6

Q(S_t, A_t) \leftarrow 4 + 0.5 \times 6 = 7

前回のTD学習と同じく、終端状態では「報酬 − 今の予想」がTD誤差になります。

練習問題4

次の状態が終端状態であるとします。今の Q 値が 1、すぐもらえた報酬が 3、学習率 α = 0.5 のとき、SARSAによる更新後の Q 値を求めてください。

練習問題4の解答と解説

答えは2です。

次の状態は終端状態なので、その Q 値は 0 として計算します。

  • TD誤差:δ = 3 + γ × 0 − 1 = 2
  • 更新後:Q = 1 + 0.5 × 2 = 2

SARSAの性格:安全な道を選びやすい

SARSAの特徴を表す例として、強化学習の教科書でよく紹介される「崖歩き」の問題があります。

スタートからゴールまで移動する問題で、最短の道は崖のすぐそばを通っています。崖に落ちると、大きな罰(マイナスの報酬)を受けます。

ε-greedy 法で行動すると、ときどきランダムな行動を選びます。崖のそばを歩いていると、そのランダムな一歩で崖に落ちることがあります。

SARSAは、このランダムな行動も含めて「自分が実際にどう行動するか」を前提に学習します。そのため、崖のそばの道は危険だと学習し、崖から少し離れた安全な道を選ぶようになります。

一方、次回学ぶQ学習は、「次は必ず一番良い行動を選ぶ」と仮定して学習するため、崖のそばの最短の道を学習します。

手法学習する道理由
SARSA崖から離れた安全な道ランダムな行動で落ちる危険も考慮するため
Q学習崖のそばの最短の道次は必ず最良の行動を取ると仮定するため

覚え方は「サルサは慎重派」です。どちらが優れているというわけではなく、学習する価値の性格が違うことを押さえておきましょう。

練習問題5

SARSAについて、適切でないものを選んでください。

  • ア:方策オン型の手法であり、実際に行動する方策の価値を学習する
  • イ:次の行動として、Q 値が最大の行動を常に仮定して更新する
  • ウ:更新には、次の状態で実際に選んだ行動の Q 値を使う
  • エ:遷移確率 p を知らなくても、経験から行動価値を学習できる

練習問題5の解答と解説

正解はイです。

SARSAは、次の状態で実際に選んだ行動の Q 値を使います。Q 値が最大の行動を常に仮定するのは、次回学ぶQ学習の特徴です。

  • アは正しい説明です。学習に使う行動と、実際に行う行動が同じなので、方策オン型です。
  • ウは正しい説明です。「ブイをキューに、次は実際の一手」のとおりです。
  • エは正しい説明です。SARSAはTD学習の一種なので、遷移確率を知らなくても経験から学習できます。

関連する手法:期待SARSA

SARSAの発展形として、期待SARSA(Expected SARSA)という手法もあります。

Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha [R_{t+1} + \gamma \sum_{a'} \pi(a' \mid S_{t+1}) Q(S_{t+1}, a') - Q(S_t, A_t)]

目標値の次の Q 値を、実際に選んだ1つの行動の Q 値ではなく、方策の確率で重み付けした平均にしています。第3回の「パイキュー」の形です。

実際に選んだ1つの行動に左右されなくなるため、SARSAよりも更新が安定しやすいという特徴があります。計算例2のように、たまたま悪い行動が選ばれて Q 値が大きく下がる、ということが起きにくくなります。

初学者がつまずきやすい点

つまずきやすい点正しい理解
目標値に Q 値の最大値を使ってしまうSARSAは次に実際に選んだ行動の Q 値を使う。最大値はQ学習
目標値に V を混ぜてしまうSARSAの式は、すべて Q で書く
5つの要素の順番を間違えるサルサは5ステップ。エス、エー、アール、エス、エー
方策オン型とオフ型を混同する学習に使う行動と実際の行動が同じなら方策オン型。サルサは有言実行
終端状態の Q 値を予想のまま使う終端状態の Q 値は 0 として計算する
更新の後で次の行動を選ぶと考える次の行動は更新の前に選び、更新の後にそのまま実行する

白紙に書いて確認しよう

記事を読み終えたら、何も見ずに次の4つを紙に書いてみてください。

  1. SARSAの更新式
  2. SARSAのTD誤差
  3. SARSAという名前の由来になった5つの要素
  4. 前回のTD学習の更新式との違い(2点)

書き終えたら、目標値の Q のかっこの中が S_{t+1} と A_{t+1} になっているか、max を書いていないかを確認してください。

まとめ

  • SARSAは、TD学習の考え方で行動価値 Q を学習する手法です
  • 名前は、更新に使う5つの要素の頭文字です。サルサは5ステップで踊る、エス、エー、アール、エス、エーです
  • TD学習の更新式から、ブイをキューに、次は実際の一手に変えると、SARSAの更新式になります
  • 次の状態で実際に選んだ行動の Q 値を使う方策オン型の手法です。サルサは有言実行です
  • 行動は ε-greedy 法で選び、探索のランダムな行動も含めて学習します。そのため、サルサは慎重派です

次回は、SARSAの目標値の「実際の一手」を「最大の一手」に置き換えた「Q学習」を取り上げます。違いは1か所だけですが、その違いが方策オン型と方策オフ型の違いにつながります。今回のSARSAの更新式を白紙に書ける状態にしてから読み進めてください。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。