一、牛顿法存在的问题
在单变量的情况下,如果函数的二阶导数f′′<0,牛顿法就无法收敛到极小点。类似的,在多变量的情况下,目标函数的hessian矩阵F(x(k))非正定,牛顿法的搜索方向并不一定是目标函数值的下降方向。甚至在某些情况下F(x(k))>0, 牛顿法也不具有下降特性。比如,当初始点远离目标函数极小值点时,就有可能出现这种情况。
牛顿法虽然有上述缺陷,但是如果初始点离极小值点比较近,牛顿法将表现出相当好的收敛特性。
二、两个定理
首先选定目标函数为二次型函数f,牛顿法只需一次迭代就可以从任意点收敛到极小点。令目标函数如下:
它的梯度和hessian矩阵分别是:
g(x)=∇f(x)=Qx−bF(x)=Q
当 ∇f(x)=0时,可求得 f的极小值点
利用牛顿法迭代公式可得:
x(1)=x(0)−F(x(0))−1g(x(0))=x(0)−Q−1[Qx(0)−b]=Q−1b=x∗
下边直接给出定理1:
定理1 函数f三阶连续可微,点
上述定理证明略过。上述定理说明如果初始点离极小值点比较近,牛顿法将表现出相当好的收敛特性。否则,可能导致hessian矩阵为奇异矩阵,方法失效。
先给出定理2,然后再解决上述问题。
定理2 {x(k)}是为利用牛顿法求解目标函数f(x)极小点时得到的迭代点序列,如果F(x(k))>0且g(x(k))=∇f(x(k))≠0,那么从点x(k)到点x(k+1)的搜索方向
d(k)=−F(x(k))−1g(x(k))=x(k+1)−x(k)
是一个下降方向,即存在一个a¯>0,使得对于所有α∈(0,a¯), 都有
f(x(k)+αd(k))<f(x(k))
成立。
三、牛顿法的修正
根据定理2, 可以对牛顿法的修正如下:
x(k+1)=x(k)−αkF(x(k))−1g(x(k))
其中,
αk=argminα≥0f(x(k)−αF(x(k))−1g(x(k)))
也就是说,每一次的迭代都在方向 −F(x(k))−1g(x(k)))上开展一次一维搜索,由此确定每次搜索的步长。修正的牛顿法具有下降特性,当 g(x(k))≠0时,有:
f(x(k+1))<f(x(k))
四、修正后存在的问题
当目标函数维数比较大时,计算hessian矩阵需要计算量比较大,况且还要求解线性方程组F(x(k))d(k)=−g(x(k)),这个问题后续继续讨论。
牛顿法隐含的另外一个问题是hessian矩阵可能不是正定矩阵。