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

致命三元組:當近似發散時

函數近似、自助法、異策略資料,各自單獨都無害。三者合一卻能把你的價值估計送到無限大。這篇講為什麼——以及解法。

三種無辜的成分

致命三元組(deadly triad)是整個主題裡最重要的警告。它點名三個各自無害、合起來卻危險的特性:(1) 函數近似(function approximation),使價值泛化、因而會相互干擾;(2) 自助法(bootstrapping),使目標依賴當前估計;以及 (3) 異策略(off-policy)訓練,即資料是由與「被評估策略」不同的策略所收集。三者同時握住,即使在一個微小、完全指定的問題上,你的價值估計也可能發散到無限大。

拿掉任一個你就安全。表格式學習(無近似)安全。蒙地卡羅(無自助)安全。同策略半梯度 TD(無異策略)安全——這就是為什麼第 3 篇的方法會收斂。危險只住在三者的交集裡。

爆炸是怎麼發生的

回想半梯度 TD 並非真梯度——沒有目標函數把它往下拉。在同策略下,更新的分布仍構成一個壓縮(contraction),把估計拖向不動點。在異策略下,行為分布與目標分布之間的不匹配,可能把那個算子變成擴張:每一輪把誤差乘上大於一的倍數。這個回饋迴圈很惡毒——抬高某狀態的 v̂,它的自助目標也跟著升(因為會泛化),於是 v̂ 升得更高。這就是函數近似發散(function-approximation divergence)

\mathbf{w}_{k+1} = \mathbf{w}_k + \alpha\,(\mathbf{b} - \mathbf{A}\,\mathbf{w}_k)

线性 TD 更新的期望形式:同策略下矩阵 A 是正定的,更新收缩到不动点;异策略下 A 可能变号,于是同样的更新让权重发散到无穷——正是本节解释的发散。

為何那些顯而易見的修法都不夠

重要性取樣(importance sampling)能救我們嗎?它在期望意義下校正異策略分布,但其比值可能巨大,注入壓垮性的變異——它補的是偏誤,不是不穩定。那直接用殘差梯度(residual gradients)呢?可以,它們在異策略下收斂,但如第 3 篇所述,它們慢、學出過度平滑的價值,而且要無偏需要雙樣本。而把步幅調小只會減緩爆炸;它無法把擴張變成壓縮。

\rho_t = \frac{\pi(A_t\mid S_t)}{b(A_t\mid S_t)},\qquad \rho_{t:T-1} = \prod_{k=t}^{T-1}\frac{\pi(A_k\mid S_k)}{b(A_k\mid S_k)}

重要性采样比率对异策略数据重新加权;在多步上连乘后这些比率会爆炸——正是本节所警示的巨大方差。

我們真正要的是兩全其美:半梯度 TD 的速度與準確度,但配上一個真正的目標函數,使異策略下也保證收斂。這正是梯度-TD 方法所提供的。

梯度-TD:終於有了真目標

梯度時序差分(gradient temporal-difference)方法(GTD2、TDC)下降一個真正的目標——均方投影 Bellman 誤差(mean squared projected Bellman error)——它衡量的是把 Bellman 殘差投影回可表示平面之後的大小。因為它是真實損失的真梯度,梯度-TD 即使三元組成分全部到齊也可證明收斂,同時每步仍保持線性時間。代價是要多維護一組小權重,並多調一個步幅。

与半梯度 TD 不同,梯度 TD 下降的是一个真正的目标——均方投影贝尔曼误差——因此它真的在沿曲面走向最小值。

梯度下降沿损失曲线逐步走向最小值的示意图。

智識上的回報:藉由衡量投影後的 Bellman 誤差,梯度-TD 恰恰尊重了第 3 篇所教的——線性方法能做到的極限就是投影不動點——然後誠實地朝它下降。它是線性情形下對三元組的有原則解法。

第二個危害:高估

即使一個會收斂的方法,也可能收斂到一個向上偏誤的東西。近似中的高估(overestimation in approximation)是發散在控制端的表親。Q 學習對帶噪的動作價值取最大值;帶噪估計的最大值會偏高,而近似又加入會跨動作泛化的相關噪聲,於是這份膨脹會累積而非彼此抵消。智能體最後相信好幾個動作都比實際更好。

网格世界中的 Q 学习:对带噪声的动作价值取最大值会系统性地偏向高估——正是本节所警示的向上偏差。

可交互的 Q 学习智能体在网格世界中导航,朝目标更新动作价值。