列文伯格-马夸特法像是高斯牛顿法和梯度下降法的结合,它通过在高斯牛顿法的基础上添加一项阻尼项实现这一点
其中为非负实数。
当较小的时候,列文伯格-马夸特法更加接近高斯牛顿法,时就完全退化为高斯牛顿法;而当较大的时候,就更接近梯度下降法,当接近时,甚至可以直接用来近似代替。另外,原来只有半正定性的,加上阻尼项之后整体就是一个正定矩阵了。
参数当然不是一成不变的,而且还有很多种启发式的策略。这里介绍一种。
首先在开始时确定起始值和一个系数,每次迭代,将和分别作为阻尼参数进行计算迭代,有几种情况:
- 如果两次计算的结果都比当前点差,就将不断乘上并进行计算,直到找到一个迭代后比当前点好,更新到这个好的位置并令
- 如果用计算后的结果比当前点好,就更新到这个好的位置并令
- 如果用计算后的结果比当前点差,但是比当前好,就更新到这个好的位置并保持不变只要不断重复上述迭代过程直至收敛即可。