JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

用猜測修正猜測:時間差分學習

TD 把蒙地卡羅的經驗與動態規劃的自助結合起來——而且讓你能一步一步地學。

兩全其美

時間差分(temporal-difference, TD)學習,用 Richard Sutton 的話說,是強化學習中核心且新穎的概念。它正好坐落在你已認識的兩種方法之間。它像蒙地卡羅一樣,直接從原始經驗學習,不需要環境模型。它又像動態規劃一樣,用其他估計來更新一個估計,而不必等待最終結果——它會自助(bootstrap)

正是這個組合讓 TD 能線上(online)學習,在每一步之後就更新,完全不必玩完一個回合。對於很長或連續型的任務,這是革命性的。

TD(0) 更新

回想蒙地卡羅的更新是把估計朝完整回報 G 移動:V(s) ← V(s) + α·(G − V(s))。問題是 G 只有在回合結束時才知道。最簡單的時間差分方法 TD(0) 把這個完整回報換成它的單步估計:你剛收到的獎勵,加上你目前對下一個狀態價值的猜測。

# TD(0) update, applied immediately after each transition (s, r, s')
target   = r + gamma * V[s_next]      # the TD target (a guess!)
td_error = target - V[s]              # the TD error, delta
V[s]    += alpha * td_error           # nudge V[s] toward the target
TD(0):單步、線上的更新——不必走到回合結束。

量值 r + γ·V(s′) 是 TD 目標,它與目前估計的差就是 TD 誤差 δ = r + γ·V(s′) − V(s)。TD 誤差是整個領域的主力:它是一種逐刻的驚訝度量——事情比你一步之前預期的好或壞了多少。

\delta_t = r_{t+1} + \gamma\,V(s_{t+1}) - V(s_t), \qquad V(s_t) \leftarrow V(s_t) + \alpha\,\delta_t

时序差分误差 δ 及其驱动的单步在线 TD(0) 更新。

抽樣 vs 自助

替每一種價值學習方法背後的兩個獨立設計選擇命名,會很有幫助,這就是抽樣與自助(sampling versus bootstrapping)的主題。抽樣是指你使用實際經歷的轉移,而不是用模型對所有可能的下一狀態求和。自助是指你的更新目標包含你自己目前對未來價值的估計,而不是一個真實量到的回報。

采样意味着从环境底层的马尔可夫链中抽取的真实转移中学习。

一个交互式马尔可夫链,展示状态之间的概率转移。

有了這套詞彙,各方法便排列得很清楚。動態規劃自助但不抽樣(它需要模型)。蒙地卡羅抽樣但不自助(它等待真實回報)。TD 則兩者同時做——它抽樣下一個轉移,以 V(s′) 自助。這個雙重動作既讓它強大,也如下一節所警告的,略為微妙。

TD vs MC:偏差與變異數的權衡

因為 MC 的目標是完整回報——整條軌跡上許多隨機獎勵的總和——它變異數高但無偏差TD(0) 的目標只依賴一個隨機獎勵加上一個確定性的查表 V(s′),所以變異數低得多,但它有偏差:V(s′) 目前是錯的,而你正朝一個錯的數字學習。隨著學習進行、V(s′) 改善,偏差會縮小。

蒙特卡洛的完整回报目标方差高但无偏,而 TD(0) 的自举目标用一点偏差换取更低的方差。

偏差-方差权衡曲线,展示总误差如何取决于偏差和方差。

為什麼 TD 誤差是如此有用的訊號

TD 誤差 δ 的作用不只是驅動一次更新。它是一個區域性、線上的學習訊號,可以在轉移發生的瞬間算出、傳播到許多狀態(你會在資格痕跡那篇看到),甚至用來調整策略而不只是價值。值得注意的是,大腦中多巴胺神經元的放電與 TD 誤差訊號高度吻合——這是機器學習與神經科學之間最著名的橋樑之一。

目前為止 MC 使用整段回報(到結束的 n 步),而 TD(0) 恰好只用一步。這是一個光譜的兩端。下一篇用 n 步回報 與優雅的 TD(λ) 把兩者之間的一切都填滿。