上节末尾谈到牛顿法中隐含的另外一个问题在于hessian矩阵可能不是正定的。因此,d(k)=−F(x(k))−1g(x(k))可能不会是下降方向。Levenberg-Marquardt修正可以解决这个问题,保证每次产生的方向是下降方向,修正后的迭代公式是:
x(k+1)=x(k)−(F(x(k))+μkI)−1g(x(k))
其中, μk≥0。
下面对此进行说明。 F为对称矩阵,并不要求是正定的。 F的特征值为 λ1,λ2,…,λn,分别对应特征向量 v1,v2,…,vn.特征值全部为实数,但不要求全部为正数。对 F进行简单的修正,得到矩阵 G=F+μI,其中, μ≥0。可知矩阵 G的特征值为: λ1+μ,λ2+μ,…,λn+μ,且满足:
Gvi=(F+μI)vi=Fvi+μIvi=λivi+μvi=(λi+μ)vi
这说明只要 μ足够大,就可以保证 G的特征值都为正数,也就是说 G为正定矩阵。同理,如果Levenberg-Marquardt中的 μk足够大的话,总能保证搜索方向 d(k)=−F(x(k))−1g(x(k))是一个下降方向。引入一个搜索步长 αk,可以得到新的迭代公式:
x(k+1)=x(k)−αk(F(x(k))+μkI)−1g(x(k))
在实际应用中,一开始可以选择 μk较小的值,然后缓慢增加,直到出现下降特性。