1. 牛顿法与拟牛顿法:优化算法的核心思想
在机器学习和大模型训练中,优化算法扮演着至关重要的角色。牛顿法和拟牛顿法作为两类重要的优化方法,它们之间的核心差异在于对曲率信息的利用方式。
牛顿法直接使用精确的Hessian矩阵(二阶导数)来确定最优下降方向。这种方法在理论上具有局部二次收敛性,意味着在接近最优解时,误差会以平方级的速度减小。然而,计算和存储完整的Hessian矩阵需要O(n²)的内存空间,解线性方程更是需要O(n³)的计算复杂度,这使得牛顿法在大规模问题上变得不切实际。
相比之下,拟牛顿法(如BFGS和L-BFGS)通过历史梯度信息来近似Hessian矩阵或其逆矩阵。这种方法只需要O(n²)的内存(对于L-BFGS甚至只需要O(mn),m通常为10-50),却能实现超线性收敛。这种折中方案使得拟牛顿法在大规模优化问题中表现出色。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 牛顿法的数学原理与实现细节
2.1 二次近似与牛顿方向
牛顿法的核心思想源于泰勒展开的二次近似。在点x_k处,目标函数f可以近似为:
m_k(p) = f(x_k) + ∇f(x_k)^T p + 1/2 p^T H_k p
其中H_k≈∇²f(x_k)是Hessian矩阵。通过令这个二次模型的导数等于零,我们得到牛顿方程:
H_k p_k = -∇f(x_k)
这个方程的解p_k就是牛顿方向。在实际应用中,我们通常会沿着这个方向进行线搜索或信赖域调整,确保函数值确实下降。
2.2 收敛性质与实现考量
牛顿法最吸引人的特性是其局部二次收敛性。当满足以下条件时:
- 函数在解点附近二阶连续可微
- Hessian矩阵在解点正定
- 初始点足够接近解点
牛顿法的收敛速度会非常快。然而,这些条件在实际中往往难以保证,特别是在非凸问题中。此时,我们需要对标准牛顿法进行一些修正:
- Hessian修正:当Hessian矩阵不正定时,可以添加λI使其正定
- 信赖域方法:限制步长大小,确保在局部近似有效的范围内移动
- 混合策略:结合线搜索和信赖域的优点
3. 拟牛顿法:BFGS与L-BFGS详解
3.1 BFGS算法原理
BFGS算法是最成功的拟牛顿法之一,它通过迭代更新Hessian逆矩阵的近似H_k。其更新公式为:
H_{k+1} =
