最小二乘问题可用下式表达:
\[\]
最小二乘问题的常用解法有Gauss-Newton法和Levenberg-Marquardt法。
Gauss-Newton法通过在每一次迭代中求解下列线性最小二乘问题来获得搜索方向dk。
\[\]
搜索方向dk可以用于一维搜索,以保证每一次迭代都使函数f(x)减小。
图10-1演示了采用Gauss-Newton法求解Rosenbrock函数最小化问题的路径。该法只用了48次迭代即完成计算。
Gauss-Newton法有时会出现矩阵求逆的困难或出现假收敛的情况。用Levenberg- Marquart法可以解决此问题。
\[\]
图10-1 Gauss-Newton法的搜索路径
Levenberg-Marquardt法用下式求搜索方向:
\[(J({x}_{k}{)}^{T}J(x)+{\lambda}_{k}I){d}_{k}=-J({x}_{k})F({x}_{k})\]
式中k为阻尼因子,它可以控制dk的大小和方向。当k=0时,即为Gauss-Newton法。当k→∞时,趋于零矢量,即为最速下降法。因此,只要给一个足够大的k,F(xk+dk)<F(xk)就始终为真。因此,即使是遇到影响Gauss-Newton法有效性的病态二次项,也可以通过阻尼因子k来进行控制。
因此,Levenberg-Marquart法给出的是介于Gauss-Newton法和最速下降法之间的搜索方向。图10-2是该法的演示,它用了90次迭代运算,介于Gauss-Newton法的48次和最速下降法的1000次之间。
图10-2 Levenberg-Marquart法的搜索路径