DFP 算法的推导 (Davidon–Fletcher–Powell Update)

1. 回顾与符号约定

拟牛顿法中,我们希望用一个矩阵来近似真实 Hessian 矩阵的逆。我们将这个逆 Hessian 近似矩阵记为

  • : 当前迭代的逆 Hessian 近似矩阵(用 表示 )。
  • (delta_k): 从当前点 到下一个点 步长向量。即
  • : 从当前点 到下一个点 梯度变化向量。即

2. 拟牛顿条件 (Quasi-Newton Condition)

这是所有拟牛顿方法的基础。它来源于对泰勒展开的近似,要求新的逆 Hessian 近似矩阵 满足:

解释:这个条件表示,当新的近似逆 Hessian 矩阵 作用在梯度变化 上时,应该得到实际的步长 。这是为了让 更好地模拟真实逆 Hessian 的行为。

3. 秩2校正 (Rank-2 Correction)

DFP 算法选择通过在当前近似矩阵 的基础上,添加两个简单的校正项(秩1矩阵)来得到 。这种形式被称为“秩2校正”:

解释

  • 我们希望 尽可能接近 ,所以不对 进行大幅度修改。
  • 是为了满足拟牛顿条件而添加的“修正项”,它们通常被设计成秩为1的矩阵,以确保计算的高效性和矩阵性质(如对称性、正定性)的保持。

4. 确定修正项

我们的目标是让 满足拟牛顿条件 。 将 代入条件中:

为了让这个等式成立,我们需要巧妙地设计

4.1 设计

DFP 中给出 ,并且 。 让我们验证这个 是否满足条件

解释:将 的表达式代入。

  • 是一个标量(向量点积)。
  • 矩阵乘法是结合的。所以 可以从括号中提取出来。

解释:矩阵乘法 可以看作 ,因为 是一个标量。

  • 由于 是一个非零标量(通常要求 以保持近似矩阵的正定性),它可以被约分。

结论 确实满足 直观作用 项是为了直接贡献出我们想要的 项。它是一个秩1矩阵。

4.2 设计

现在我们回到主要方程 。 我们已经设计了 使得 。 所以,代入后方程变为: 为了让等式成立,我们需要:

DFP中给出 。 让我们验证这个 是否满足条件 :

解释:将 的表达式代入。

  • 是一个标量。
  • 矩阵乘法结合律。

解释 是一个标量,可以被约分。

结论 确实满足 直观作用 项是为了“抵消” 这一项,从而确保整个 最终只剩下 。它也是一个秩1矩阵。

5. 最终 DFP 迭代公式

的表达式代回到 中,我们就得到了 DFP 算法的最终更新公式:

解释

  • 第一项 是旧的近似矩阵。
  • 第二项 项,它确保了更新后的矩阵将 映射到它自己。
  • 第三项 项,它“减去”了 作用在 上的部分,以保持拟牛顿条件。

6. 额外重要性质

DFP 算法被设计为不仅满足拟牛顿条件,还能保持近似矩阵的对称性正定性(如果初始矩阵 是正定对称的,并且 )。这对于优化算法的稳定收敛至关重要。