Levenberg-Marquardt優化算法以及基於LM的BP-ANN


一.LM最優化算法   

    最優化是尋找使得目標函數有最大或最小值的的參數向量根據求導數的方法,可分為2大類。(1)若f具有解析函數形式,知道x后求導數速度快。(2)使用數值差分來求導數。根據使用模型不同,分為非約束最優化約束最優化最小二乘最優化Levenberg-Marquardt算法是最優化算法中的一種。

   Levenberg-Marquardt算法是使用最廣泛的非線性最小二乘算法(用模型函數 f 對待估參數向量p在其領域內做線性近似,利用泰勒展開,忽略掉二階以上的導數項,優化目標方程轉化為線性最小二乘問題)。它是利用梯度求最大(小)值的算法,形象的說,屬於“爬山”法的一種。它同時具有梯度法牛頓法的優點。當λ很小時,步長等於牛頓法步長,當λ很大時,步長約等於梯度下降法的步長。見下圖:
    
    算法從山腳開始不斷迭代。可以看到,它的尋優速度是比較快的,在山腰部分直接利用梯度大幅度提升(參見后文例子程序中u較小時),快到山頂時經過幾次嘗試(u較大時),最后達到頂峰(最大值點),算法終止。

   LM算法屬於一種“信賴域法”,所謂的信賴域法,就是從初始點開始,先假設一個可以信賴的最大位移σ,然后在以當前點為中心,以σ為半徑的區域內,通過尋找目標函數的一個近似函數(二次的)的最優點,來求解得到真正的位移。在得到了位移之后,再計算目標函數值,如果其使目標函數值的下降滿足了一定條件,那么就說明這個位移是可靠的,則繼續按此規則迭代計算下去;如果其不能使目標函數值的下降滿足一定的條件,則應減小信賴域的范圍,再重新求解。
   LM算法需要對每一個待估參數求偏導,所以,如果你的擬合函數 f 非常復雜,或者待估參數相當地多,那么可能不適合使用LM算法,而可以選擇Powell算法(Powell算法不需要求導。LM收斂速度塊。但是參數應該設定一個初值,其次對於多優化解的問題,也不是很適合。

   英文文檔lemar介紹比較簡潔,還包括偽代碼,請點擊下載:

   我的總結如下:

      (1)Principle: An iterative tech. to locate the minimum of a multivariate function (sum of squares of non-linear real-valued function).Assuming measure vector x’=f(p) ,target vector x (such as training target in classification problem) ,error vector e=x-x’:

Optimization Object:arg(p) min(||x-f(p)||)

       Linear approximation: in the neighborhood of p, assuming J is Jacobian Matrix(f(p) to p) ,for a smallσ,so f(p+σ)=f(p)+σJ (Taylor Expansion) ,and

min (||x-f(p+σ)||=min(||e-Jσ||)  =>  JTJσ=JTe  (derivation to σ)

       Introducing the damping term u and set N=( JTJ+uI)=> Nσ= JTe => σ

       For each iteration or updata of p(p:=p+σ), u is adjusted to assure a reduction in the error e(norm-2)

  

       (2)Merits & Defects:LM is a standard tech. fornon-linear least-squares problems:When u is set to a large value, p updates as steepest descent, otherwise updates as Gauss-Newton method.

         p shall be set toarelative reliable initial value (the work of RBM model).


參考:
  1. Levenberg-Marquardt快速入門教程


免責聲明!

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



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