什么是最优化?
Levenberg-Marquardt算法是最优化算法中的一种。最优化是寻找使得函数值最小的参数向量。它的应用领域非常广泛,如:经济学、管理优化、网络分析 、最优设计、机械或电子设计等等。

根据求导数的方法,可分为2大类。第一类,若f具有解析函数形式,知道x后求导数速度快。第二类,使用数值差分来求导数。根据使用模型不同,分为非约束最优化约束最优化最小二乘最优化

什么是Levenberg-Marquardt算法?
它是使用最广泛的非线性最小二乘算法,中文为列文伯格-马夸尔特法。它是利用梯度求最大(小)值的算法,形象的说,属于“爬山”法的一种。它同时具有梯度法牛顿法的优点。当λ很小时,步长等于牛顿法步长,当λ很大时,步长约等于梯度下降法的步长。图1显示了算法从起点,根据函数梯度信息,不断爬升直到最高点(最大值)的迭代过程。共进行了12步。(备注:图1中绿色线条为迭代过程)。
图1中,算法从山脚开始不断迭代。可以看到,它的寻优速度是比较快的,在山腰部分直接利用梯度大幅度提升(参见后文例子程序中lamda较小时),快到山顶时经过几次尝试(lamda较大时),最后达到顶峰(最大值点),算法终止。
下面给出算法流程:
LM算法的实现并不算难,它的关键是用模型函数 f 对待估参数向量p在其领域内做线性近似,忽略掉二阶以上的导数项,从而转化为线性最小二乘问题,它具有收敛速度快等优点。LM算法属于一种“信赖域法”,所谓的信赖域法,即是:在最优化算法中,都是要求一个函数的极小值,每一步迭代中,都要求目标函数值是下降的,而信赖域法,顾名思义,就是从初始点开始,先假设一个可以信赖的最大位移s,然后在以当前点为中心,以s为半径的区域内,通过寻找目标函数的一个近似函数(二次的)的最优点,来求解得到真正的位移。在得到了位移之后,再计算目标函数值,如果其使目标函数值的下降满足了一定条件,那么就说明这个位移是可靠的,则继续按此规则迭代计算下去;如果其不能使目标函数值的下降满足一定的条件,则应减小信赖域的范围,再重新求解。
LM算法需要对每一个待估参数求偏导,所以,如果你的拟合函数 f 非常复杂,或者待估参数相当地多,那么可能不适合使用LM算法,而可以选择Powell算法(Powell算法不需要求导)。
伪代码:
相关源码可以在网址http://www.ics.forth.gr/%CB%9Clourakis/levmar上获得。
为了方便理解,这里给出相应的算法原理和实现:
链接:http://pan.baidu.com/s/1pJp0BMj 密码:1u7g
有什么问题可以咨询我。

Levenberg-Marquardt(列文伯格-马夸尔特)算法相关推荐

  1. 高斯牛顿(Gauss Newton)、列文伯格-马夸尔特(Levenberg-Marquardt)最优化算法与VSLAM

    转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/74973347 在VSLAM优化部分,我们多次谈到,构建一个关于待优化位姿的误 ...

  2. MATLAB--列文伯格LM优化算法

    1.LM函数定义 输入参数:误差函数,需要优化的形参,初值 function last_parameters = LM(fr,p_sym,parameters) % jacobin matrix Jr ...

  3. 《Social Network》中扎克伯格所做的美女照片对比选美的实现原理

    看了<Social Network>,在开场不久后,扎克伯格在哈佛宿舍#1-2-3-4-5---,侵入并获取所有人的共享照片,然后做出了一个"[color=blue]两幅美女照片 ...

  4. 硅谷来信2,156,扎克伯格的5宗个人恩怨

    任何一个明星企业,都离不开一个强势的创始人,这个创始人也就成为了企业的名片,而他的基因也会成为公司的基因,他的特点也会成为公司的特点,无论好坏,他做事的风格也会影响整个公司的人.在这些著名企业的创始人 ...

  5. 马化腾和扎克伯格,为什么抢着押注元宇宙?

    一个"元宇宙"的幽灵,正在互联网上空飘荡. 2021年3月,被称为"元宇宙第一股"的美股游戏公司Roblox,上市后从最初40亿美元估值,飙升到近500亿美元市 ...

  6. 花椒直播列港台为国家被约谈;苏宁云商更名为“苏宁易购”;扎克伯格资产缩水33亿美元丨价值早报

    第[833]期早报由[周一]赞助播出 01 今日头条 Facebook调整动态新闻管理方式,扎克伯格资产缩水33亿美元 1月14日消息,据网易科技报道,自从脸书(Facebook)改变动态新闻管理方式 ...

  7. Facebook扎克伯格成功六大要素:执行力在列

    Facebook投资人皮特•希尔(Peter Thiel)在被问到华尔街能否接受20出头的年青人马克•扎克伯格(Mark Zuckerberg)担任首席执行官时表示:"我们会等他超过25岁时 ...

  8. Levenberg–Marquardt algorithm

    Levenberg-Marquardt又称莱文伯格-马夸特方法(Levenberg–Marquardt algorithm)能提供数非线性最小化(局部最小)的数值解. 此算法能借由执行时修改参数达到结 ...

  9. 从莱布尼茨到扎克伯格:算法和它许诺的美丽新世界

    扎克伯格其实继承了一个长久的政治传统,但他自己并不知道.过去两百年,西方一直有一个幻想,长长久久,无人能撼动.在这个梦想序列中,我们把废物政治家扔到一边,代之以工程师--用计算尺来统治.血腥的法国大革 ...

最新文章

  1. Melkman's Algorithm
  2. 自定义控件添加自定义属性问题
  3. Win10如何找出占用硬盘空间大的文件及怎么删除
  4. 关于 Java 中 finally 语句块的深度辨析
  5. 文本分类的一种对抗训练方法
  6. 清除Docker中所有为<none>的镜像(虚悬镜像)
  7. 《软件开发性能优化系列》之死锁
  8. 系统批量运维管理器Fabric详解
  9. ubuntu16.04中安装MESA 17.3.3
  10. 3.Linux性能诊断 --- 快速检查单(10个命令) 监控
  11. 190303每日一句
  12. oracle卸载步骤图解,Oracle详细卸载步骤
  13. 博微三维技术篇【八】——智能CAD识别
  14. OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)
  15. Default changeset implementation allows only one operation
  16. Windows安全配置技术(转)
  17. 解决图像目标检测两框重叠问题
  18. 印象笔记桌面便签关闭后找回
  19. 获取车辆VIN等OBD信息
  20. 多线程模拟实现银行家算法

热门文章

  1. 学计算机安徽有什么好大学,合肥工业大学,安徽大学,哪个学校计算机研究生比较好...
  2. 启动马达接线实物图_星三角降压启动实物接线图.jpg
  3. Spring Data MongoDB 学习和使用
  4. 如何摆脱wmpscfgs.exe病毒,《读者贡献指南》
  5. 阿里、蚂蚁金服面试--幂等性实现
  6. 转 一篇文章从了解到入门shell
  7. java获取图片像素点RPG值并计算不同颜色的占比
  8. C语言API接口开发,腾讯云服务器 API C语言接口
  9. 【新人】C++小白刷题系列0009进制回文数
  10. android datepicker控件,android之datepicker控件的用法