知识点概述

BFGS方法是拟牛顿法中最流行和最有效的一种。它通过迭代更新Hessian矩阵的近似,来模拟牛顿法的行为,但避免了直接计算二阶导数。BFGS方法在计算成本、收敛速度和稳健性之间取得了出色的平衡,能够达到超线性收敛速度,并且其实现(特别是L-BFGS)非常适用于大规模问题。

教材原文

The most popular quasi-Newton algorithm is the BFGS method, named for its discoverers Broyden, Fletcher, Goldfarb, and Shanno. The update formula for the inverse Hessian approximation is: (BFGS) \quad H_{k+1} = (I - \rho_k s_k y_k^T) H_k (I - \rho_k y_k s_k^T) + \rho_k s_k s_k^T, \tag{6.17} with The update for the Hessian approximation is: B_{k+1} = B_k - \frac{B_k s_k s_k^T B_k}{s_k^T B_k s_k} + \frac{y_k y_k^T}{y_k^T s_k}. \tag{6.19}

详细解释

  1. 基本思想

    • BFGS方法属于拟牛顿法,它在每次迭代中都构造一个目标函数的二次模型: 其中是Hessian矩阵的一个近似。搜索方向通过最小化该模型得到:
    • 与牛顿法不同,BFGS不直接计算,而是通过一个低秩(rank-two)的更新公式来迭代地逼近它。
  2. 割线方程 (Secant Equation)

    • 更新的核心是满足割线方程: (或等价地 ) 。
    • 这个方程的意义是,要求新的Hessian近似能够准确地反映上一步的梯度变化。它是在方向上对这个关系的一个近似。
    • 为了使更新有意义(特别是保证正定),需要满足曲率条件 (curvature condition): 。当采用满足Wolfe条件的线搜索时,这个条件自然成立。
  3. BFGS 更新公式

    • BFGS更新是通过求解一个最小化问题导出的:在所有满足割线方程的对称矩阵中,寻找一个与当前Hessian近似“最接近”的矩阵作为。这里的“最接近”是通过一个加权的Frobenius范数来度量的。
    • 通常,算法直接更新Hessian的逆矩阵,因为这样计算搜索方向 只需要矩阵-向量乘法,避免了求解线性方程组,计算成本为
    • 的更新公式见上述(6.17),的更新公式见(6.19)。两者是互为对偶的(通过交换可以相互推导)。
  4. 算法框架 (Algorithm 6.1)

    1. 给定初始点,初始Hessian逆近似(通常是单位阵)。
    2. 迭代: 当时循环: a. 计算搜索方向: 。 b. 执行线搜索,找到满足Wolfe条件的步长,并更新 。 c. 计算 。 d. 使用公式(6.17)计算新的Hessian逆近似
  5. 重要性质

    • 正定性保持: 如果初始近似是正定的,并且线搜索满足,那么后续所有的都会保持正定。
    • 自校正能力 (Self-Correcting Property): BFGS方法具有出色的自校正能力。即使在某一步是一个很差的近似,只要线搜索足够精确,后续的更新会趋势性地修正这个近似,使其越来越准确。这是它比DFP等其他拟牛顿法更稳健的原因。
    • 超线性收敛: 在适当的条件下,BFGS方法具有Q-超线性收敛速度。

学习要点

  • 掌握BFGS方法作为拟牛顿法的核心定位:用梯度信息近似Hessian。
  • 理解割线方程和曲率条件的中心作用。
  • 熟记BFGS关于(逆Hessian)的更新公式(6.17)。
  • 了解BFGS算法的完整流程,特别是它与线搜索的结合。
  • 知道BFGS方法最重要的优点:保持正定性、自校正能力和超线性收敛。

实践应用

  • BFGS是求解中小型无约束优化问题的首选方法之一。
  • 对于大规模问题,其稠密的Hessian近似矩阵会带来巨大的内存开销。因此,限制内存的BFGS (L-BFGS) 方法被提出,它不存储完整的矩阵,而是只保存最近的个校正对来隐式地表示。L-BFGS是求解大规模无约束优化问题的标准算法。
  • 在约束优化中,BFGS也被用来近似拉格朗日函数的Hessian矩阵,是SQP等方法的核心组成部分。

关联知识点