非線性最小二乘最優化

  • 最小二乘基本思想
  • Ceres庫與最小二乘優化
    給定一組觀測數據,使構建的模型的輸出值與觀測值的殘差的平方最小
    殘差指的是一個,代價函數指的是一系列的殘差之和。
    不同殘差正負可能抵消,使用絕對值計算不方便,採用平方可以更好地計算

損失函數中有觀測值和損失的計算方式

  • 最優化步長的選擇方法
    進行擬合時一般會先構建對應的數學模型
    信任區域法:定區間,取極值
    信賴域方法利用一個模型函數(通常是二次的)在被稱爲信賴域的搜索空間的子集上近似目標函數。如果模型函數成功地使真實目標函數最小化,則信任域被擴展;反之,則信任域被收縮
    利用信賴域算法求解無約束的非線性最小二乘問題_含matlab代碼
    % 流程圖中的f爲原始函數,對應代碼中的Diff
    % 流程圖F指的是殘差,對應代碼中的f
    信賴域法
    a.信賴域算法是在一個球形區域搜索,在這個球形區域的中心點進行二階泰勒近似
    泰勒二階展開
    最優化的目標是使得fai(x(k))-f(x(k))最小
    b.二階泰勒近似其實就是一個二次規劃問題,可以直接求取極值,得到了子問題的最優解
    matlab中進行二次規劃的代碼
    matlab中求解二次規劃的代碼
    線性搜索法:定方向,定步長
    首先找到一個下降方向,目標函數將沿該下降方向減少,然後計算一個步長,該步長決定沿該方向移動多遠。下降方向可以用多種方法計算,如梯度下降法、牛頓法和擬牛頓法。步長可以精確或不精確地確定。
  • 最優化方法
    最速下降法:收斂速度慢
    牛頓法:移動方向不一定是下降方向
    L-M法(Levenberg-Marquardt法)萊文伯格·馬夸特:全局優化,收斂速度快,相比牛頓法,公式中多了一個阻尼係數(大於1),在迭代過程中對阻尼係數進行更新。
    公式
    LM算法流程圖爲:
    其中,fk爲原始函數,F(x(k+1))爲殘差值

LM算法流程圖

  • 總結
    信賴域法中計算hessian的嚴格數學表達式,LM算法中用雅可比的轉置乘上雅可比來近似hessian矩陣
    信賴域設定區域,通過二次規劃求極值,通過該極值判斷損失增長還是減少,更新區域大小,當殘差變化小於閾值,得到最優值。
    LM算法通過正規方程計算出的d,判斷對損失增長還是減少情況,更新阻尼係數,當步長變化滿足小於閾值,則認爲收斂,得到最優值
    信賴域方法在姿勢估計中得到的精度和Levenberg_Marquardt算法不相上下,但是收斂速度卻不如LM
  • 參考文獻
    LM算法的matlab代碼及流程圖
    Levenberg-Marquardt算法淺談
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章