应用领域

LM 算法用于解决非线性最小二乘问题,问题定义如下:

LM 算法有两种推导和实现,一种是算法发明者使用的 阻尼法,一种是后来学者补充的 置信域法。这里分别作出推导。


阻尼法推导 Damped Method

1. 一阶泰勒展开近似

处泰勒展开:

将问题转化为:对于每次迭代,求最优的

。表达如下:

2. 加入阻尼项

  • 为阻尼系数

阻尼项

可以看作是对于过大的
的惩罚。

3. 求极值

令关于

的导数=0 :

得最优解:

简化表示:

简化后的最优解:

4. 阻尼系数 μ 的调节

上面的最优解表达式中还有一个阻尼系数

没有确定,这里给出它的确定方法。

定义增益率(gain ratio)

:(也有叫它下降率的reduction ratio)

ρ 表达了 一阶泰勒展开近似真实函数 的相似程度,分子部分是

函数在经历了自变量
变化后的变化情况,分母部分是一阶泰勒展开近似在经历了
后的变化情况。
  • 分子越大,

    下降的大,
    越大 → 说明这里的泰勒展开近似是比较准确的,应减小阻尼系数
  • 分子越小,
    下降的小,
    越小 → 说明这里的泰勒展开近似不太准确,应增大阻尼系数

介绍两种阻尼系数的调节方案:

方案一 (Marquardt 1963):

时会增大阻尼系数,
时减少阻尼系数。

方案二 (Nielsen 1999):

方案二中,对于错误的

,也就是
的情况,将会迅速增大阻尼系数,使下一步的
趋向于更小。比方案一多了一个参数

5. 总结

阻尼法的LM算法的每步迭代过程为:

  1. 依据

    ,计算本次迭代增量

2. 依据

计算增益率

3. 依据增益率

调节阻尼系数
,用于下一次迭代计算

置信域法推导 Trust Region Method

1. 一阶泰勒展开近似

这一步与阻尼法是一致的。

处泰勒展开:

将问题转化为:对于每次迭代,求最优的

。表达如下:

2. 加入置信域约束项

对于每一步迭代,使用

来约束增量
,构成如下带小于等于号的约束优化问题
  • 是置信域的范围,对于每一步的迭代,
    是一个已知量。

3. 求解约束优化问题

对于这种小于等于号的约束优化问题,是需要分两情况进行考虑。

情况1:

假设最优解 位于

的范围内,则此时带约束的最优解就是无约束情况下的最优解,通过以下方式对这种假设进行求解和验证:

1) 求无约束的最优解,得

2) 验证此最优解是否满足

3) 如果满足则此解为带约束的最优解, 如果不满足说明最优解不在

的范围内,而在
的范围上,此时应通过下一种情况继续求解。

情况2:

假设最优解位于

的范围上,此时就是一个等式约束优化问题:

需要引入拉格朗日乘子

(为方便写成
),构成拉格朗日方程:

此时最优解需满足如下条件:

可以看到上面的等式 1) 是与阻尼法的最优解的形式是一样的,但是阻尼法中的阻尼系数

是已知的,在每一个迭代中都需要调节,而这里的拉格朗日乘子
是未知的而且也是无需知道的,在每一步迭代中需要调节的是置信域范围
。所以两个式子形式相同但是含义不一样。

联立 1) 2) 可解此等式约束问题得最优解

4. 置信域范围 d 的调节

上面的求解约束优化问题的过程中,还有一个置信域范围

需要在每一步迭代的事先确定。这里给出它的确定方法。

与阻尼法一样,首先需要计算

然后调节置信域范围

5. 总结

置信域法的LM算法的每步迭代过程为:

1. 通过求解约束优化问题得到本次迭代增量

2. 依据

计算增益率

3. 依据增益率

调节置信域范围
,用于下一次迭代计算

参考

METHODS FOR NON-LINEAR LEAST SQUARES PROBLEMS 2nd Edition, April 2004 K. Madsen, H.B. Nielsen, O. Tingleff
Trust-Region and the Levenberg-Marquardt method Niclas Börlin
视觉slam十四讲

置信系数 表达了置信区间的计算_LM算法推导:阻尼法与置信域法相关推荐

  1. 置信系数 表达了置信区间的计算_参数估计05---置信区间, 置信限

    区间估计 引言 前面,我们讨论了参数点估计.它是用样本算得的一个值去估计未知参数.但是,点估计值仅仅是未知参数的一个近似值,它没有反映出这个近似值的误差范围,使用起来把握不了.区间估计正好弥补了点估计 ...

  2. python 散点图 置信区间_python计算置信区间

    python 置信区间 置信区间是指由 样本统计量 所构造的总体参数的估计区间. 这句话也就是说 ( 这里统计量一般指均值 ) 利用样本均值来估计总体均值的可靠程度, 这个"可靠程度&quo ...

  3. 相似度计算的算法总结

    1         相似度的计算简介 关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大.在推荐的场景中,在用户-物品偏好的二维矩阵中 ...

  4. JavaScript实现计算π值算法(附完整源码)

    JavaScript实现计算π值算法(附完整源码) π.js完整源代码 π.js完整源代码 const circleRadius = 1; function getNGonSideLength(sid ...

  5. C++binomial calculate二项式计算的算法(附完整源码)

    C++binomial calculate二项式计算的算法 C++binomial calculate二项式计算的算法完整源码(定义,实现,main函数测试) C++binomial calculat ...

  6. mysql .pdb是什么文件_计算广告算法到底要做什么?

    这个话题在这个专栏开篇就该去讲.恰逢今天公司业务和财务培训(20190216)之后,也有一些思索,索性就都汇总写下来.本文杂述,不尽完备,但是值得不断完善. 我喜欢一句话"革命不是请客吃饭, ...

  7. 深圳内推 | 华为诺亚方舟实验室招聘计算视觉算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 华为诺亚方舟实验室 华为诺亚方舟实验室 (Noah's Ark Lab) ...

  8. R语言 总体均数的95%置信区间、几何均数(GMT)及其置信区间的计算

    1.求总体均数的95%置信区间,可根据自身需要更该alpha值,计算相应的置信区间 ---------------------------------------------------------- ...

  9. 上海内推 | 商汤科技招聘计算视觉算法实习生

    合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 商汤科技 商汤科技是一家行业领先的人工智能软件公司,以"坚持原创 ...

最新文章

  1. EPOLLOUT 事件的意义 以及 处理示例
  2. python下划线变量的含义
  3. 奇异值分解和图像压缩
  4. Java中的覆盖和隐藏以及final关键字
  5. Adapter适配器和base-adapter-helper库的使用
  6. c++ vector学习
  7. 怎么设置php.ini允许sql语句插入空值到mysql里_php读取.sql文件,写入mysql,navicat显示乱码,编码设置...
  8. 【折腾的一个小玩意】基于jquery+百度音乐的音乐外链小工具
  9. 学习进行中,快over了
  10. 全面剖析Ajax的XMLHttpRequest对象(学习Ajax必须知道的东西)
  11. [转]架构蓝图--软件架构 4+1 视图模型
  12. 网关与路由器的区别!!
  13. calipso是什么意思_porridge是什么意思_porridge的翻译_音标_读音_用法_例句_爱词霸在线词典...
  14. 【高级数据结构】线段树 | 求区间和
  15. TableLayout表格布局详解
  16. 能上QQ,不能上网的解决方法
  17. java实现html页面转pdf解决方案_[Java教程]纯js实现html转pdf
  18. 511遇见易语言学习易语言常量
  19. ios客户端开源的项目
  20. C语言用户注册登录管理系统_JavaFX+SpringBoot+验证码功能的小型薪酬管理系统

热门文章

  1. 【计算机网络】——奈氏准则与香农公式,它们之间到底有何区别?
  2. 【Unity】Git上传Unity工程GitHub
  3. 国外机器视觉解决方案供应商Top 10
  4. 华为OSPF多区域简单配置
  5. 2021年甘肃省安全员C证考试试卷及甘肃省安全员C证模拟考试题库
  6. Ubuntu 打开mysql 操作日志
  7. Vue 图书管理案例
  8. 干货 | 如何做一个简单的访谈研究?
  9. jupyternotebook无法使用anaconda环境 无法使用已安装的包 解决办法
  10. 晶圆测试软件,半导体晶圆接触角测量仪 Wafer水滴测试