Newton’s method
牛顿法是求解无约束优化问题最古老的方法之一,到目前为止,它衍生出了不少其他的优化算法。那么在了解那些在牛顿法之上改进而得的算法之前,我们首先要了解一下基本牛顿法的思想。首先,牛顿法有两个应用,一个是求方程的根,一个是最优化。求方程的根是基于 f(x)=0 ,而最优化这是基于 f′(0)=0 .
牛顿法的基本思想
牛顿法的基本思想是利用目标函数的二次Taylor展开,并将其极小化。设
f(x)
是二次可微实函数,
xk∈Rn
,Hessen矩阵
∇2f(xk)
正定,我们在
xk
附近用二次Taylor展开近似
f
。
其中,
ε=x−xk
,
q(k)
为
f(x)
的二次近似。当
ε→0
(对上式左右两边关于
ε
求导),上式等价于:
∇f(xk)T+∇2f(xk)ε=0
求解得到:
xk+1=xk−[∇2f(xk)]−1∇f(xk)
这就是牛顿迭代公式。
在这个公式中,步长因子
αk=1
,令
Gk=∇2f(xk)
,
gk=∇f(xk)
,上式可以写为:
xk+1=xk−G−1kgk
牛顿法的另一种视角
一个很有意思的观点是认为牛顿法可以看成在椭圆范数
‖.‖Gk
下的最速下降法。
f(xk+ε)≈f(xk)+gTkε
设
εk
是极小化问题
minε∈RngTkε‖ε‖
的解,它的值依赖于所取的范数。当采用
l2
范数时,
εk=−gk
,即最速下降法;当采用椭圆范数
‖.‖Gk
时,
εk=−G−1kgk
,即牛顿法。
牛顿法的收敛性
牛顿收敛定理:
设
f∈C(2)
,
xk
充分靠近
x∗
,
∇f(x∗)=0
,如果
∇2f(x∗)
正定,且Hesse矩阵
G(x)
满足Lipschitz条件,即存在
β>0
,使对于所有
i,j
,有
|Gij(x)−Gij(y)|≤β‖x−y‖
其中
Gij(x)
是Hesse矩阵G(x)的(i,j)元素。对于一切k,牛顿迭代法有定义,且所得序列
xk
收敛到
x∗
。
证明:
设
ϵk=xk−x∗
,由Taylor公式
g(x∗)=g(xk+ϵ)=gk+Gkϵ+O(‖ϵ‖2)
令
ϵ=−ϵk
0=g(x∗)=gk−Gkϵk+O(‖ϵk‖2)
由于上面的假设条件,故可以设
xk
在
x∗
的领域中,且第k次牛顿迭代存在,用
G−1k
乘上等式两边得:
0=G−1kgk−ϵk+O(‖ϵk‖2)=−εk−ϵk+O(‖εk‖2)=−ϵk+1+O(‖εk‖2)
由O(.)的定义知,存在常数C使得:
‖ϵk+1‖≤C‖ϵk‖2
若
xk∈{x|‖ϵ‖≤λ/C,λ∈(0,1)}
,则有
‖ϵk+1‖≤λ‖ϵk‖
由归纳法,迭代对所有k有定义,且
‖ϵ‖→0
。因此迭代收敛,并且收敛速度是二阶的。
带步长因子的牛顿法
当初始解远离最优解时,
Gk
不一定正定,牛顿方向不一定是下降方向,其收敛性不能保证。说明恒取步长因子为1的牛顿法是不合适的,应该在牛顿法中采用某种一维搜索。注意,当且仅当步长因子
{αk}
取1时,牛顿法才是二阶收敛的。
dk=−G−1kgk
xk+1=xk+αkdk
step1 选取初始数据,取初始点
x0
,终止误差
ε>0
,令k:=0
step2 计算
gk
,如果
‖gk‖<ε
,停止迭代,输出答案,否则进行step3
step3 解方程组构造牛顿方向,即解
Gkd=−gk
,求出
dk
step4 进行一维搜索,求
αk
使得
f(xk+αkdk)=minα≥0f(xk+αdk)
xk+1=xk+αkdk,k:=k+1
转step2
牛顿法的主要局限在于,他是一种基于梯度的方法,并且,他假定Hesse矩阵正定。
reference:计算方法丛书,最优化理论与方法,袁亚湘,孙文瑜