二階優化和牛頓法
二階最佳化使用曲率資訊(二階導數的 Hessian 矩陣)來採取更聰明的步驟來達到最小值,而不僅僅是斜率。
概述
It can converge in dramatically fewer iterations than plain gradient descent, but the cost of computing curvature makes it tricky to scale.
深入探討
梯度下降只知道當前點的斜率,因此它會選擇固定或手動調整的步長,並希望獲得最佳的結果。牛頓方法更進一步:它還研究斜率如何變化(曲率),由所有二階偏導數的矩陣 Hessian 捕獲。更新將逆 Hessian 矩陣乘以梯度,這會自動重新縮放每個方向並接近局部二次近似的最小值。對於完美的二次碗,牛頓法只需一步即可到達底部。問題很殘酷:具有 N 個參數的模型具有 N×N Hessian,因此儲存和反轉它大約需要 N 平方記憶體和 N 立方計算。對於十億參數的網路來說這是不可能的,這就是為什麼從業者使用更便宜的近似值。
技術洞察
核心牛頓更新是 x_new = x - H_inverse 乘以梯度,其中 H 是 Hessian。 BFGS 和 L-BFGS 等擬牛頓方法透過根據連續梯度差構建 H 的倒數的運行近似來避免直接計算 H。 L-BFGS 僅儲存最後幾個梯度和步長向量,而不是整個矩陣,將記憶體從 N 平方減少到 N 的小倍數,同時保持大部分收斂加速。
戰略影響
成本與預算
多年來,架構決策決定著效能和營運成本。
更明確的決策
技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。
品質管控
更好的工程選擇可以減少生產中的可靠性事故。
二階優化和牛頓法的未來
對於巨型神經網絡,完整的二階方法仍然不切實際,但近似方法正在取得進展。 K-FAC 和 Shampoo 等優化器使用塊對角線或 Kronecker 分解結構來近似曲率,而 Sophia 和 Muon 等較新的方法使用廉價的曲率估計來加速大型語言模型預訓練。預計將繼續努力以接近一階的成本捕獲有用的曲率訊號,從而縮小亞當步和真正的牛頓步之間的差距。
現實世界的實施
L-BFGS 在 scikit-learn 中擬合邏輯回歸和其他凸模型,它通常在中小型資料集上擊敗普通梯度下降
3D 重建和 SLAM 中的捆綁調整,其中 Gauss-Newton 和 Levenberg-Marquardt 細化相機姿態和點位置
訓練微小的物理資訊神經網絡,其中 L-BFGS 達到 Adam 難以達到的精確度
Shampoo 和 K-FAC 透過近似 Hessian 結構加速大規模深度學習訓練
風險與防護欄
優化一項基準測試可以隱藏更廣泛的系統弱點。
基礎設施和維護成本常常被低估。
隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。
實施路線圖
在實施之前定義延遲、品質和成本目標。
在實際負載和資料條件下進行基準測試。
儀器監控錯誤、漂移和使用者影響。
在擴展之前準備回滾和事件回應路徑。
不斷探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Second-Order Optimization and Newton Methods quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常見問題
What is Second-Order Optimization and Newton Methods?
二階最佳化使用曲率資訊(二階導數的 Hessian 矩陣)來採取更聰明的步驟來達到最小值,而不僅僅是斜率。與普通梯度下降相比,它可以以少得多的迭代次數收斂,但計算曲率的成本使其難以擴展。
牛頓法使用了哪些資訊而普通梯度下降法沒有使用?
牛頓方法利用 Hessian 矩陣的曲率來增強梯度,使其重新調整方向並逼近局部二次極小值。
對於完美二次目標,牛頓法需要多少步驟才能達到最小值?
在精確二次方程式上,局部二次模型等於真實函數,因此牛頓步會直接跳到最小值。
為什麼完整的牛頓法對於十億參數的神經網路不切實際?
對於 N 個參數,Hessian 矩陣具有 N 平方項,並且反轉它的比例類似於 N 立方,這在數十億個參數下是不可行的。
像 BFGS 這樣的擬牛頓方法如何避免 Hessian 成本?
BFGS 使用步驟之間梯度的變化迭代來更新逆 Hessian 矩陣的估計,避免直接計算。
與BFGS相比,L-BFGS如何減少記憶體?
「L」代表有限記憶體:L-BFGS 僅保留少量最近的向量,將儲存空間從 N 平方減少到大約 N 的一小部分。