最优化方法——梯度下降法、牛顿法、LM算法
一、梯度下降法
介紹: 在機器學習中應用十分的廣泛,主要目的是通過迭代的方式找到目標函數的最小值(極小值)。其基本思想是:以所處的位置為基準,尋找這個位置最陡峭的地方,然后朝著下降方向走一步,然后又繼續以當前位置為基準,再找最陡峭的地方,再走直到最后到達最低處。
梯度: 在單變量的函數中,梯度其實就是函數的微分,代表著函數在某個給定點的切線的斜率
在多變量函數中,梯度是一個向量,向量有方向,梯度的方向就指出了函數在給定點的上升最快的方向。下面舉個例子:
數學表示:
筆者注: 最優化方法最核心是求解目標函數的極值點(最大值、最小值點),可以通過建立一個代價函數,將該問題轉變尋找最合適的曲線擬合點的問題(此時代價函數的極值點即為該曲線的參數)。方法如下:
參考文章:https://blog.csdn.net/qq_41800366/article/details/86583789
二、牛頓法
介紹: 牛頓法是求解無約束優化問題最早使用的經典方法之一,其基本思想是:用迭代點xkx_kxk?處的一階導數(梯度)和二階導數(Hesse陣)對目標函數進行二次函數近似,然后把二次模型的極小值點作為新的迭代點,并不斷重復這一過程,直至求得滿足精確度的近似極小值點。
1 . 牛頓法的數學推導
2. 牛頓法的算法步驟
3. 基于Armijo的阻尼牛頓法
4. 計算例題
參考視頻:https://www.bilibili.com/video/BV1AF411z7hg/?spm_id_from=333.788.recommend_more_video.1
三、高斯-牛頓(Gauss-Newton)算法
1.1 推導
四、LM算法
1.1 推導
牛頓法雖然收斂速度快,但是需要計算黑塞矩陣(Hessian matrix),對于高維的問題,計算二階導數會很復雜。因此我們有了Gauss-Newton算法。Gauss-Newton算法不直接計算黑塞矩陣(Hessian matrix),而是通過雅各比矩陣(Jacobian matrix ) 對 黑塞矩陣(Hessian matrix) 進行擬合:
H≈JTJH \approx J ^TJH≈JTJ
但是,用 雅各比矩陣(Jacobian matrix )擬合黑塞矩陣(Hessian matrix),所計算出來的結果不一定是正定的,即無法保證下降,所以要引入一個對角矩陣與之相加(如果有特征值為負,加上μμμ后就修正為正值):
H≈JTJ+μIH≈J^ T J+μIH≈JTJ+μI
這也就得到了LM算法,將上述式子帶入之前的公式,可以得到:
xk+1=xk?(JkTJk+μI)?1gkx_{k+1} =x_k ?(J_k^T J _k +μI)^{?1} g_kxk+1?=xk??(JkT?Jk?+μI)?1gk?
所以我們發現,當μ\muμ接近于0時,這個算法近似于Gauss-Newton算法;當μμμ很大時,這個算法近似于最速下降法。因此,這也是為什么LM算法稱為Gauss-Newton算法與最速下降法的結合。用一張圖表示幾種算法之間的關系:
1.2 LM算法步驟
總結
以上是生活随笔為你收集整理的最优化方法——梯度下降法、牛顿法、LM算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KUKA---US2电源的安全属性---
- 下一篇: X11硬线接口信号 与Profisaf