最优化是寻找可以使得函数取得最值的参数。
Levenberg Marquardt算法是一种改进的牛顿法,也是一种非线性最小二乘算法,利用梯度来求得函数的最值。同时该算法综合了牛顿法以及梯度法的相关特点,当参数u很小的时候,步长等于牛顿法的步长,而当u很大的时候,步长约等于梯度下降法的步长。
这种方法对于过参数化问题不敏感,能有效地处理冗余参数的问题,使得函数被“困”在局部极小值中的可能大大减少。LM算法在很多领域有十分广泛的应用。
算法步骤如下:
目的:对于函数x=f(p),给定f()与含有噪声的观测向量x,估计p
步骤:
1)取初始点p0,终止循环使用的常数e,计算e0=|| x-f(p0) ||,k=0,u=10^(-1)(必须是大于0),b=10(也可以是任意大于1的数)。
2)计算雅克比矩阵(Jacobian Matrix)Jk,计算Nk=Jk'*Jk+u*I,I是单位矩阵,构造相应的正规方程Nk*dk=Jk'*ek
3)对于正规方程,求解得到dk
a)如果|| x-f(pk+dk) || < ek,则令pk+1 = pk + dk,如果|| dk || < e,则停止迭代,输出结果;否则令uk+1 = uk / b,转到步骤2)。
b)如果|| x-f(pk+dk) || >= ek,则令uk+1 = uk*b,重新求解正规方程得到dk,返回步骤1)。