1 梯度下降法
1.1 批量梯度下降
1.2 随机梯度下降
特点是SGD的噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。所以虽然训练速度快,但是准确度下降,并不是全局最优。虽然包含一定的随机性,但是从期望上来看,它是等于正确的导数的。
缺点:
- SGD 因为更新比较频繁,会造成 cost function 有严重的震荡。
- BGD 可以收敛到局部极小值,当然 SGD 的震荡可能会跳到更好的局部极小值处。
- 选择合适的learning rate比较困难 ,学习率太低会收敛缓慢,学习率过高会使收敛时的波动过大
1.3 小批量梯度下降
2 动量法
2.1 Momentum
当我们将一个小球从山上滚下来时,没有阻力的话,它的动量会越来越大,但是如果遇到了阻力,速度就会变小。加入的这一项,可以使得梯度方向不变的维度上速度变快,梯度方向有所改变的维度上的更新速度变慢,这样就可以加快收敛并减小震荡。
3 自适应学习率优化算法
在机器学习中,学习率是一个非常重要的超参数,但是学习率是非常难确定的,虽然可以通过多次训练来确定合适的学习率,但是一般也不太确定多少次训练能够得到最优的学习率,玄学事件,对人为的经验要求比较高,所以是否存在一些策略自适应地调节学习率的大小,从而提高训练速度。 目前的自适应学习率优化算法主要有:AdaGrad算法,RMSProp算法,Adam算法以及AdaDelta算法。
3.1 AdaGrad
缺点:
它的缺点是分母会不断积累,这样学习率就会收缩并最终会变得非常小。
3.2 Adadelta
3.3 RMSprop
3.4 Adam
这个算法是另一种计算每个参数的自适应学习率的方法。相当于 RMSprop + Momentum
除了像 Adadelta 和 RMSprop 一样存储了过去梯度的平方的指数衰减平均值 ,也像 momentum 一样保持了过去梯度 的指数衰减平均值: