二阶优化和牛顿法
二阶优化使用曲率信息(二阶导数的 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 的一小部分。