TD学習とQ学習 — 動きながら、予測の外れで学ぶ

前章のDPは「環境モデルを知っている」前提でした。本章はいよいよモデルフリー:実際に動いて得た体験 (s, a, r, s′) だけから価値を学びます。鍵は「予測がどれだけ外れたか」=TD誤差。1歩ごとに予測を直すTD学習から、行動価値を学ぶQ学習とSARSAまで、崖のそばを歩かせながら理解します。

1. モデルフリー — 体験のサンプルから直接学ぶ

動的計画法は遷移確率 P を使って期待値を厳密に計算しました。しかし現実にはPを知りません。代わりに使えるのは、環境の中で実際に動いて得られる体験の断片 (s, a, r, s′) — 「状態 s で a をしたら、報酬 r をもらって s′ に移った」という1行のログだけです。TD学習(Temporal Difference learning)は、この1行が届くたびに価値の推定を少しずつ修正します。

動的計画法(前章)TD学習(本章)
必要なもの環境モデル P, R体験 (s, a, r, s′) のみ
期待値の扱いP で厳密に計算実際に起きたサンプルで近似
更新のタイミング全状態を一括スイープ1歩動くたびに、いま居た状態だけ
ブートストラップする(隣の推定値を使う)する(隣の推定値を使う)

2. TD誤差 — 予測の外れを1歩ごとに直す

状態 s の価値の予測が V(s) だとします。1歩動いて報酬 r をもらい s′ に着いたら、「実際の手応え」は r + γV(s′)(もらった報酬 + 移った先の価値)。この手応えと元の予測との差がTD誤差 δ です。δ が正なら「思ったより良かった」ので V(s) を少し上げ、負なら少し下げる — 修正の幅を決めるのが学習率 α です。

V(s) ← V(s) + α [ r + γ V(s′) − V(s) ] 角かっこの中身が TD誤差 δ。「実際の手応え − 予測」を α の割合だけ取り込む
TD誤差の直感 — 廊下を歩きながら V が育つ
エージェント(丸)は左右ランダムに歩き、右端に着くと r = +1、左端は r = 0 で終了して中央から再開。吹き出しが各ステップの TD誤差で、青=正(予想より良い)、赤=負(予想より悪い)。棒が推定 V(s)、橙の目盛が真の値です。ゴール側の价値が手前へ染み出すように伝わるのを見てください(γ = 1:必ず終わるエピソードなので割引は不要)。α を大きくすると速く動くが、いつまでもガタガタ揺れます。
POINT — ブートストラップ TD学習は「隣の状態の推定値 V(s′)」を教師代わりに使う。これをブートストラップと呼ぶ。エピソードの終わりまで待たずに1歩ごとに学べるのが強み(モンテカルロ法との違い)。ただし序盤は「デタラメな推定がデタラメな推定を教える」状態 — それでも表形式なら真の値に収束することが証明されている。

3. Q学習 — 行動の価値を体験から学ぶ

V(s) が分かっても、モデルなしでは「ではどの行動が良いのか」を選べません(先読みにPが要る)。そこで状態と行動のペアの価値 Q(s, a) を直接学びます。TDと同じ発想で、ただし移動先では「一番良い行動の Q」= max を手応えに使うのがQ学習です。

Q(s, a) ← Q(s, a) + α [ r + γ maxa′ Q(s′, a′) − Q(s, a) ] max があるおかげで、動き方(探索込み)とは独立に「最適に動いた場合の価値 Q*」を狙える

下のデモは有名な崖歩き(Cliff Walking)。S からスタートし、下端の崖に踏み込むと −100、G に着くと +10、1歩ごとに −1 です。行動は ε-greedy(確率 ε でランダム、それ以外は Q が最大の行動)で選びます。

Q学習ライブ — Q値が育ち、方策の矢印が形成される
各マスの4つの三角が Q(s, 上/右/下/左)(緑=高い、赤=低い)、白矢印が現在の貪欲方策。速度を 1〜5 に落とすとエージェントの一歩一歩が見えます。学習カーブは1エピソードの合計報酬:崖に落ちた回(−100前後)が減り、−10 付近に張り付けば学習完了。ε = 0 にすると探索が止まり、たまたま見つけた経路に固執するのも試してみてください(γ を変えると Q は作り直しになるため自動リセットします)。
注意 — 探索をやめると学習も止まる Q学習は「まだ試していない行動」の価値を知りようがない。ε = 0(常に貪欲)にすると初期の偶然に固定され、より良い経路が永久に見つからないことがある。逆に ε が大きすぎるといつまでもランダム歩き。探索と活用のバランスはバンディットの章から続く、強化学習の一貫したテーマだ。

4. SARSA と Q学習 — 方策オンと方策オフ

Q学習の更新の max を、「実際に次へ取る行動 a′ の Q」に置き換えたのが SARSA です(使う5つ組 s, a, r, s′, a′ が名前の由来)。

Q(s, a) ← Q(s, a) + α [ r + γ Q(s′, a′) − Q(s, a) ] a′ は ε-greedy が実際に選んだ次の行動。探索でフラつく自分自身の価値を学ぶ
POINT — 方策オン / 方策オフ SARSA(方策オン):更新に使う a′ = 実際に従っている方策(探索込み)の行動。「ε-greedy で動く自分」の価値を学ぶので、探索でうっかり崖に落ちるリスクまで価値に織り込まれる。
Q学習(方策オフ):更新に使うのは max。動き方は探索的でも、学習しているのは「貪欲に動く理想の自分」の価値 Q*。実行と学習対象の方策が分離している。
SARSA vs Q学習 — 同じ崖、違う経路
ε = 0.1、α = 0.4、γ = 0.99 固定 | 2エージェントが同時学習
太線=各エージェントが学んだ貪欲経路。Q学習(橙)は崖ぎわの最短路を学びますが、ε-greedy で実行している間はときどき落ちるので平均リターンは低め。SARSA(緑)は崖から離れた安全路を学び、平均リターンは高くなります。ε を 0.1 に固定しているのは、この差が「探索で踏み外すリスクを価値に織り込むか否か」から生まれるため — ε → 0 なら両者は同じ最短路に収束し、差は消えます。

5. まとめ

一歩先へ — TD誤差とドーパミン 1990年代後半、Schultz らはサルの中脳ドーパミン神経の発火が、まさに TD誤差 δ のように振る舞うことを報告した。予期しないジュース(報酬)には強く発火(δ > 0)。光で報酬を予告して学習が進むと、発火は報酬の瞬間ではなく予告の瞬間に移る(報酬自体は予測どおりなので δ ≈ 0)。そして予告したのにジュースを与えないと、来るはずだった時刻に活動が沈み込む(δ < 0)。この「報酬予測誤差仮説」は、計算理論(TD学習)が脳の実データを説明した代表例として、神経科学と強化学習をつなぐ橋になっている。