版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-萊文貝格-馬夸特方法

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

萊文貝格-馬夸特方法(Levenberg–Marquardt algorithm)能提供數(shù)非線性最小化(局部最?。┑臄?shù)值解。

介紹萊文貝格-馬夸特方法(Levenberg–Marquardt algorithm)能提供數(shù)非線性最小化(局部最?。┑臄?shù)值解。此算法能借由執(zhí)行時修改參數(shù)達到結(jié)合高斯-牛頓算法以及梯度下降法的優(yōu)點,并對兩者之不足作改善(比如高斯-牛頓算法之反矩陣不存在或是初始值離局部極小值太遠)。

問題描述假設(shè) f 是一個從 的非線性映射,也就是說,那么:

而我們的目的就是希望任意給定一個x以及合理的初始值p0,我們能找到一個,使得 盡量?。ň植繕O?。?,其中 。

解法像大多數(shù)最小化的方法一樣,這是一個迭代的方法。首先根據(jù)泰勒展開式我們能把 寫為下面的近似,這有兩個好處:第一是線性、第二是只需要一階微分。1

其中J是f的雅可比矩陣。對于每次的迭代我們這么作:假設(shè)這次 iteration 的點是,我們要找到一個 最小。 根據(jù)投影公式我們知道當下面式子被滿足的時候能有最小誤差:

我們將這個公式略加修改得到:

就是萊文貝格-馬夸特方法。如此一來大的時候這種算法會接近最速下降法,小的時候會接近高斯-牛頓方法。為了確保每次長度的減少,我們這么作:先采用一個小的,如果長度變大就增加 。

這個算法當以下某些條件達到時結(jié)束迭代:

(1)如果發(fā)現(xiàn) 長度變化小于特定的給定值就結(jié)束。

(2)發(fā)現(xiàn) 變化小于特定的給定值就結(jié)束。

(3)到達了迭代的上限設(shè)定就結(jié)束。

本詞條內(nèi)容貢獻者為:

胡建平 - 副教授 - 西北工業(yè)大學(xué)