函數近似
半梯度方法(semi-gradient methods)
這是函數近似下實際進行 TD 學習的標準做法——也是它只能算「半」梯度的原因。當你朝一個自舉目標(例如 r + gamma v(s'; w))更新時,這個目標本身就依賴於權重 w。真正的梯度法也會對它求導。半梯度方法刻意忽略這個依賴:它把目標當成一個固定的數字,只取預測的梯度。
更新式為 w <- w + alpha[r + gamma v(s'; w) - v(s; w)] grad v(s; w),不對目標求梯度。略去目標的梯度,正是讓每一步都只是一次便宜的特徵向量更新的關鍵,所以它比較便宜、學得快,也是半梯度 TD(0)、Sarsa 與 DQN 共用的做法。同策略加線性特徵時它會收斂到 TD 不動點;離策略時則可能發散——而那個被略去的梯度,正是致命三要素所利用的破口。
半梯度並不是該隨手修掉的瑕疵:它的全梯度替代品(殘差梯度)雖然可被證明為穩定,實務上卻常學得慢、收斂到一個更差、更模糊的解,使得「療法比病更糟」。半梯度仍是支撐大多數可運作系統的務實預設;梯度 TD 則是只有在致命三要素真的讓你的價值發散時,你才會搬出來的原則性修補。
\mathbf w\leftarrow \mathbf w+\alpha\,[\,r+\gamma\hat v(s';\mathbf w)-\hat v(s;\mathbf w)\,]\,\nabla_{\mathbf w}\hat v(s;\mathbf w)
半梯度 TD:不讓梯度穿過自舉目標。
全梯度的替代品(殘差梯度)理論上更乾淨,卻通常學得更慢、解也更差——半梯度是預設,而非權宜之計。
又稱
另見