模式识别课堂笔记——优化函数总结

1、SGD

随机梯度下降是最原始的优化函数

w_{i} ^{t+1}\leftarrow w_{i}^{t}-\eta \nabla L(w _{i}^{t})

优点:

  • 算法收敛速度快(在Batch Gradient Descent算法中, 每轮会计算很多相似样本的梯度, 这部分是冗余的)
  • 可以在线更新
  • 有几率跳出一个比较差的局部最优而收敛到一个更好的局部最优甚至是全局最优

缺点:

  • 容易收敛到局部最优,并且容易被困在鞍点

2、Adagrad

Adagrad算法能够在训练中自动的对learning rate进行调整,对于出现频率较低参数\eta采用较大的更新;相反,对于出现频率较高的参数采用较小\eta更新。因此,Adagrad非常适合处理稀疏数据。

Adagrad在每轮训练中对每个参数w的学习率进行更新,参数更新公式如下:

w _{i}^{t+1}\leftarrow w_{i}^{t}-\frac{\eta} {\sqrt{\sum_{j=0}^{t} \nabla^{2} L(w _{i}^{j})+\epsilon }} \nabla L(w _{i}^{t})

 

w_{i}^{t}表示第t次更新参数w_{i}, 求和项是前t次参数w_{i}的梯度积累,ϵ是平滑项,用于避免分母为0,一般取值1e−8。

随着算法不断的迭代,求和项会越来越大,整体的学习率会越来越小。一般来说adagrad算法一开始是激励收敛,到了后面就慢慢变成惩罚收敛,速度越来越慢。Adagrad的缺点是在训练的中后期,分母上梯度平方的累加将会越来越大,从而梯度趋近于0,使得训练提前结束。

 

3、RMSprop

RMSprop是在Adagrad上加上可调参数。Adagrad会累加之前所有的梯度平方,而RMSprop仅仅是计算对应的平均值,因此可缓解Adagrad算法学习率下降较快的问题。

w _{i}^{t+1}\leftarrow w_{i}^{t}-\frac{\eta} {\sigma _{i}^{t}} \nabla L(w _{i}^{t})

其中

\sigma _{i}^{0} =\nabla L(w_{i}}^{0})

\sigma_{i} ^{1}=\sqrt{\alpha _{i}(\sigma_{i}^{0})^{2}+(1-\alpha _{i})\nabla L(w_{i}^{1})}

\sigma _{i}^{t+1}=\sqrt{\alpha _{i}(\sigma _{i}^{t})^{2}+(1-\alpha _{i})\nabla L(w _{i}^{t})}

4、Momentum

模式识别课堂笔记——优化函数总结_第1张图片

物理意义是可以利用动量越过鞍点,若动量足够大还可以越过局部最小点。

其更新方向为梯度的反方向与当前运动方向的加权和,但难以保障能达到全局最小点。

5、Adam

Adam(Adaptive Moment Estimation)算法结合了动量梯度下降算法和RMSprop算法,可视为带有动量项的RMSprop。下面这个博客讲的很好。

https://segmentfault.com/a/1190000012668819

 

你可能感兴趣的:(深度学习基础)