L~M方法

L~M方法:

L~M(Levenberg-Marquardt)方法有些让人摸不清头脑。玉米觉得L~M让人困扰的主要原因有两点:一是L~M从何而来、二是L~M怎么样用?因为玉米也不是研究最优化理论的,所以玉米在这里用较为通俗的观点,为大家分析一下L~M方法。在数学上的不严谨之处,期望大家海涵。

一、L~M从何而来

首先,L~M方法首先是一种非线性规划方法;其次其主要用于无约束的多维非线性规划问题;最后,它是一阶牛顿法的一种改进,改进的目的是为了更快的收敛。

既然如此,那么让我们先来了解一下L~M方法的“前辈”一阶牛顿法吧。对一阶牛顿法的理解会帮助我们了解L~M方法的总体思路。

         对于无约束的多维非线性规划问题,起码我们需要一个可以令人接受的参数估计的初始解,我们设其为:Xk。(举个例子,这就是张正友标定法中通过纯粹的几何推导得出的摄像机参数)。在Xk的基础上,我们去寻找比Xk更“靠谱”的估计值。既然我们已经认为Xk可以令人接受,那么更好更精确的估计值应该在Xk的附近,在距离Xk长度为Δk的地方。那么,现在我们用一点点高等数学的知识:泰勒展开式。对于一阶牛顿法,我们用一阶泰勒展式逼近Xk附近点的f(Xkk)估计值。(这里提到的量都是矩阵形式哦比如,在张正友标定法中f(Xkk)由u和v组成)如下



        假设ε=Xk+1-Xk在某时以变化的缓慢到我们认为算法以收敛。我们称ε为终止条件。

        那么,我们就这样迭代下去,总会得到符合我们预期的Xk+1

        以上就是一阶牛顿法,说白了就是一个不断向着有利方向迭代的过程。

        L~M方法是在一阶牛顿法基础上的改进。为加快收敛,L~M把上面的正规化方程改成了增量正规化方程。如下:


         λ就是增量方程中所谓的增量。

         L~M方法中,取增量的规则如下:

         最初,设λ=0.0001,如果增量方程的解Δk导致ek减小,我们就接受这个λ,并在下一次迭代中使用λ/10代换λ。如果λ值对应的增量方程的解Δk导致ek增大,我们就舍弃这个λ,并将其代换为10λ重解增量方程。循环往复直到ek下降为止。λk+1=10λk

         L~M也是迭代循环,直到总会得到符合我们预期的Xk+1为止。

        以上就是L~M方法的原理与出处。大家一定觉得昏昏欲睡了。那么下一部分,应该是大家喜闻乐见的。玉米,将L~M算法的过程总结成算法流程图,与大家分享。||Δk||<ε

二、L~M这样用:

         该流程图就是L-M算法的算法流程。玉米就不多说什么了,流程图更清晰一些。

 

        玉米才疏学浅,文章中如有纰漏,请大家批评指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android——Activity去除标题栏和状态栏

一、在代码中设置 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除title requestWindowFeature(Window.FEATURE_NO_TITLE); //去掉Activity上面的状态栏getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSC…

Ghosts for Tea

Ghosts for Tea 喝茶&#xff1f;闹鬼&#xff1f; Ten pence for a view over the bay . said the old man with the telescope. Lovely clearmorning. Have a look at the old lighthouse and the remains of the great shipwreckof 1935. “在如此可爱清爽的早晨&#xff0…

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓

HALCON示例程序find_pads.hdev通过fit_rectangle2_contour_xld绘制精准轮廓 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_pc (‘off’) dev_update_window (‘off’) dev_update_var (‘off’) read_image (Image, ‘die_pads’) dev_close_w…

IDEA将项目上传至码云/GitHub托管

前言 好久都没有写博客了&#xff0c;由于博主之前一直都在上班处于加班的阶段&#xff0c;所以根本就没有时间去学习。现在请假回到学校写论文&#xff0c;有时间来学习了。 所以会不断的进行博客的更新&#xff0c;以及分享我在公司学到的一些新的技术&#xff0c;希望大家多…

BZOJ 1937: [Shoi2004]Mst 最小生成树 [二分图最大权匹配]

传送门 题意&#xff1a; 给一张无向图和一棵生成树&#xff0c;改变一些边的权值使生成树为最小生成树&#xff0c;代价为改变权值和的绝对值&#xff0c;求最小代价 线性规划的形式&#xff1a; $Min\quad \sum\limits_{i1}^{m} \delta_i$ $Sat\quad $非树边边权$\ge$生成树上…

找bug

1.在输入数据按保存键后不知道数据是否已经存入数据库。 修改&#xff1a;增加一个对数据库的监听事件来监听数据库是否发生变化。 2.空数据也能保存成功。 修改&#xff1a;增加一个监听事件来检测是否输入数据。 3.在输入框中输入不否和输入框对数据的要求&#xff0c;但不提…

HALCON示例程序forest.hdev识别森林中的树

HALCON示例程序forest.hdev识别森林中的树 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_close_window () dev_update_window (‘off’) read_image (Forest, ‘forest_air1’) get_image_size (Forest, Width, Height) dev_open_window (0, 0, Width…

Hadoop学习之路(十八)MapReduce框架Combiner分区

对combiner的理解 combiner其实属于优化方案&#xff0c;由于带宽限制&#xff0c;应该尽量map和reduce之间的数据传输数量。它在Map端把同一个key的键值对合并在一起并计算&#xff0c;计算规则与reduce一致&#xff0c;所以combiner也可以看作特殊的Reducer。 执行combiner操…

cocos2dx游戏--欢欢英雄传说--添加攻击按钮

接下来添加攻击按钮用于执行攻击动作。同时修复了上一版移动时的bug。修复后的Player::walkTo()函数&#xff1a; void Player::walkTo(Vec2 dest) {if (_seq)this->stopAction(_seq);auto curPos this->getPosition();if (curPos.x > dest.x)this->setFlippedX(t…

Yii2.0 rules常用验证规则

设置一个修改方法&#xff0c;但是save&#xff08;&#xff09;&#xff0c;没有成功&#xff0c;数据修改失败&#xff0c;查了好久&#xff0c;一般情况就是不符合rules规则&#xff0c;而我没有设置rules规则&#xff0c;重新设置了一个不能为空&#xff0c;然后就修改成功…

HALCON示例程序gray_features.hdev提取灰度图的不同特征(area_center_gray 、elliptic_axis_gray)

HALCON示例程序gray_features.hdev提取灰度图的不同特征&#xff08;area_center_gray 、elliptic_axis_gray&#xff09; 示例程序源码&#xff08;加注释&#xff09; 读入图片 read_image (Image, ‘monkey’)二值化 threshold (Image, Region, 128, 255)分割连通域 conne…

Machine Vision Pixel Calibration~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Artificial Intelligence and Robotics Research人工智能与机器人研究, 2014, 3, 25-33Published Online May 2014 in Hans. http://www.hanspub.org/journal/airrhttp://dx.doi.org/10.12677/airr.2014.32005

Ceph分布式存储系统-性能测试与优化

测试环境 部署方案&#xff1a;整个Ceph Cluster使用4台ECS&#xff0c;均在同一VPC中&#xff0c;结构如图&#xff1a; 以下是 Ceph 的测试环境&#xff0c;说明如下&#xff1a; Ceph 采用 10.2.10 版本&#xff0c;安装于 CentOS 7.4 版本中&#xff1b;系统为初始安装&…

mysql考试总结

USE school; -- 班级表 CREATE TABLE class(cid TINYINT PRIMARY KEY AUTO_INCREMENT,caption VARCHAR(20) );INSERT INTO class(caption) VALUES("三年二班"),("一年三班"),("三年一班");SELECT * FROM class;-- 老师表 CREATE TABLE teacher(t…

反思

1.说明一下ArrayList和数组的区别&#xff0c;并且分别写出初始化的语句&#xff1a; ArrayList:可以放不同的类型&#xff0c;长度不固定 数组&#xff1a;放同一类型&#xff0c;长度固定 数组的初始化语句&#xff1a;int []anew int []{}; ArrayList初始化语句&#xff1a;…

HALCON示例程序high.hdev使用不同方法提取区域

HALCON示例程序high.hdev使用不同方法提取区域 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_close_window () read_image (Mreut, ‘mreut_y’) get_image_size (Mreut, Width, Height) dev_open_window (0, 0, Width, Height, ‘black’, WindowHan…

阅读好书依然是提升自己的高效方法:兼以作者的身份告诉大家如何选择书,以及高效学习的方法...

国内技术网站多如牛毛&#xff0c;质量高的网站也不少&#xff0c;博客园也算一个&#xff0c;各类文章数以百万计&#xff0c;我随便输入一个关键字&#xff0c;比如Spring Cloud&#xff0c;都能看到大量的技术文章和教学视频&#xff0c;我无意贬低技术文章和教学视频的作用…

TCP/IP 协议簇的逐层封装

在使用 TCP 协议的网络程序中&#xff0c;用户数据从产生到从网卡发出去一般要经过如下的逐层封装过程&#xff1a; 从下往上看&#xff1a; 1&#xff09;链路层通过加固定长度的首部、尾部来封装 IP 数据报(Datagram) 产生以太网帧(Frame)。 其中首部存在对封装数据的…

【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

众所周知&#xff0c;bing搜索网站首页每日会更新一张图片&#xff0c;张张漂亮&#xff08;额&#xff0c;也有一些不合我口味的&#xff09;&#xff0c;特别适合用来做电脑壁纸。 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是&#xff1a; 上网&#xff0c;搜…

UIProgressView 圆角

里面外面都变成圆角 不用图片 直接改变layer 重点是里面外面都是圆角哦 for (UIImageView * imageview in self.progress.subviews) { imageview.layer.cornerRadius 5; imageview.clipsToBounds YES; } 转载于:https://www.cnblogs.com/huoran1120/p/5563991.html