求局域最小值的方法 学习笔记(2)

拟牛顿法的提出以及拟牛顿条件

虽然牛顿法具有最速下降法所无法匹敌的下降的速度,但是有着几个非常明显的缺陷:
1. 若Hessian矩阵不是正定矩阵,则会出现搜索方向可能不是函数的下降方向,使得函数不降反升。
2. 若函数不存在二阶连续导数,则无法使用牛顿法求解
3. 计算Hessian矩阵较为繁琐

在此基础上,人们提出了拟牛顿法,核心思想是构造矩阵 A ( k ) A^{(k)} A(k),在每一步的迭代过程中都不断修改 A ( k ) A^{(k)} A(k),最终使之逼近海森矩阵的逆矩阵。在此基础上,每次迭代的方向为
d ⃗ k = − A ( k ) ∇ f ( x k ) \vec{d}_{k}=-A^{(k)}\nabla f(x_k) d k=A(k)f(xk)
A ( k ) = E A^{(k)}=E A(k)=E时,迭代搜索的方向就是梯度下降法的方向;当 A ( k ) = H − 1 A^{(k)}=H^{-1} A(k)=H1时,迭代搜索方向就是牛顿法的方向
构造 A ( k ) A^{(k)} A(k)时,应该具有如下性质:

  1. 正定性:函数下降方向为 − ∇ f ( x ) -\nabla f(x) f(x),为使搜索方向也为下降方向,应有 − d ⃗ T ∇ f ( x ) = ∇ f ( x ) T A ( k ) ∇ f ( x ) > 0 -\vec{d}^T\nabla f(x)=\nabla f(x)^TA^{(k)}\nabla f(x)>0 d Tf(x)=f(x)TA(k)f(x)>0 A ( k ) A^{(k)} A(k)具有正定性。
  2. 收敛于 H − 1 H^{-1} H1 H H H:为使得该方法具有牛顿法的下降速度,需使得 A ( k ) A^{(k)} A(k)收敛于 H H H或其逆矩阵
  3. 计算方便。

接下来分析如何构造 A ( k ) A^{(k)} A(k)
f ( x ) f(x) f(x)展开,有:
f ( x k + x ) = f ( x k ) + x T ∇ f ( x k ) + 1 2 x T H x f(x_k+x)=f(x_k)+x^T\nabla f(x_k)+\frac{1}{2}x^THx f(xk+x)=f(xk)+xTf(xk)+21xTHx
那么在 x k + 1 x_{k+1} xk+1处,其梯度满足:
∇ f ( x k + 1 ) = ∇ f ( x k ) + H k ( Δ x k ) \nabla f(x_{k+1})=\nabla f(x_{k})+H_{k}(\Delta x_k) f(xk+1)=f(xk)+Hk(Δxk)
∇ f ( x k + 1 ) = g ( x k + 1 ) , ∇ f ( x k ) = g ( x k ) \nabla f(x_{k+1})=g(x_{k+1}), \nabla f(x_{k})=g(x_{k}) f(xk+1)=g(xk+1),f(xk)=g(xk),有:
Δ g k = H k Δ x k Δ x k = H k − 1 Δ g k \Delta g_k=H_k \Delta x_k \\ \Delta x_k=H_k^{-1} \Delta g_k Δgk=HkΔxkΔxk=Hk1Δgk
选用下面的式子做为逼近条件,即用 A ( k + 1 ) A^{(k+1)} A(k+1)逼近 H k − 1 H^{-1}_k Hk1,得到 A ( k + 1 ) A^{(k+1)} A(k+1)满足的条件:
Δ x k = A ( k + 1 ) Δ g k \Delta x_k=A^{(k+1)} \Delta g_k Δxk=A(k+1)Δgk
上式称为拟牛顿条件。

DFP法

A ( k + 1 ) = A ( k ) + E ( k ) A^{(k+1)}=A^{(k)}+E^{(k)} A(k+1)=A(k)+E(k),即认为 A ( k + 1 ) A^{(k+1)} A(k+1)是由上一个 E ( k ) E^{(k)} E(k)加上修正矩阵 Δ ( k ) \Delta^{(k)} Δ(k)得来,那么所求改为修正矩阵。带入拟牛顿条件有:
E ( k ) Δ g k = Δ x k − A ( k ) Δ g k E^{(k)} \Delta g_k=\Delta x_k-A^{(k)} \Delta g_k E(k)Δgk=ΔxkA(k)Δgk
由于需要 E ( k ) E^{(k)} E(k)对称,故设 E ( k ) = α u u T + β v v T , u = Δ x , v = A ( k ) Δ g k . E^{(k)}=\alpha uu^T+\beta vv^T,u=\Delta x,v=A^{(k)} \Delta g_k. E(k)=αuuT+βvvT,u=Δx,v=A(k)Δgk.
右乘 Δ g k \Delta g_k Δgk,有:
E ( k ) Δ g k = α u ( u T Δ g k ) + β v ( v T Δ g k ) E^{(k)} \Delta g_k=\alpha u(u^T\Delta g_k)+\beta v(v^T\Delta g_k) E(k)Δgk=αu(uTΔgk)+βv(vTΔgk)
结合拟牛顿条件,不难得到:
α = 1 ( u T Δ g k ) , β = − 1 ( v T Δ g k ) \alpha=\frac{1}{(u^T\Delta g_k)},\beta=-\frac{1}{(v^T\Delta g_k)} α=(uTΔgk)1,β=(vTΔgk)1
带入即得 E ( k ) E^{(k)} E(k),进一步得 A ( k + 1 ) A^{(k+1)} A(k+1):
A ( k + 1 ) = A ( k ) + Δ x Δ x T ( Δ x T Δ g k ) − A ( k ) Δ g k Δ g k T A ( k ) T ( Δ g k T A ( k ) Δ g k ) A^{(k+1)}=A^{(k)}+\frac{\Delta x \Delta x^T}{(\Delta x^T\Delta g_k)}-\frac{A^{(k)} \Delta g_k \Delta g_k^TA^{(k)T} } {(\Delta g_k^TA^{(k)} \Delta g_k)} A(k+1)=A(k)+(ΔxTΔgk)ΔxΔxT(ΔgkTA(k)Δgk)A(k)ΔgkΔgkTA(k)T
若我们初始 A 0 A^0 A0取单位矩阵,其也满足对称以及正定性,而且迭代时第一步就是最速下降法。

BFGS法

若用 A ( k + 1 ) A^{(k+1)} A(k+1)逼近 H k H_k Hk,得到 A ( k + 1 ) A^{(k+1)} A(k+1)满足的条件:
Δ x k = A ( k + 1 ) Δ g k \Delta x_k=A^{(k+1)} \Delta g_k Δxk=A(k+1)Δgk
仿照上面推导过程可以的到:
A ( k + 1 ) = A ( k ) + Δ g Δ g T ( Δ x T Δ g k ) − A ( k ) Δ x k Δ x k T A ( k ) T ( Δ x k T A ( k ) Δ x k ) A^{(k+1)}=A^{(k)}+\frac{\Delta g \Delta g^T}{(\Delta x^T\Delta g_k)}-\frac{A^{(k)} \Delta x_k \Delta x_k^TA^{(k)T} } {(\Delta x_k^TA^{(k)} \Delta x_k)} A(k+1)=A(k)+(ΔxTΔgk)ΔgΔgT(ΔxkTA(k)Δxk)A(k)ΔxkΔxkTA(k)T
同理取 A 0 A^0 A0为单位矩阵,第一步为最速下降法。

结果

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值