LM算法是一种迭代求函数极值的算法,理解该算法首先要明白牛顿法求极值与梯度法求极值,LM算法综合了这两种算法的特点。
前面已经介绍了牛顿法求极值,最后高斯牛顿法求极值的递推公式为:
其中
是多维向量的
矩阵,
是多维向量的一阶梯度。
梯度法求极值递推公式为:
其中
是梯度下降的步长,
是多维向量的一阶梯度。
算法公式为:
可以看出该公式在高斯牛顿公式
上加一个调节因子
,其中
是步长,
是单位矩阵(因为
是矩阵,所以这里要用矩阵形式表示步长)。
算法的特点:
当下降太快时使用较小的
,使整个公式接近高斯牛顿法;
当下降太慢时使用较大的
,使整个公式接近梯度法。