最优化学习笔记(十九)——拟牛顿法(5)BFGS算法

一、BFGS算法的更新公式

    为了推导BFGS算法,需要用到对偶或者互补的概念,前边已经讨论过hessian矩阵逆矩阵的近似矩阵需要满足以下条件:

Hk+1Δg(i)=Δx(i)0ik

这是根据 Δg(i)=QΔx(i),0ik 推导出来的。基于这一条件可以构造hessian矩阵逆矩阵近似矩阵的更新公式,秩1算法和DFP算法都是据此而来。但是除了构造逆矩阵的近似矩阵以外,还可以直接构造矩阵 Q 的近似矩阵。令矩阵 Bk 表示在第 k 次迭代中关于矩阵Q的估计,则 Bk+1 应该满足
Δg(i)=Bk+1Δx(i),0ik

可以看出,这组方程与 Hk+1 应该满足的方程十分相似,唯一的区别在于 Δg(i) Δx(i) 互换。因此,给定关于 Hk 的更新公式,交换 Δg(i) Δx(i) 的位置,并将 Hk 替换为 Bk ,就可以得到 Bk 的更新公式。
    在BFGS算法中,矩阵 Bk 对应着DFP算法的 Hk .满足这两种结构的两类公式称为对偶或互补的。
    已知DFP算法中关于 Hk ,即hessian矩阵逆矩阵的近似矩阵的更新公式为:
HDFPk+1=Hk+Δx(k)Δx(k)TΔx(k)TΔg(k)HkΔg(k)Δg(k)THkΔg(k)HkΔg(k)T

利用互补概念,可以得到 Bk ,即hessian矩阵的近似矩阵为:
Bk+1=Bk+Δg(k)Δg(k)TΔg(k)TΔx(k)BkΔx(k)Δx(k)TBkΔx(k)BkΔx(k)T

为了获得hessian矩阵逆矩阵的近似矩阵的更新公式,只需对矩阵 Bk+1 求逆即可。

二、谢尔曼——莫里森公式

    
引理 如果矩阵 A 非奇异, u v 是列向量, 满足 1+vTA1u0 , 那么 A+uvT 非奇异,其逆矩阵可以用 A1 表示,如下:

(A+uvT)1=A1(A1u)(vTA1)1+vTA1u

对应 Bk+1 应用2次引理, 可得:
HBFGSk+1=Hk+(1+Δg(k)THkΔg(k)Δg(k)TΔx(k))Δx(k)Δx(k)TΔx(k)TΔg(k)HkΔg(k)Δx(k)T+(HkΔg(k)Δx(k)T)TΔg(k)TΔx(k)

这就是BFGS算法中关于 Bk 的更新公式。BFGS算法保持了拟牛顿法的一切性质,包括共轭方向的性质,也能够使得近似矩阵一直保持正定。
    当迭代过程中一维搜索的精度不够高时,BFGS算法仍然比较稳健。这一性质有助于将计算资源从追求高精度的一维搜索中释放出来。就效率而言,BFGS算法要远超DFP算法。

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值