假設有一個可導函數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$,使之更接近於梯度下降法。