Levenberg Marquardt算法(LM算法)

最优化是寻找可以使得函数取得最值的参数。


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)。



  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值