進階最佳化

自然梯度下降(natural gradient descent)

一般的梯度下降把參數空間當成平的:它用座標向量之間單純的歐氏距離來懲罰「走太遠」。但我們真正在意的,是模型的預測分布改變了多少,而這要用 KL 散度(Kullback-Leibler divergence)來衡量,不是用權重之間的原始距離。自然梯度下降修正了這個落差——它要求的是相對於這個統計距離的最陡下降方向,於是你走的那一步不會因為你恰好怎麼參數化模型而改變。

具體而言,自然梯度用費雪資訊矩陣(Fisher information matrix)的逆來預條件化一般梯度,得到更新式 theta <- theta - eta F^{-1} grad L。費雪矩陣 F 是對數似然梯度外積的期望值,同時也是模型與它自身一個微小擾動之間 KL 散度的局部二階曲率。乘上 F^{-1} 會依「輸出對某方向在統計上有多敏感」重新縮放每個方向,產生對平滑重新參數化保持不變的步伐。

這種不變性正是它最深刻的好處:進展不再取決於任意的座標選擇,而這個方法也是 K-FAC 與信賴域策略方法的理論祖先。代價在於規模:F 的大小是參數數乘以參數數,對深度網路而言要精確建構或求逆根本不可能,因此每個實用的自然梯度方法其實都是對 F^{-1} 的近似。

\tilde{\nabla} L = F^{-1}\nabla L,\quad F = \mathbb{E}\!\left[\nabla \log p_\theta\,(\nabla \log p_\theta)^\top\right]

自然梯度就是用費雪資訊的逆預條件化過的一般梯度。

對常見的損失(平方誤差、交叉熵)而言,費雪矩陣等於高斯-牛頓矩陣(Gauss-Newton matrix),這也是為什麼實用的自然梯度方法常用半正定的高斯-牛頓矩陣、而非真正的海森矩陣來預條件化。

又称
natural gradient自然梯度