当前位置: 首页 > news >正文

拟牛顿法的数学原理:正定性、合理性与割线约束

摘要: 在非线性优化领域,拟牛顿法(Quasi-Newton Methods)是一类核心算法。它旨在克服纯牛顿法在计算和稳定性上的缺陷。然而,其机制——使用一个正定矩阵来近似可能非正定的Hessian矩阵常常引发疑问。从数学层面深入剖析拟牛顿法的三个关键问题:近似矩阵与真实函数形态的关系、正定性的维持机制,以及在Hessian矩阵非正定时此做法的合理性。

引言:从牛顿法到拟牛顿法

对于无约束优化问题 min f(x),纯牛顿法的迭代公式为:
x_{k+1} = x_k + p_k
其中,牛顿方向 p_k 通过求解线性方程组 H_k p_k = -∇f_k 得到,∇f_kx_k 点的梯度,H_k = ∇²f(x_k) 是该点的Hessian矩阵。

牛顿法具有二次收敛的优良特性,但存在两个主要障碍:

  1. 计算成本高昂:需要计算并存储Hessian矩阵,并求解一个线性方程组,对于高维问题代价巨大。
  2. 稳定性问题:只有当 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 > 0c₂ - 1 < 0。三者相乘,得到:
y_kᵀ s_k > 0

正定性维持机制的总结(数学归纳法):

  1. 基础步骤:选择初始矩阵 B₀ 为对称正定矩阵,通常是单位矩阵 I
  2. 归纳假设:假设 B_k 是对称正定的。
  3. 归纳步骤
    a. 计算下降方向 p_k = -B_k⁻¹∇f_k
    b. 执行满足Wolfe条件的线搜索,找到步长 α_k,从而得到 s_ky_k,并确保 y_kᵀ s_k > 0
    c. 使用BFGS公式更新得到 B_{k+1}。根据定理,B_{k+1} 也是对称正定的。
  4. 结论:通过此迭代循环,B_k 在整个优化过程中始终保持对称正定。

3. 合理性:非正定区域的策略选择

现在回到最关键的问题:当真实Hessian H_k 非正定(例如在鞍点或非凸区域)时,强制使用一个正定 B_k 来近似它的合理性何在?

答案在于算法目标的动态切换:从追求“局部最优模型”转向追求“全局收敛性”。

  1. 纯牛顿法的困境:在 H_k 非正定的区域,二次模型 m_k(p) = f_k + ∇f_kᵀ p + 1/2 pᵀ H_k p 不再是一个凸二次函数(碗状)。其驻点 p_k = -H_k⁻¹∇f_k 可能是鞍点或最大值点。遵循此方向是危险的,可能导致算法发散。此时,精确的局部模型反而提供了有害的信息

  2. 拟牛顿法的务实策略:拟牛顿法认识到,在这些“坏”的区域,首要任务不是以最快速度逼近一个不存在的局部最小值,而是找到一个可靠的、能保证函数值下降的方向,从而安全地离开这片区域

  3. 正定近似的价值:通过强制 B_k 正定,我们用一个必然是凸的二次模型 m_k(p) = f_k + ∇f_kᵀ p + 1/2 pᵀ B_k p 来替代真实的、可能非凸的模型。这个凸模型的最小值点方向 p_k = -B_k⁻¹∇f_k 必然是下降方向

这是一种策略上的权衡:

  • 牺牲:暂时放弃了对真实函数曲率的精确模拟,从而也放弃了在这些区域可能存在的二次收敛速度。
  • 获得鲁棒性(Robustness)。算法获得了在任何地形下都能稳定前进、保证函数值单调下降的能力,从而确保了其全局收敛性(在一定条件下收敛到某个驻点)。
  1. 与最速下降法的对比:这种做法并非简单退化为最速下降法(相当于始终令 B_k = I)。由于 B_k 通过割线条件不断吸收历史路径上的真实曲率信息,它提供的下降方向通常远优于单纯的负梯度方向,从而在保证稳定性的同时,尽可能地保留了收敛效率。

结论

拟牛顿法并非一种唯心的技巧,而是一种基于深刻数学原理和务实工程考量的精密设计。其合理性可以总结为以下三点:

  1. 关系基础:通过割线条件,确保了近似模型 B_k 在已探索方向上与真实函数的曲率相匹配,使其成为一个有信息含量的近似,而非任意猜测。
  2. 机制保障:通过BFGS等更新公式满足Wolfe条件的线搜索之间的协同作用,以数学归纳的方式严格保证了近似矩阵 B_k 在整个迭代过程中的正定性。
  3. 策略合理性:在真实Hessian非正定的不稳定区域,算法明智地将目标从“模型精度”切换为“收敛鲁棒性”,通过使用一个保证下降的正定模型,确保了算法能够安全、稳定地向最优解前进。

这种方法在“精确性”与“稳定性”之间取得了精妙平衡。

http://www.dtcms.com/a/596604.html

相关文章:

  • 解决 Chrome 下载 `.crx` 文件被自动删除及“无法安装扩展程序,因为它使用了不受支持的清单版本”问题
  • 网站图片翻页效果如何做网站开发有哪些服务器
  • o2o网站建设如何上海网站建设服
  • 【agent】AI 数字人构建11:FunASR 2:c++工程分析及模型下载
  • 【OpenCV + VS】OpenCV中的图像像素读写
  • 柳州哪家公司做网站好vancl网站
  • xtu oj环--唉
  • Polar CTF Reverse简单 刷题笔记
  • 刷题日常 2 二叉树中序遍历
  • 从C++到仓颉:一个小型项目的迁移实践与深度思考
  • ⸢ 拾肆-Ⅱ⸥⤳ 实战检验应用实践(下):自动化检验 演练复盘
  • TypeScript中extends与implements的区别
  • 企业网站建设问卷专业网站建设 公司哪家好
  • 建一个网站需要什么条件可以免费观看电视电影
  • ArrowDL BT下载工具v4.2.1中文版安装教程(附详细步骤+下载方法)
  • 高德MCP服务接入
  • 立即执行函数(IIFE)
  • Scratch编程教程 | 从入门到实战创意编程
  • 如何在Keil5中在没有硬件支持的情况下使用Keil的模拟器(Simulator) + 调试窗口输出进行调试
  • YOLOv8改进实战:自研MSAM多尺度注意力机制,通道注意力全面升级,CBAM再进化!
  • 从一场年会看乐鑫科技的创新传承
  • 【系统架构设计师-2025下半年真题】综合知识-参考答案及详解(回忆版)
  • custed谁做的网站大连电商平台有哪些
  • 公司高端网站设计公司沈阳建设厅官方网站
  • 微信小程序必要要安装SSL证书吗?小程序SSL详解
  • PostgreSQL18新功能COPY命令变得更加用户友好
  • 医疗小程序05完善就诊人信息
  • idea AI编程 腾讯云代码助手 CodeBuddy插件安装和使用
  • 湖南益阳网站建设做地坪网站
  • 02-SQLite 为了防止多人同时乱写,把整个数据库文件“当一本账本加锁”