TD学習

Temporal Difference Learning

TD学習とは

TD学習(Temporal Difference Learning、時間差分学習)とは、経験の各ステップで価値関数を逐次的に更新する強化学習の基本的なアプローチです。モンテカルロ法のようにエピソード完了を待たず、動的計画法のようにブートストラップ(次の状態の推定値を利用)を行う点が特徴です。

表:TD学習の要点まとめ
ひとことで言うと1歩進むごとに、予想と実際のズレで価値を修正していく学習法。
何がうれしいかエピソードの終了を待たずに学習できる。終わりのない課題にも使える。
注意点1歩先だけを見るため、遠い将来の情報が伝わるのに時間がかかる。

TD(0)の更新則

最も基本的なTD(0)の更新式は V(s) ← V(s) + α[r + γV(s') - V(s)] です。r + γV(s')をTDターゲット、r + γV(s') - V(s)をTD誤差(TD error)と呼びます。TD誤差は「予想していた価値と実際に得た報酬+次の推定値との差」を表し、この差を縮めるよう価値を更新します。

図:TD学習のしくみ
1価値を予想今の状態の見込み
▶
21歩進む報酬と次状態を観測
▶
3新しい見積り報酬+次状態の価値
▶
4ズレを計算TD誤差
▶
5予想を修正少しだけ近づける
↺ 1歩ごとに1〜5をくり返す

モンテカルロ法との比較

モンテカルロ法はエピソード終了後の実際のリターンで更新するためバイアスがありませんが、バリアンスが大きいです。TD学習はブートストラップによりバイアスが生じますが、バリアンスが小さく1ステップごとに更新できます。この特性により、TD学習は連続タスクやエピソードが長い問題で特に有効です。

TD(λ)と適格度トレース

TD(λ)はTD(0)とモンテカルロ法を連続的に補間する手法で、λ=0がTD(0)、λ=1がモンテカルロ法に対応します。適格度トレース(Eligibility Trace)を用いることで効率的に計算でき、λの値でバイアスとバリアンスのトレードオフを調整できます。