拟 Newton法

在讲解Newton法是我们提到了Newton法的一些缺点,其中一些缺点已经用修正Newton法解决,还有一些缺点,比如在每次迭代过程中我们都需要计算Hesse矩阵以及它的逆矩阵,这个过程所需的计算量非常大,尤其是在变量维度增大的时候,这将会抵消掉Newton法收敛速度快的优点。拟Newton法就是在保证Newton法迭代速度快的基础上,摆脱了Hesse矩阵的计算。

基本思想

考虑Newton法的迭代公式

xk+1=xkG1kgk(1)
其中 gk 为函数 f(x) 在点 xk 处的导数, Gk 为函数在点 xk 处的Hesse矩阵。在Newton法中 G1k 会消耗大量的计算量,我们想使用一个近似矩阵 Hk=H(xk) 来代替 Gk ,这样Newton迭代公式就变成了
xk+1=xkHkgk(2)
其中 Hkgk 便是第k次迭代的搜索方向,考虑更一般的迭代公式
xk+1=xktkHkgk(3)
其中 tk 为步长因子,可以通过直线搜索来确定。
那么问题的关键便是如何求解 Hk ,类似于求解最优化问题,我们可以使用一个矩阵序列 {Hk} 来逼近Hesse矩阵的逆 G1k ,但是我们应该如何来确定这个矩阵序列?为了使 Hk G1k 近似,同时又要容易计算,我们需要对 Hk 附加条件。
(1)要求 {Hk} 中的每一个矩阵都是对称正定矩阵,这样可以保证迭代方向为下降方向。
注:公式(3)的搜索方向为 pk=Hkgk ,为了使搜索方向为下降方向, pk 需要满足 gTkpk<0 ,即
gTkHkgk<0
Hk 为对称正定矩阵时,上式必然成立,此时的搜索方向一定为下降方向。
(2)为了使 Hk 确实与 G1k 近似,要求 {Hk} 必须满足拟Newton条件
Hk+1(gk+1gk)=xk+1xk(4)

推导:假设目标函数 f(x) 有连续二阶偏导数,我们可以在目标函数 f(x) xk+1 处做Taylor展开,得到
f(x)f(xk+1)+gTk+1(xxk+1)+12(xxk+1)TGk+1(xxk+1)(5)
对公式(5)求偏导数可得
g(x)gk+1+Gk+1(xxk+1)
x=xk 可以得到
g(xk)=gk+1+Gk+1(xkxk+1)
Gk+1 正定的时,可以得到
G1k+1(gk+1gk)xk+1xk
因为具有正定Hesse矩阵的函数在极小点附近可以用二次函数更好的近似,所以如果我们使 Hk+1 满足
H1k+1(gk+1gk)=xk+1xk(6)
那么至少在极小点附近, Hk+1 能更好的近似于 G1k+1 ,我们称上式为 拟Newton条件或者 拟Newton方程
(3)为了易于计算,我们可以使用迭代公式
Hk+1=Hk+Ek(7)
我们把上式称为校正公式, Ek 称为校正矩阵。
Ek 可以有确定公式来计算,不同的 Ek 对应不同的拟Newton算法,但是 Ek 必须满足拟Newton条件,即
(Hk+Ek)(yk+1yk)=(xk=1xk)
Ek(gk+1gk)=(xk+1xk)Hk(gk+1gk)(8)

通过以上分析,我们可以得到拟Newton算法的一般格式,如下。

已知:目标函数 f(x) 及其梯度 g(x) ,H中值准则的终止限 ϵ1ϵ2ϵ3
(1)选定初始点 x0 ;计算 f0=f(x0)g0=g(x0) ,选定初始对称正定矩阵 H0 (可以取 H0=I );置 k=0
(2)计算搜索方向 pk=Hkgk
(3)做直线搜索,得到 xk+1 ;计算 fk+1=f(xk+1)gk+1=g(xk+1)yk=gk+1gksk=xk+1xk
(4)判断H终止准则是够满足:满足,则输出 xk+1 ;否则,转(5)
(5)计算 Hk+1=Hk+Ek ;置 k=k+1 ,转(2)

DFP算法

DFP算法是无约束最优化方法中最有效的方法之一,最初由Davidon提出来,之后Fletcher和Powell对Davidon方法做了改进,才成了DFP算法。

公式推导

考虑如下的校正公式

Hk+1=Hk+αkukuTk+βkvkvTk(9)
其中 uk vk 是待定的n维向量, αk βk 是待定常数。校正矩阵是
Ek=αkukuTk+βkvkvTk
,所以必须满足公式(8)为简单起见,我们记 yk=gk+1yk sk=xk+1xk 。于是有
(αkukuTk+βkvkvTk)yk=skHkyk
αkukuTkyk+βkvkvTkyk=skHkyk
满足上式的 uk vk 有无穷多种取法,下面是其中一种。
αkukuTkyk=sk
βkvkvTkyk=Hkyk
由于 uTkyk vTkyk 为一个数量,不是向量,所以可以令
uk=sk
vk=Hkyk
可以得到
αk=1sTkyk
βk=1yTkHkyk
其中 Hk 为对称正定矩阵。将以上公式带入到公式(9)便可得到 DFP校正公式
Hk+1=Hk+sksTkstkykHkykyTkHkyTkHkyk

算法

在计算过程中由于精度误差等问题,有可能会对 Hk 的正定性和共轭性有影响,最终造成算法失效,可以采取如下做法。在迭代 n+1 次后,重置初始点,然后开始新一轮的迭代。DFP算法描述如下。

已知:目标函数 f(x) 及其梯度 g(x) ,问题的维数n,H中值准则的终止限 ϵ1ϵ2ϵ3
(1)选定初始点 x0 ,计算计算 f0=f(x0)g0=g(x0)
(2)置 H0=Ip0=g0k=0
(3)做直线搜索,找到 xk+1 ,计算

fk+1=f(xk+1)gk+1=g(xk+1)

(4)判断H终止准则是够满足:满足,则输出 xk+1 ;否则,转(5)
(5)若 k=n ,则置 x0=xk+1f0=fk+1g0=gk+1 ,转(2);否则转(6)
(6)计算
yk=gk+1gk
sk=xk+1xk
Hk+1=Hk+sksTkstkykHkykyTkHkyTkHkyk
pk+1=Hk+1gk+1
,置 k=k+1 ,转(3)

DFP算法性质

下面给出两条DFP算法的性质,将不再给出证明。
性质1:在DFP算法中,若初始矩阵式对称正定的,则 Hk 每一个都是正定的。
性质2:设将DFP算法用于具有正定矩阵 Q 的二次函数。如果(i)初始矩阵H0是对阵正定的(ii)迭代点是互异的,且搜索方向向量一次是 p0p1...pk(kn1) 则有

Hk+1Qpj=pj  j=01...k
pTiQpj=0  i,j=01...k(i>j)

BFGS算法

BFGS算法是目前为止所公认的最好的拟Newton算法,由Broyden,Fletcher,Goldfarb和Shanno等人提出。校正公式为

Hk+1=Hk+1sTkyk[(1+yTkHkyksTkyk)sksTkHkyksTkskyTkHk]

Broyden算法族

拟Newton算法是Newton算法的推广,具有良好的性质。拟Newton法是一族算法,其中最优实用价值的几个算法包含在Broyden算法族中,其校正公式为

Hk+1=Hk+sksTkyTkskHkykyTkHkyTkHkyk+β(yTksk)(yTkHkyk)wkwTk(10)
其中 wk=skyTkskHkykyTkHkyk 。公式中的 β 可以任取实数,每取一个实数,就对应一种拟Newton算法。当 β=0 时,便是DFP算法;当 β=1sTkyk 时,便是BFGS算法。
Broyden算法族,当 β0 且选取的 H0 是对称正定矩阵时,矩阵序列 {Hk} 中的每一个都是正定的,即每一次迭代的搜索方向都是下降方向。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值