梯度下降法、牛顿法、高斯牛顿法、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$,使之更接近于梯度下降法。

posted @ 2019-02-24 20:05  小新新的蜡笔  阅读(2842)  评论(0编辑  收藏  举报