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.pswp.cn/news/255157.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255157.shtml
英文地址,請注明出處:http://en.pswp.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