E資格対策・強化学習の重要数式の覚え方(6)TD誤差とTD学習の更新式を語呂合わせと計算例で確実に覚える
こんにちは。ゆうせいです。
E資格の強化学習で出題される重要数式を、1つずつ覚えていくシリーズの第6回です。
第4回と第5回で学んだベルマン方程式は、環境の遷移確率 p が分かっていることが前提でした。しかし、現実の問題では、「この行動をすると、どの確率でどの状態に移るか」が分からないことがほとんどです。
そこで登場するのが、今回取り上げる「TD誤差」です。TD誤差を使うと、遷移確率が分からなくても、実際に行動して得た経験から価値を少しずつ学べます。
TD誤差は、第7回のSARSA、第8回のQ学習、第9回のDQN、そしてActor-Criticの基礎になる式です。ここから先の回は、すべて今回の式の応用なので、しっかり覚えておきましょう。
この記事のゴール
- TD誤差の式と、TD学習の更新式を何も見ずに書けるようになる
- TD誤差が正のとき、負のときに、価値がどう変わるかを説明できるようになる
- 学習率 α(アルファ)の役割を説明できるようになる
- モンテカルロ法とTD学習の違いを説明できるようになる
これまでの復習
第4回のベルマン期待方程式を、期待値の形で確認します。
覚え方は「ブイは、ある我慢ブイ」でした。今の価値は、平均すると「すぐの報酬 + γ × 次の価値」に等しい、という関係です。
また、第2回では、実際に得た割引収益を平均して価値を推定する方法として、モンテカルロ法を紹介しました。今回は、この2つの考え方を組み合わせます。
TD誤差とTD学習の更新式
今回覚える式は、次の2つです。
TD誤差:
TD学習の更新式:
記号の意味は次のとおりです。
| 記号 | 読み方 | 意味 |
|---|---|---|
| デルタ・ティー | TD誤差。予想と、一歩進んで分かった結果とのズレ | |
| ブイ・エス・ティー | 今の状態の価値の推定値(今の予想) | |
| - | 一歩進んで分かった、価値の新しい見積もり(目標値) | |
| α | アルファ | 学習率。1回の更新でズレをどれだけ反映させるか。0 より大きく 1 以下 |
| ← | 矢印 | 左辺の値を、右辺の値で置き換える(上書きする) |
TD は Temporal Difference(時間的差分)の略です。「時刻 t の予想」と「時刻 t+1 に分かった見積もり」という、時間のずれた2つの値の差を使うことから、この名前が付いています。
なお、ここでの V には右肩の π が付いていません。これは、V が本当の価値そのものではなく、学習途中の推定値(予想)であることを表しています。
式の意味:一歩進んで答え合わせ
TD誤差は、「一歩進んでみたら、予想とどれくらいズレていたか」を表します。
通勤で考えてみます。家を出るとき、「会社まで40分かかる」と予想したとします。
- 家を出る時点の予想:会社まで40分
- 駅に着くまでに、実際に15分かかった
- 駅で、「ここから会社まで30分かかる」と見積もった
- 一歩進んで分かった見積もりは、15 + 30 = 45分
- ズレは、45 − 40 = 5分
会社に着く前に、駅に着いた時点で「最初の予想は5分甘かった」と分かります。次からは、家を出るときの予想を少し長めに修正すればよいわけです。
強化学習に当てはめると、次のようになります。
| 通勤の例 | TD誤差の式 |
|---|---|
| 家を出るときの予想 40分 | 今の予想 |
| 駅までに実際にかかった 15分 | すぐもらえる報酬 |
| 駅で見積もった残り 30分 | 次の状態の価値の予想 |
| 一歩進んで分かった見積もり 45分 | 目標値 |
| ズレ 5分 | TD誤差 |
ゴールまで待たなくても、一歩進むごとに答え合わせができるのが、TD誤差の大きな特徴です。
推定値で推定値を直す
TD誤差の目標値 には、次の状態の価値の「予想」が含まれています。つまり、TD学習では、予想を使って予想を修正しています。
この考え方をブートストラップと呼びます。自分の靴ひも(ブーツのつまみ)を引っ張って自分を持ち上げる、という英語の言い回しに由来する言葉です。
予想を使って予想を直すと聞くと、不安に感じるかもしれません。しかし、目標値には実際にもらった報酬 という本物の情報が含まれています。この本物の情報が少しずつ入り込むことで、繰り返すうちに予想は正しい値に近づいていきます。
練習問題1
TD誤差の式として正しいものを選んでください。
- ア:
- イ:
- ウ:
- エ:
練習問題1の解答と解説
正解はエです。
「一歩進んで分かった見積もり(すぐの報酬 + γ × 次の価値)」から「今の予想」を引いています。
- アは誤りです。今の状態と次の状態の価値が入れ替わっています。割り引くのは次の状態の価値で、引くのは今の状態の価値です。
- イは誤りです。実際の割引収益 G を目標値にしているので、TD誤差ではなく、モンテカルロ法で使う誤差です。
- ウは誤りです。割引率 γ が報酬に掛かっています。第4回の「ある我慢ブイ」のとおり、γ が掛かるのは次の状態の価値です。
語呂合わせで覚える
語呂合わせ1:ある我慢ブイ、引く今のブイ
TD誤差の式は、第4回のベルマン期待方程式のかっこの中から、今の価値を引いたものです。
- 前半:
… ある我慢ブイ(ベルマン方程式と同じ)
- 後半:
… 引く今のブイ
覚え方は「ある我慢ブイ、引く今のブイ」です。
ベルマン方程式が正しく成り立っていれば、平均するとこのズレは 0 になります。つまり、TD誤差は「ベルマン方程式がどれくらい成り立っていないか」を表す値とも言えます。
語呂合わせ2:デルタは答え合わせのズレ
δ(デルタ)は、数学で「差」や「変化」を表すときによく使われる文字です。
覚え方は「デルタは、答え合わせのズレ」です。
TD誤差の符号(プラスかマイナスか)によって、意味が次のように変わります。
| TD誤差の符号 | 意味 | 価値の修正 |
|---|---|---|
| 正(プラス) | 思ったより良かった | 予想を上方修正する |
| 0 | 予想どおりだった | 修正しない |
| 負(マイナス) | 思ったより悪かった | 予想を下方修正する |
テストで、70点を予想していたのに80点だったら、次からは自分の実力の予想を少し上げます。60点だったら、少し下げます。TD誤差も同じ考え方です。
語呂合わせ3:アルファは、ある程度だけ直す
更新式の α(アルファ)は学習率です。ズレが分かっても、予想を一度に全部直すわけではありません。ズレのうち、α の割合だけ直します。
覚え方は「アルファは、ある程度だけ直す」です。
- α = 1:ズレを全部反映する。最新の1回の結果に振り回されやすい
- α = 0.1:ズレの1割だけ反映する。ゆっくりだが安定して学習できる
- α = 0:まったく直さない。学習が進まない
1回の結果は、たまたま良かったり悪かったりします。そのため、少しずつ直して、多くの経験を平均するように学習するのが一般的です。α は、山道を下るときの「歩幅」と考えることもできます。歩幅が大きすぎると行き過ぎ、小さすぎるとなかなか進みません。
語呂合わせ4:新しい予想は、古い予想にアルファ・デルタ
更新式は、次のように読みます。
「新しい予想は、古い予想に、アルファ・デルタを足す」
この形は、強化学習の更新式に何度も登場する共通の型です。
新しい推定 = 古い推定 + 学習率 ×(目標 − 古い推定)
TD誤差を代入して書くと、次のようになります。
第7回のSARSA、第8回のQ学習も、この型の「目標」の部分が少し変わるだけです。今回この型を覚えておけば、次の2回は目標の部分だけを覚えれば済みます。
練習問題2
TD学習の更新式における学習率 α の説明として、最も適切なものを選んでください。
- ア:1回の更新で、ズレをどの割合だけ価値に反映させるかを決める
- イ:将来の報酬を、どの程度割り引いて価値に反映させるかを決める
- ウ:ランダムに行動を選んで、新しい行動を試す確率を決める値である
- エ:TD誤差が正か負かを判定して、更新の向きを決めるための値である
練習問題2の解答と解説
正解はアです。
α は学習率で、TD誤差(ズレ)のうち、どの割合を予想の修正に使うかを決めます。
- イは誤りです。将来の報酬の割り引き方を決めるのは割引率 γ です。α と γ はどちらもギリシャ文字なので、混同しないように注意しましょう。
- ウは誤りです。ランダムに行動を選ぶ確率は、ε-greedy法の ε(イプシロン)です。
- エは誤りです。更新の向きは、TD誤差 δ そのものの符号で決まります。α は 0 より大きい値なので、向きを変えることはありません。
計算例で確かめる
計算例1:TD誤差が正の場合
次の状況を考えます。
- 今の状態の価値の予想:
- すぐもらえた報酬:
- 次の状態の価値の予想:
- 割引率 γ = 0.9、学習率 α = 0.1
まず、TD誤差を計算します。
TD誤差は正なので、思ったより良かったことになります。次に、価値を更新します。
予想は 5 から 5.24 に、少しだけ上方修正されました。目標値の 7.4 まで一気に上げるのではなく、「ある程度だけ直す」ことを確認してください。
計算例2:TD誤差が負の場合
同じ状態で、今度は報酬が 0 だったとします。
報酬が 0 でも、次の状態の価値が高いため、TD誤差はわずかに正になりました。では、次の状態の価値の予想が 4 だった場合はどうでしょうか。
TD誤差は負なので、思ったより悪かったことになります。
予想は 5 から 4.86 に下方修正されました。TD誤差の符号を見るだけで、予想を上げるべきか下げるべきかが分かります。
計算例3:終端状態に着いた場合
次の状態が終端状態のときは、終端状態の価値を 0 として計算します。第2回で学んだ「終端状態の価値は0」がここで役立ちます。
- 今の状態の価値の予想:
- すぐもらえた報酬:
- 次の状態は終端状態(価値は 0)
- 学習率 α = 0.5
終端状態に着いたときは、γ の値に関係なく、TD誤差は「報酬 − 今の予想」になります。
練習問題3
次の状況で、TD学習の更新後の の値を選んでください。
- 今の状態の価値の予想:
- すぐもらえた報酬:
- 次の状態の価値の予想:
- 割引率 γ = 0.9、学習率 α = 0.5
- ア:10.0
- イ:7.0
- ウ:7.5
- エ:1.0
練習問題3の解答と解説
正解はイです。
まず、TD誤差を計算します。
次に、価値を更新します。
- アの10.0は、学習率を掛け忘れて 4 + 6 とした値です。ズレを全部反映してしまっています。
- ウの7.5は、割引率を掛け忘れた値です。TD誤差が 1 + 10 − 4 = 7 になり、4 + 0.5 × 7 = 7.5 となります。
- エの1.0は、TD誤差を引いてしまった値です。4 − 0.5 × 6 = 1 となり、修正の向きが逆になっています。
経験を重ねると価値が伝わっていく
TD学習では、1回の更新で直すのは「今の状態」の価値だけです。それでも、経験を重ねると、ゴールの情報が少しずつ前の状態へ伝わっていきます。
計算例4:一本道を3回たどる
次の一本道を考えます。
- 状態 A から必ず状態 B に移り、報酬 0 をもらう
- 状態 B から必ず終端状態に移り、報酬 1 をもらう
- 割引率 γ = 0.9、学習率 α = 0.5
- 価値の予想は、すべて 0 から始める
第4回の方法で計算すると、本当の価値は V(B) = 1、V(A) = 0.9 です。TD学習で、この値に近づくかを確かめます。
1回目のエピソードです。
- 状態 A の更新:δ = 0 + 0.9 × 0 − 0 = 0 なので、V(A) = 0 のまま
- 状態 B の更新:δ = 1 + 0 − 0 = 1 なので、V(B) = 0 + 0.5 × 1 = 0.5
2回目のエピソードです。
- 状態 A の更新:δ = 0 + 0.9 × 0.5 − 0 = 0.45 なので、V(A) = 0 + 0.5 × 0.45 = 0.225
- 状態 B の更新:δ = 1 − 0.5 = 0.5 なので、V(B) = 0.5 + 0.5 × 0.5 = 0.75
3回目のエピソードです。
- 状態 A の更新:δ = 0 + 0.9 × 0.75 − 0.225 = 0.45 なので、V(A) = 0.225 + 0.5 × 0.45 = 0.45
- 状態 B の更新:δ = 1 − 0.75 = 0.25 なので、V(B) = 0.75 + 0.5 × 0.25 = 0.875
| エピソード | V(A) | V(B) |
|---|---|---|
| 開始時 | 0 | 0 |
| 1回目の後 | 0 | 0.5 |
| 2回目の後 | 0.225 | 0.75 |
| 3回目の後 | 0.45 | 0.875 |
| 本当の価値 | 0.9 | 1 |
1回目では、ゴールに近い状態 B の価値だけが上がりました。2回目になって、状態 B の価値が状態 A に伝わり始めています。回数を重ねるごとに、両方の値が本当の価値に近づいていく様子が分かります。
ゴールの報酬が、バケツリレーのように後ろから前へ伝わっていくイメージを持っておきましょう。
練習問題4
一本道の環境で、状態 B から終端状態に移って報酬 4 をもらいました。更新前の予想が V(B) = 2、学習率が α = 0.25 のとき、TD学習による更新後の V(B) を求めてください。
練習問題4の解答と解説
答えは2.5です。
次の状態は終端状態なので、その価値は 0 です。
- TD誤差:δ = 4 + γ × 0 − 2 = 2
- 更新後:V(B) = 2 + 0.25 × 2 = 2.5
終端状態では、TD誤差が「報酬 − 今の予想」になることを確認しておきましょう。
モンテカルロ法とTD学習の比較
第2回で紹介したモンテカルロ法も、更新式の形にすると次のようになります。
TD学習との違いは、目標値だけです。
| 項目 | モンテカルロ法 | TD学習 |
|---|---|---|
| 目標値 | 実際の割引収益 | |
| 更新できるタイミング | エピソードが終わってから | 一歩進むごと |
| 終わりのないタスク | 使えない | 使える |
| 目標値の偏り(バイアス) | なし。実際の結果だけを使う | あり。予想を含むため |
| 目標値のばらつき(分散) | 大きい。最後までの運が影響する | 小さい。一歩分の運だけが影響する |
覚え方は「モンテカルロはゴールで答え合わせ、TDは一歩先で答え合わせ」です。
バイアスと分散の違いは、E資格でよく問われます。モンテカルロ法は、本物の結果だけを使うので偏りはありませんが、最後までの運の影響を受けるため、値が大きくばらつきます。TD学習は、予想を使う分だけ偏りが生じますが、一歩分の運しか影響しないので、ばらつきが小さくなります。
なお、2つの方法の中間として、何歩か先まで実際の報酬を使う「nステップTD法」もあります。
練習問題5
TD学習について、適切でないものを選んでください。
- ア:環境の遷移確率 p を知らなくても、経験から価値を学習できる
- イ:TD誤差が正のときは、今の状態の価値の予想を上方修正する
- ウ:エピソードが終わるまで、価値の予想を更新することができない
- エ:次の状態の価値の予想を使って、今の状態の価値の予想を直す
練習問題5の解答と解説
正解はウです。
TD学習は、一歩進むごとに価値を更新できます。エピソードが終わるまで更新できないのは、モンテカルロ法の特徴です。
- アは正しい説明です。TD学習は、実際に行動して得た報酬と次の状態だけを使うので、遷移確率を知る必要がありません。
- イは正しい説明です。TD誤差が正なら、思ったより良かったということなので、予想を上げます。
- エは正しい説明です。予想を使って予想を直す、ブートストラップの考え方です。
TD誤差はこの先も登場する
TD誤差は、今後の回で次のように使われます。
- 第7回 SARSA:V を Q に置き換えたTD誤差で、行動価値を学習する
- 第8回 Q学習:目標値の中で max を使うTD誤差で、最適な行動価値を学習する
- 第9回 DQN:TD誤差の2乗を損失関数にして、ニューラルネットワークを学習する
- Actor-Critic:TD誤差を「その行動がどれくらい良かったか」の指標として使い、方策を改善する
また、脳科学の研究では、報酬の予想とのズレに反応する神経細胞(ドーパミン神経細胞)の活動が、TD誤差とよく似た振る舞いをすることが知られています。TD誤差は、生き物の学習の仕組みとも関わりの深い考え方です。
初学者がつまずきやすい点
| つまずきやすい点 | 正しい理解 |
|---|---|
| 今の価値と次の価値を逆にする | ある我慢ブイ(次の価値)、引く今のブイ |
| γ を報酬に掛けてしまう | γ が掛かるのは次の状態の価値だけ |
| α を掛け忘れて、ズレを全部足す | アルファは、ある程度だけ直す |
| α と γ を混同する | α は学習率(直す割合)、γ は割引率(我慢) |
| 終端状態の価値を予想のまま使う | 終端状態の価値は 0 として計算する |
| TD学習はゴールまで更新できないと考える | ゴールで答え合わせはモンテカルロ法。TDは一歩先で答え合わせ |
白紙に書いて確認しよう
記事を読み終えたら、何も見ずに次の5つを紙に書いてみてください。
- TD誤差の式
- TD学習の更新式(δ を使った短い形)
- TD学習の更新式(δ を代入した長い形)
- 強化学習の更新式の共通の型(新しい推定 = …)
- モンテカルロ法とTD学習の目標値の違い
書き終えたら、今の価値と次の価値の位置、γ の位置、α の掛け忘れの3点を確認してください。
まとめ
- TD誤差は、予想と、一歩進んで分かった見積もりとのズレです。デルタは答え合わせのズレです
- 式は「ある我慢ブイ、引く今のブイ」の順に書きます
- TD誤差が正なら上方修正、負なら下方修正します
- 更新式は「新しい予想は、古い予想にアルファ・デルタ」です。アルファは、ある程度だけ直します
- 遷移確率 p が分からなくても、経験から価値を学べます
- モンテカルロはゴールで答え合わせ、TDは一歩先で答え合わせです
次回は、TD学習の考え方を行動価値 Q に当てはめた「SARSA」を取り上げます。今回の更新式の V を Q に変え、目標値に「次に実際に選んだ行動」を使うだけです。今回の共通の型「新しい推定 = 古い推定 + 学習率 ×(目標 − 古い推定)」を白紙に書ける状態にしてから読み進めてください。
投稿者プロフィール


