標籤:
Levenberg-Marquardt演算法基礎知識(2013-01-07 16:56:17)
轉載▼
什麼是最佳化?
Levenberg-Marquardt演算法是最佳化演算法中的一種。
最佳化是尋找使得函數值最小的參數向量。它的應用領域非常廣泛,如:經濟學、管理最佳化、網路分析、最優設計、機械或電子設計等等。
根據求導數的方法,可分為2大類。第一類,若f具有解析函數形式,知道x後求導數速度快。第二類,使用數值差分來求導數。根據使用模型不同,分為
非約束最佳化、
約束最佳化、
最小二乘最佳化。
什麼是Levenberg-Marquardt演算法?
它是使用最廣泛的非線性最小二乘演算法,中文為列文伯格-馬誇爾特法。它是利用梯度求最大(小)值的演算法,形象的說,屬於“爬山”法的一種。它同時具有
梯度法和
牛頓法的優點。當λ很小時,步長等於牛頓法步長,當λ很大時,步長約等於梯度下降法的步長。 LM演算法的實現並不算難,它的關鍵是用模型函數 f 對待估參數向量p在其領域內做線性近似,忽略掉二階以上的導數項,從而轉化為線性最小二乘問題,它具有收斂速度快等優點。
LM演算法屬於一種“信賴域法”,所謂的信賴域法,即是:在最佳化演算法中,都是要求一個函數的極小值,每一步迭代中,都要求目標函數值是下降的,而信賴域法,顧名思義,就是從初始點開始,先假設一個可以信賴的最大位移s,然後在以當前點為中心,以s為半徑的地區內,通過尋找目標函數的一個近似函數(二次的)的最優點,來求解得到真正的位移。在得到了位移之後,再計算目標函數值,如果其使目標函數值的下降滿足了一定條件,那麼就說明這個位移是可靠的,則繼續按此規則迭代計算下去;如果其不能使目標函數值的下降滿足一定的條件,則應減小信賴域的範圍,再重新求解。
LM演算法需要對每一個待估參數求偏導,所以,如果你的擬合函數 f 非常複雜,或者待估參數相當地多,那麼可能不適合使用LM演算法,而可以選擇
Powell演算法(Powell演算法不需要求導)。
Levenberg-Marquardt演算法基礎知識