概述
它可以在比普通梯度下降少得多的迭代次数内收敛,但计算曲率的成本使其难以扩展。
深入探讨
梯度下降只知道当前点的斜率,因此它会选择固定或手动调整的步长,并希望获得最好的结果。牛顿方法更进一步:它还研究斜率如何变化(曲率),由所有二阶偏导数的矩阵 Hessian 捕获。更新将逆 Hessian 矩阵乘以梯度,这会自动重新缩放每个方向并接近局部二次近似的最小值。对于完美的二次碗,牛顿法只需一步即可到达底部。问题很残酷:具有 N 个参数的模型具有 N×N Hessian,因此存储和反转它大约需要 N 平方内存和 N 立方计算。对于十亿参数的网络来说这是不可能的,这就是为什么从业者使用更便宜的近似值。
现实世界的实施
L-BFGS 在 scikit-learn 中拟合逻辑回归和其他凸模型,它通常在中小型数据集上击败普通梯度下降
3D 重建和 SLAM 中的捆绑调整,其中 Gauss-Newton 和 Levenberg-Marquardt 细化相机姿态和点位置
训练微小的物理信息神经网络,其中 L-BFGS 达到 Adam 难以达到的精度
Shampoo 和 K-FAC 通过近似 Hessian 结构加速大规模深度学习训练
二阶优化和牛顿法的未来
对于巨型神经网络,完整的二阶方法仍然不切实际,但近似方法正在取得进展。 K-FAC 和 Shampoo 等优化器使用块对角线或 Kronecker 分解结构来近似曲率,而 Sophia 和 Muon 等较新的方法使用廉价的曲率估计来加速大型语言模型预训练。预计将继续努力以接近一阶的成本捕获有用的曲率信号,从而缩小亚当步和真正的牛顿步之间的差距。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是二阶优化与牛顿法?
二阶优化使用曲率信息(二阶导数的 Hessian 矩阵)来采取更智能的步骤来达到最小值,而不仅仅是斜率。与普通梯度下降相比,它可以以少得多的迭代次数收敛,但计算曲率的成本使其难以扩展。
牛顿法使用了哪些信息而普通梯度下降法没有使用?
牛顿方法利用 Hessian 矩阵的曲率来增强梯度,使其重新调整方向并逼近局部二次极小值。
对于完美二次目标,牛顿法需要多少步才能达到最小值?
在精确二次方程上,局部二次模型等于真实函数,因此牛顿步会直接跳到最小值。
为什么完整的牛顿法对于十亿参数的神经网络不切实际?
对于 N 个参数,Hessian 矩阵具有 N 平方项,并且反转它的比例类似于 N 立方,这在数十亿个参数下是不可行的。
像 BFGS 这样的拟牛顿方法如何避免 Hessian 成本?
BFGS 使用步骤之间梯度的变化迭代更新逆 Hessian 矩阵的估计,避免直接计算。
与BFGS相比,L-BFGS如何减少内存?
“L”代表有限内存:L-BFGS 仅保留少量最近的向量,将存储空间从 N 平方减少到大约 N 的一小部分。