拟牛顿法的数学原理:正定性、合理性与割线约束
摘要: 在非线性优化领域,拟牛顿法(Quasi-Newton Methods)是一类核心算法。它旨在克服纯牛顿法在计算和稳定性上的缺陷。然而,其机制——使用一个正定矩阵来近似可能非正定的Hessian矩阵常常引发疑问。从数学层面深入剖析拟牛顿法的三个关键问题:近似矩阵与真实函数形态的关系、正定性的维持机制,以及在Hessian矩阵非正定时此做法的合理性。
引言:从牛顿法到拟牛顿法
对于无约束优化问题 min f(x),纯牛顿法的迭代公式为:
x_{k+1} = x_k + p_k
其中,牛顿方向 p_k 通过求解线性方程组 H_k p_k = -∇f_k 得到,∇f_k 是 x_k 点的梯度,H_k = ∇²f(x_k) 是该点的Hessian矩阵。
牛顿法具有二次收敛的优良特性,但存在两个主要障碍:
- 计算成本高昂:需要计算并存储Hessian矩阵,并求解一个线性方程组,对于高维问题代价巨大。
- 稳定性问题:只有当
H_k是正定矩阵时,才能保证牛顿方向p_k是一个下降方向。若H_k非正定或奇异,算法可能停滞甚至走向函数值更高的区域。
拟牛顿法通过使用一个近似矩阵 B_k 代替真实的 H_k,并以较低的计算成本进行迭代更新,从而同时解决了上述两个问题。
1. 关系:连接近似与真实的“割线条件”
拟牛顿法的近似矩阵 B_k 并非凭空捏造,它与真实函数形态之间通过一个数学关系,即割线条件(Secant Condition) 以建立联系。
首先,考虑梯度 ∇f(x) 在 x_k 点的一阶泰勒展开:
∇f(x) ≈ ∇f(x_k) + ∇²f(x_k)(x - x_k)
令 x = x_{k+1},得到:
∇f(x_{k+1}) ≈ ∇f(x_k) + H_k(x_{k+1} - x_k)
移项并定义以下两个向量:
- 步长向量:
s_k = x_{k+1} - x_k - 梯度变化量:
y_k = ∇f(x_{k+1}) - ∇f(x_k)
上述近似关系可以写为:
y_k ≈ H_k s_k
这个关系表明,真实的Hessian矩阵 H_k 作用于位移向量 s_k,其结果近似等于梯度的变化量 y_k。
拟牛顿法的核心思想是将这个近似关系提升为对下一个近似矩阵 B_{k+1} 的严格约束,这便是割线条件:
B_{k+1} s_k = y_k
该条件的深刻含义是:要求新的Hessian近似矩阵 B_{k+1},在刚刚完成的迭代方向 s_k 上,其行为必须与真实Hessian矩阵完全一致。换言之,B_{k+1} 精确地包含了函数在 s_k 方向上的实测曲率信息。
这个方程是构建 B_{k+1} 的基础,但由于 B_{k+1} 是一个 n x n 矩阵,而该方程只提供了 n 个线性约束,因此 B_{k+1} 是欠定的。这为我们施加其他期望的属性(如对称性、正定性)留出了充足的空间。
2. 机制:正定性的数学维持
为了保证算法的稳定下降,要求 B_k 始终是**对称正定(Symmetric Positive Definite, SPD)**的。如果 B_k 是SPD,那么搜索方向 p_k = -B_k⁻¹∇f_k 必然是下降方向,因为:
∇f_kᵀ p_k = -∇f_kᵀ B_k⁻¹ ∇f_k < 0
(一个非零向量与一个正定矩阵的二次型恒为正)。
那么,如何在迭代中维持正定性?这依赖于更新公式和线搜索的精妙配合。以最成功的BFGS (Broyden-Fletcher-Goldfarb-Shanno) 公式为例:
B_{k+1} = B_k - (B_k s_k s_kᵀ B_k) / (s_kᵀ B_k s_k) + (y_k y_kᵀ) / (y_kᵀ s_k)
该公式的设计蕴含了一个关键定理:
定理: 若
B_k是对称正定矩阵,则通过BFGS公式更新得到的B_{k+1}保持对称正定的充要条件是y_kᵀ s_k > 0。
现在,问题转化为:如何确保 y_kᵀ s_k > 0?答案在于 线搜索(Line Search) 过程。
在确定了下降方向 p_k 后,通过线搜索寻找一个合适的步长 α_k > 0,使得 s_k = α_k p_k。一个设计良好的线搜索程序,如满足Wolfe条件的线搜索,除了要确保函数值充分下降外(Armijo条件),还必须满足曲率条件(Curvature Condition):
∇f(x_k + α_k p_k)ᵀ p_k ≥ c₂ ∇f_kᵀ p_k (其中 0 < c₂ < 1)
这个条件保证了在新点的梯度投影不会比原梯度投影“负得更多”。现在来证明它如何确保 y_kᵀ s_k > 0:
y_kᵀ s_k = (∇f_{k+1} - ∇f_k)ᵀ (α_k p_k)
= α_k (∇f_{k+1}ᵀ p_k - ∇f_kᵀ p_k)
根据曲率条件,∇f_{k+1}ᵀ p_k ≥ c₂ ∇f_kᵀ p_k,代入上式:
y_kᵀ s_k ≥ α_k (c₂ ∇f_kᵀ p_k - ∇f_kᵀ p_k)
= α_k (c₂ - 1) ∇f_kᵀ p_k
由于 p_k 是下降方向,∇f_kᵀ p_k < 0。同时 α_k > 0 且 c₂ - 1 < 0。三者相乘,得到:
y_kᵀ s_k > 0
正定性维持机制的总结(数学归纳法):
- 基础步骤:选择初始矩阵
B₀为对称正定矩阵,通常是单位矩阵I。 - 归纳假设:假设
B_k是对称正定的。 - 归纳步骤:
a. 计算下降方向p_k = -B_k⁻¹∇f_k。
b. 执行满足Wolfe条件的线搜索,找到步长α_k,从而得到s_k和y_k,并确保y_kᵀ s_k > 0。
c. 使用BFGS公式更新得到B_{k+1}。根据定理,B_{k+1}也是对称正定的。 - 结论:通过此迭代循环,
B_k在整个优化过程中始终保持对称正定。
3. 合理性:非正定区域的策略选择
现在回到最关键的问题:当真实Hessian H_k 非正定(例如在鞍点或非凸区域)时,强制使用一个正定 B_k 来近似它的合理性何在?
答案在于算法目标的动态切换:从追求“局部最优模型”转向追求“全局收敛性”。
-
纯牛顿法的困境:在
H_k非正定的区域,二次模型m_k(p) = f_k + ∇f_kᵀ p + 1/2 pᵀ H_k p不再是一个凸二次函数(碗状)。其驻点p_k = -H_k⁻¹∇f_k可能是鞍点或最大值点。遵循此方向是危险的,可能导致算法发散。此时,精确的局部模型反而提供了有害的信息。 -
拟牛顿法的务实策略:拟牛顿法认识到,在这些“坏”的区域,首要任务不是以最快速度逼近一个不存在的局部最小值,而是找到一个可靠的、能保证函数值下降的方向,从而安全地离开这片区域。
-
正定近似的价值:通过强制
B_k正定,我们用一个必然是凸的二次模型m_k(p) = f_k + ∇f_kᵀ p + 1/2 pᵀ B_k p来替代真实的、可能非凸的模型。这个凸模型的最小值点方向p_k = -B_k⁻¹∇f_k必然是下降方向。
这是一种策略上的权衡:
- 牺牲:暂时放弃了对真实函数曲率的精确模拟,从而也放弃了在这些区域可能存在的二次收敛速度。
- 获得:鲁棒性(Robustness)。算法获得了在任何地形下都能稳定前进、保证函数值单调下降的能力,从而确保了其全局收敛性(在一定条件下收敛到某个驻点)。
- 与最速下降法的对比:这种做法并非简单退化为最速下降法(相当于始终令
B_k = I)。由于B_k通过割线条件不断吸收历史路径上的真实曲率信息,它提供的下降方向通常远优于单纯的负梯度方向,从而在保证稳定性的同时,尽可能地保留了收敛效率。
结论
拟牛顿法并非一种唯心的技巧,而是一种基于深刻数学原理和务实工程考量的精密设计。其合理性可以总结为以下三点:
- 关系基础:通过割线条件,确保了近似模型
B_k在已探索方向上与真实函数的曲率相匹配,使其成为一个有信息含量的近似,而非任意猜测。 - 机制保障:通过BFGS等更新公式与满足Wolfe条件的线搜索之间的协同作用,以数学归纳的方式严格保证了近似矩阵
B_k在整个迭代过程中的正定性。 - 策略合理性:在真实Hessian非正定的不稳定区域,算法明智地将目标从“模型精度”切换为“收敛鲁棒性”,通过使用一个保证下降的正定模型,确保了算法能够安全、稳定地向最优解前进。
这种方法在“精确性”与“稳定性”之间取得了精妙平衡。
