Levenberg-Marquardt迭代(LM算法)-改進Guass-Newton法


              1、前言

                               a、對於工程問題,一般描述為:從一些測量值(觀測量)x 中估計參數 p?即x = f(p),

                             其中,x為測量值構成的向量,參數p為待求量,為了讓模型能適應一般場景,這里p也為向量。

                             這是一個函數求解問題,可以使用Guass-Newton法進行求解,LM算法是對Newton法的改進。

                         c、如果函數f為線性函數,那這個問題就變成了最小二乘問題(請參閱我另一篇博客:最小二乘法),

                         d、這篇博客中講解的LM法、Newton法主要用於函數f為非線性函數的情況。

              2、x = f(p)問題的Newton法求解

                               當迭代到第k次的時候得到參數p_k,其中\varepsilon_k為殘差:

                                              x-f({p_k})={\varepsilon_k}\quad(1)

                         對f(p)進行一階泰勒公式展開,J為Jacobi(雅可比)矩陣,因為參數p是個向量,因此對p的求導即對p逐個元素求偏導:

                                              f({p_{k+1}})=f({p_k}+\Delta)\approx{f({p_k})+J\Delta}\quad(2)

                         計算第k+1次的殘差:

                                              x-f({p_{k+1}})=x-f({p_k})-J\Delta={\varepsilon_k}-J\Delta\quad(3)

                         通過第k次到第k+1次的迭代,

                         可以發現已經把非線性問題x-f({p_{k+1}})=0轉化為線性求解{\varepsilon_k}-J\Delta=0,則最小二乘解為:

                                              {J^T}J\Delta={J^T}{\varepsilon_k}\quad(4)

                                              \Delta={({J^T}J)^{-1}}{J^T}{\varepsilon_k}\quad(5)

                         則k+1次的參數p為:

                                              {p_{k+1}}={p_k}+\Delta\quad(6)

              3、加權Newton迭代

                               在Newton法中,所有的因變量都是等量加權的,除此之外,可以使用一個加權的矩陣對因變量進行加權。

                         例如,當測量矢量 x 滿足一個協方差矩陣為{\Sigma_x}的高斯分布,且希望最小化Mahalanobis距離||x-f(p)|{|_\Sigma}

                                 當這個協方差矩陣可以是對角的,則表示 x 各坐標之間相互獨立。

                                 當協方差矩陣為正定對稱矩陣時,正規變為:

                                             {J^T}{\Sigma^{-1}}J{\Delta_k}={J^T}{\Sigma^{-1}}{\varepsilon_k}\quad(7)

                                             {\Delta_k}={({J^T}{\Sigma^{-1}}J)^{-1}}{J^T}{\Sigma^{-1}}{\varepsilon_k}\quad(8)

                                   備注:馬氏距離d(x,y)=\sqrt{{{(x-y)}^T}{\Sigma^{-1}}(x-y)}

                         通過協方差反向傳播,一階近似下的協方差可以這么計算:

                                   \Sigma={({J^T}\Sigma{_x^{-1}}J)^{-1}}

                         如果不可逆,那這個取逆過程為廣義逆。

              4、Levenberg-Marquardt迭代(LM算法)

                               LM算法是對Newton迭代的改進。

                        (4)式的正規方程可以簡化寫成:N\Delta={J^T}J\Delta={J^T}\varepsilon

                         LM算法將上式改為:N'\Delta={J^T}\varepsilon,其中{N_{ii}^'}=(1+\lambda){N_{ii}},即N的對角線元素乘以(1+\lambda),非對角線元素不變{N_{ij}^'}={N_{ij}}\quad(i{\ne}j)

                         \lambda的設定策略為:在初始化時,\lambda通常設定為{10^{-3}}

                                             如果通過解增量正規方程得到的\Delta導致誤差減小,那么接受該增量並在下一次迭代前將\lambda除以10。

                                             反之,如果\Delta值導致誤差增加,那么將\lambda乘以10並重新解增量正規方程,繼續這一過程直到求出的一個誤差下降的\Delta為止。

                                             對不同的\lambda重復地解增量正規方程直到求出一個可以接受的\Delta

                               LM算法的直觀解釋:當\lambda非常小時,該方法與Newton迭代本質相同。

                                                 當\lambda非常大時(本質上大於1),此時{J^T}J的非對角線元素相對於對角元素而言變得不重要,此時算法傾向於下降法。

                                                  LM算法在Newton迭代和下降方法之間無縫地移動,Newton法將使得算法在解的領域附近快速收斂,下降法使得算法在

                                                  運行困難時保證代價函數是下降的。

              5、Newton法(LM法)兩個適用場景的轉換

                               a、在上一篇博客Newton法(牛頓法 Newton Method)中講述了牛頓法適用的兩個場景:1、函數求解;2、目標函數的最優化求解

                             上一篇博客中的f(x)相當於這篇博客中的 x –f(p),上一篇博客中是為了求x,這篇博客中是已知x,求p,只是表述不同。

                               b、這兩個場景有時候是可以相互轉換的:

                             例如:函數求解問題 f(x) = 0,那也可以認為是求解 min||f(x)||,其中||.||表示二范數,即\min{f^2{(x)}}

                             例如:目標函數優化問題 min ||f(x)||,當這個優化問題的理論最優解就是為 0 時,那么這個問題也可以轉化為求解 f(x) = 0

              自己所有博客匯總


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM