Uploaded by Licheng Wu

最优化公式推导

advertisement
DFP(Davidon-Fletcher-Powell)和 BFGS(Broyden-Fletcher-Goldfarb-Shanno)都是拟牛
顿方法的一种,用于解决非线性最优化问题。它们的目标是逼近问题的 Hessian 矩阵(二阶
导数矩阵)而不直接计算它,从而减少计算成本。这两种方法在更新拟牛顿矩阵时使用不同
的策略,以下是它们的推导。
### DFP 算法(Davidon-Fletcher-Powell)
DFP 算法的主要思想是使用一个对称矩阵来近似 Hessian 矩阵的逆。具体来说,DFP 算法的
迭代公式如下:
1.
2.
3.
4.
5.
6.
初始化一个正定对称矩阵 H(通常取单位矩阵 I)
。
对于每一次迭代,计算搜索方向 p,例如使用梯度下降法或共轭梯度法。
执行一次线搜索,找到一个合适的步长 α,以使目标函数减小。
计算新的参数向量 x_{k+1} = x_k + α * p。
计算向量 s = x_{k+1} - x_k 和 y = ∇f(x_{k+1}) - ∇f(x_k)。
使用 DFP 更新公式更新 Hessian 逆估计:
H_{k+1} = H_k + (s * s^T) / (s^T * y) - (H_k * y * y^T * H_k) / (y^T * H_k * y)
7. 重复步骤 2-6,直到满足终止条件。
这个公式中,H_k 代表第 k 次迭代时的拟牛顿矩阵的估计。
### BFGS 算法(Broyden-Fletcher-Goldfarb-Shanno)
BFGS 算法也使用一个对称矩阵来近似 Hessian 矩阵的逆,但它使用不同的更新策略。BFGS
的迭代公式如下:
1.
2.
3.
4.
5.
6.
初始化一个正定对称矩阵 H(通常取单位矩阵 I)
。
对于每一次迭代,计算搜索方向 p,例如使用梯度下降法或共轭梯度法。
执行一次线搜索,找到一个合适的步长 α,以使目标函数减小。
计算新的参数向量 x_{k+1} = x_k + α * p。
计算向量 s = x_{k+1} - x_k 和 y = ∇f(x_{k+1}) - ∇f(x_k)。
使用 BFGS 更新公式更新 Hessian 逆估计:
H_{k+1} = H_k + [(s * s^T) / (s^T * y)] - [(H_k * y * y^T * H_k) / (y^T * H_k * y)]
7. 重复步骤 2-6,直到满足终止条件。
这个公式中,H_k 代表第 k 次迭代时的拟牛顿矩阵的估计。
这些迭代公式使 DFP 和 BFGS 方法不断更新拟牛顿矩阵的估计,以更好地逼近 Hessian 矩阵
的逆,从而实现非线性优化。需要注意的是,这些公式只是大致的概念,实际的实现可能会
有一些细微的差异。
Download