第22章 最小二乘问题 2 2
1 算法 最小二乘问题可用下式表达:
)(21)(21)(min222iiRxxFxFxfn 此类问题在实际应用中很常见,特别是进行数据拟合、非线性参数估计时
最小二乘问题的常见解法有Gauss-Newton 法和Levenberg-Marquardt 法
1. Gauss-Newton 法 该法通过在每一次迭代中求解下列线性最小二乘问题来获得搜索方向kd
22)()(minkkkRxxFdxJn 搜索方向kd 可以用于一维搜索,以保证每一次迭代都使函数f(x)减小
图22-1 演示了采用Gauss-Newton 法求解Rosenbrock 函数最小化问题的路径
该法只用了48 次迭代即完成计算
Gauss-Newton 法 有 时 会 出 现 矩 阵 求 逆 的 困 难 或 出 现 假 收 敛 的 情 况
用Levenberg-Marquart 法可以解决此问题
图 22-1 Guass-Newton 法的搜索路径 2. Levenberg-Marquart 法(又称阻尼最小二乘法) 该法用下式求搜索方向: ()()())()(kkkkTkxFxJdIxJxJ 式中k 为阻尼因子,它可以控制kd 的大小和方向
当k =0 时,即为Gauss-Newton 法
当k时, 趋于零向量,即为最速下降法
因此,只要给一个足够大的)()(,kkkkxFdxF就始终为 真
因此,即使是遇到影响Gauss-Newton 法有效性的病态二次项,也可以通过阻尼因子k 来进行控制
因此,Levenberg-Marquart 法给出的是介于Gauss-Newton 法和最速下降法之间的搜索 方向
图22-2 是该法的演示,它用了90 次迭代运算,介于Gauss-Newton 法的48 次和最速下降法的