修正牛顿法
为了发挥牛顿法的优势, 人们提出了许多修正牛顿法。
1.阻尼牛顿法
典型的改进是在基本牛顿法中加入线搜索技术, 及求步长$\alpha_k$, 使得
$f(x_k+\alpha_kd_k)=min_{\alpha>=0}f(x_k+\alpha d_k)$
且令 $x_{k+1}=x_{k}+\alpha_kd_k$
这种方法通常称为阻尼牛顿法, 这样当$G_k$均为正定时可以得到整体收敛性。
2. Goldstein-Price修正法
牛顿法面临的另一个主要困难是$G_k$不正定, 在这种情况下, 下降搜索方向很难获得。 为克服这一困难, 人们提出了若干修正措施。
在1967年Goldstein和price提出如下修正法:当$G_k$不正定时, 采用最速下降方向。 如果将这种处理方法与夹角辨别准则结合起来, 便得到如下修正公式:
$d_k=d_k^N, 如果cos(d_k^N, g_k)>=\ent, -g_k$
其中$\eta \in (0, 1)$为常数。这样的搜索方向中满足
$cos(d_k, -g_k)>=\eta$.
3. Goldfeld修正法
1966年Goldfeld等提出了另外一种修正法。 这种算法在二阶导数矩阵不正定时不是用最速下降方向代替牛顿方向, 而是将牛顿方向修改成下降方向。即若$G_k$正定, 则$d_k=d_k^N$; 否则令$d_k=-B_k^{-1}g_k$, 其中$B_k=G_k+E_k$充分正定, $E_k$为修正阵。
要建立上述修正法的整体收敛性, 修正阵$E_k$必须满足下述条件: 当${||G_k||}$有界时, 矩阵序列${B_k}$的条件数有界, 也就是存在参数$C>0$使得对任意$k$有
$cond(B_k)=||B_k||||B_k^{-1}||<=C$
4. Cholseky 分解法
在Goldfeld修正法的基础上, 1974年Gill和Murray用Cholesky分解法来确定$E_k$.
5. 信赖域牛顿法
把信赖域技术与基本牛顿法结合起来同样能获得整体收敛性, 且对二阶导数矩阵没有正定要求。
信赖域牛顿法中主要需求子问题
$min m_k(s)=f(x_k)=\nabla f(x_k)^Ts+\frac{1}{2}s^T\nabla^2_xf(x_k)s$
s.t $||s||<=\delta_k$