進階最佳化

K-FAC 最佳化器(Kronecker-factored approximate curvature)

自然梯度下降在理論上很美,但深度網路的費雪資訊矩陣有上百萬列與行,要儲存或求逆根本不可行。K-FAC 就是讓近似自然梯度負擔得起的技巧:它注意到,逐層來看,某一層權重對應的費雪區塊可以近似地分解成兩個小很多的矩陣的克羅內克積(Kronecker product)——一個由該層的輸入構成,一個由回傳到它的梯度構成。

對於權重為 W 的一層,K-FAC 把曲率區塊近似為 F_layer ~ A (kron) G,其中 A 是輸入激活值的二階矩矩陣,G 是激活前梯度的二階矩矩陣。克羅內克恆等式 (A kron G)^{-1} = A^{-1} kron G^{-1} 表示你只需對這兩個小因子求逆,它們的大小是該層的輸入與輸出寬度,而不是整個參數數。預條件化後的更新把該層梯度乘上這兩個逆矩陣,必要時再加上一個阻尼項以維持良好條件數。

實務上,K-FAC 在 CNN 與 Transformer 上能用明顯更少的步數收斂,代價是每步更重:它必須週期性地重新估計並重新求逆這些因子,並依賴阻尼與統計量的移動平均。它是優雅的二階理論、與那些大到無法處理精確費雪矩陣的網路之間的橋梁。

F_{\text{layer}} \approx A \otimes G,\qquad (A\otimes G)^{-1} = A^{-1}\otimes G^{-1}

克羅內克結構把一個巨大的求逆換成兩個小的求逆。

K-FAC 的克羅內克分解是一種近似:它假設激活值與反向傳播的梯度在統計上獨立,並忽略跨層的相關性,因此能抓到大部分、但非全部的真實曲率。

又称
K-FACKronecker-factored approximate curvatureKronecker 分解近似曲率