注意到关于LM法网上大部份资料内容比较混乱,主要是因为LM法是可以从两个不同的视角看的。一种是看作介于高斯牛顿和梯度下降法之间的一种算法,另一种是作为一种信赖域的算法来看,而两种视角下虽然最后结论比较相似,但公式推导的思路差别会比较大。
从历史上讲,LM法最初作为高斯牛顿法的改良而被提出,随后才有了信赖域法上应用。这里先从高斯牛顿法/梯度下降法混合的视角下来进行推导。
基础
先来回顾一下高斯牛顿法的几个关键点(可参照非线性优化整理-2.高斯-牛顿法)
高斯牛顿法的迭代公式为
xn+1=xn−[JTfJf]−1JTff(xn) x n + 1 = x n − [ J f T J f ] − 1 J f T f ( x n )
这是根据目标函数 F(x) F ( x ) 按以下二阶近似所得到的:
F(x+h)≈F(x)+∇F(x)h+12hTHFh≈F(x)+JTffh+12hTJTfJfh F ( x + h ) ≈ F ( x ) + ∇ F ( x ) h + 1 2 h T H F h ≈ F ( x ) + J f T f h + 1 2 h T J f T J f h
我们可以定义以该种方式近似 F(x+h) F ( x + h ) 的结果为 L(h) L ( h )
L(h)≡F(x)+JTffh+12hTJTfJfh L ( h ) ≡ F ( x ) + J f T f h + 1 2 h T J f T J f h
LM法
高斯牛顿法具有收敛快速但对初始点位置敏感的特点,梯度下降法则相反。
而LM法,也称作阻尼最小二乘法(Damped Least-squares),则结合了二者的特点,引入了阻尼因子 μ μ 来调节算法的特性。
原始版LM法的迭代公式为
xn+1=xn−[JTfJf+μI]−1JTff(xn)