在讲解Newton法是我们提到了Newton法的一些缺点,其中一些缺点已经用修正Newton法解决,还有一些缺点,比如在每次迭代过程中我们都需要计算Hesse矩阵以及它的逆矩阵,这个过程所需的计算量非常大,尤其是在变量维度增大的时候,这将会抵消掉Newton法收敛速度快的优点。拟Newton法就是在保证Newton法迭代速度快的基础上,摆脱了Hesse矩阵的计算。
基本思想
考虑Newton法的迭代公式
那么问题的关键便是如何求解 Hk ,类似于求解最优化问题,我们可以使用一个矩阵序列 {Hk} 来逼近Hesse矩阵的逆 G−1k ,但是我们应该如何来确定这个矩阵序列?为了使 Hk 与 G−1k 近似,同时又要容易计算,我们需要对 Hk 附加条件。
(1)要求 {Hk} 中的每一个矩阵都是对称正定矩阵,这样可以保证迭代方向为下降方向。
注:公式(3)的搜索方向为 pk=−Hkgk ,为了使搜索方向为下降方向, pk 需要满足 gTkpk<0 ,即
(2)为了使 Hk 确实与 G−1k 近似,要求 {Hk} 必须满足拟Newton条件
推导:假设目标函数 f(x) 有连续二阶偏导数,我们可以在目标函数 f(x) 在 xk+1 处做Taylor展开,得到
(3)为了易于计算,我们可以使用迭代公式
Ek 可以有确定公式来计算,不同的 Ek 对应不同的拟Newton算法,但是 Ek 必须满足拟Newton条件,即
通过以上分析,我们可以得到拟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+1−gk,sk=xk+1−xk
(4)判断H终止准则是够满足:满足,则输出 xk+1 ;否则,转(5)
(5)计算 Hk+1=Hk+Ek ;置 k=k+1 ,转(2)
DFP算法
DFP算法是无约束最优化方法中最有效的方法之一,最初由Davidon提出来,之后Fletcher和Powell对Davidon方法做了改进,才成了DFP算法。
公式推导
考虑如下的校正公式
令
算法
在计算过程中由于精度误差等问题,有可能会对 Hk 的正定性和共轭性有影响,最终造成算法失效,可以采取如下做法。在迭代 n+1 次后,重置初始点,然后开始新一轮的迭代。DFP算法描述如下。
已知:目标函数 f(x) 及其梯度 g(x) ,问题的维数n,H中值准则的终止限 ϵ1,ϵ2,ϵ3
(1)选定初始点 x0 ,计算计算 f0=f(x0),g0=g(x0)
(2)置 H0=I,p0=−g0,k=0
(3)做直线搜索,找到 xk+1 ,计算fk+1=f(xk+1),gk+1=g(xk+1)
(4)判断H终止准则是够满足:满足,则输出 xk+1 ;否则,转(5)
(5)若 k=n ,则置 x0=xk+1,f0=fk+1,g0=gk+1 ,转(2);否则转(6)
(6)计算yk=gk+1−gksk=xk+1−xkHk+1=Hk+sksTkstkyk−HkykyTkHkyTkHkykpk+1=−Hk+1gk+1,置 k=k+1 ,转(3)
DFP算法性质
下面给出两条DFP算法的性质,将不再给出证明。
性质1:在DFP算法中,若初始矩阵式对称正定的,则
Hk
每一个都是正定的。
性质2:设将DFP算法用于具有正定矩阵
Q
的二次函数。如果(i)初始矩阵
BFGS算法
BFGS算法是目前为止所公认的最好的拟Newton算法,由Broyden,Fletcher,Goldfarb和Shanno等人提出。校正公式为
Broyden算法族
拟Newton算法是Newton算法的推广,具有良好的性质。拟Newton法是一族算法,其中最优实用价值的几个算法包含在Broyden算法族中,其校正公式为
Broyden算法族,当 β≥0 且选取的 H0 是对称正定矩阵时,矩阵序列 {Hk} 中的每一个都是正定的,即每一次迭代的搜索方向都是下降方向。