梯度下降法、牛頓法、高斯牛頓法、LM算法


假設有一個可導函數f(x),我們的目標函數是求解最小值$min\frac{1}{2}f(x)^{2}$,假設x給定的初始值是$x_0$

1、梯度下降法

 將f(x)在$x_0$處進行1階泰勒級數展開:$f(x)=f(x_0)+f(x_0)^{'}(x-x_0)$。

則我們的目標函數變成$min\frac{1}{2}(f(x_0)+f^{'}(x_0)(x-x_0))^{2}$即是$f^{2}(x_0)+2f(x_0)f^{'}(x_0)\Delta x+f^{'2}(x_0)\Delta x ^{2}=0$

從而得到:$f(x_0)f^{'}(x_0)+f^{'2}(x_0)\Delta x=0$

即$\Delta x=\frac{-f(x_0)}{f^{'}(x_0)}$。

所以更新x為:$x_{k+1}=x_k+\alpha \Delta x$

2、牛頓法

牛頓法最初用於求方程的解f(x)=0:

首先給出一個初始值$x_0$,進行一階展開得到:$f(x)=f(x_0)+(x-x_0)f^{'}(x_0)=0$

即得到$x=x_0-\frac{f(x_0)}{f^{'}(x_0)}$。牛頓法用於最優化問題:將問題轉化為求解$f^{'}(x)=0$.。

照上述求方程的解可以得到:$x=x_0-f^{'}(x_0)/f^{''}(x_0)$。

對於高維情況求解f(x)的最小值:

 $x_{n+1}=x_n-\gamma [Hf(n)]^{-1}\nabla f(x_n)$。

其中,利用梯度替代了一維情況的一階導;

Hessian矩陣代替了二階導;

求逆代替了除法;

3、高斯牛頓法

高斯牛頓法是牛頓法在求解非線性最小優化問題的一個特例:

由於求解黑塞矩陣非常耗時,故使用$J^{T}J$來代替。

對於$\nabla f(x_n)$被替換成$J^{T}r$。

 

4、LM算法

 如果下降太快就使用較小的$\lambda$,使之更接近於高斯牛頓法;

如果下降太慢就使用較大的$\lambda$,使之更接近於梯度下降法。


免責聲明!

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



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