兩全其美
時間差分(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
量值 r + γ·V(s′) 是 TD 目標,它與目前估計的差就是 TD 誤差 δ = r + γ·V(s′) − V(s)。TD 誤差是整個領域的主力:它是一種逐刻的驚訝度量——事情比你一步之前預期的好或壞了多少。
时序差分误差 δ 及其驱动的单步在线 TD(0) 更新。
抽樣 vs 自助
替每一種價值學習方法背後的兩個獨立設計選擇命名,會很有幫助,這就是抽樣與自助(sampling versus bootstrapping)的主題。抽樣是指你使用實際經歷的轉移,而不是用模型對所有可能的下一狀態求和。自助是指你的更新目標包含你自己目前對未來價值的估計,而不是一個真實量到的回報。
一个交互式马尔可夫链,展示状态之间的概率转移。
有了這套詞彙,各方法便排列得很清楚。動態規劃自助但不抽樣(它需要模型)。蒙地卡羅抽樣但不自助(它等待真實回報)。TD 則兩者同時做——它抽樣下一個轉移,又以 V(s′) 自助。這個雙重動作既讓它強大,也如下一節所警告的,略為微妙。
TD vs MC:偏差與變異數的權衡
因為 MC 的目標是完整回報——整條軌跡上許多隨機獎勵的總和——它變異數高但無偏差。TD(0) 的目標只依賴一個隨機獎勵加上一個確定性的查表 V(s′),所以變異數低得多,但它有偏差:V(s′) 目前是錯的,而你正朝一個錯的數字學習。隨著學習進行、V(s′) 改善,偏差會縮小。
偏差-方差权衡曲线,展示总误差如何取决于偏差和方差。
為什麼 TD 誤差是如此有用的訊號
TD 誤差 δ 的作用不只是驅動一次更新。它是一個區域性、線上的學習訊號,可以在轉移發生的瞬間算出、傳播到許多狀態(你會在資格痕跡那篇看到),甚至用來調整策略而不只是價值。值得注意的是,大腦中多巴胺神經元的放電與 TD 誤差訊號高度吻合——這是機器學習與神經科學之間最著名的橋樑之一。
目前為止 MC 使用整段回報(到結束的 n 步),而 TD(0) 恰好只用一步。這是一個光譜的兩端。下一篇用 n 步回報 與優雅的 TD(λ) 把兩者之間的一切都填滿。