知识点概述
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}
详细解释
-
基本思想
- BFGS方法属于拟牛顿法,它在每次迭代中都构造一个目标函数的二次模型: 其中是Hessian矩阵的一个近似。搜索方向通过最小化该模型得到:。
- 与牛顿法不同,BFGS不直接计算,而是通过一个低秩(rank-two)的更新公式来迭代地逼近它。
-
割线方程 (Secant Equation)
- 更新的核心是满足割线方程: (或等价地 ) 。
- 这个方程的意义是,要求新的Hessian近似能够准确地反映上一步的梯度变化。它是在方向上对这个关系的一个近似。
- 为了使更新有意义(特别是保证正定),需要满足曲率条件 (curvature condition): 。当采用满足Wolfe条件的线搜索时,这个条件自然成立。
-
BFGS 更新公式
- BFGS更新是通过求解一个最小化问题导出的:在所有满足割线方程的对称矩阵中,寻找一个与当前Hessian近似“最接近”的矩阵作为。这里的“最接近”是通过一个加权的Frobenius范数来度量的。
- 通常,算法直接更新Hessian的逆矩阵,因为这样计算搜索方向 只需要矩阵-向量乘法,避免了求解线性方程组,计算成本为。
- 的更新公式见上述(6.17),的更新公式见(6.19)。两者是互为对偶的(通过交换和可以相互推导)。
-
算法框架 (Algorithm 6.1)
- 给定初始点,初始Hessian逆近似(通常是单位阵)。
- 迭代: 当时循环: a. 计算搜索方向: 。 b. 执行线搜索,找到满足Wolfe条件的步长,并更新 。 c. 计算 和 。 d. 使用公式(6.17)计算新的Hessian逆近似。
-
重要性质
- 正定性保持: 如果初始近似是正定的,并且线搜索满足,那么后续所有的都会保持正定。
- 自校正能力 (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等方法的核心组成部分。
关联知识点
- 前置知识: 005-概念-优化算法概述, 008-理论-收敛速度
- 后续知识: 016-方法-SR1方法, 017-概念-Broyden族, 019-方法-限制内存的拟牛顿法