深度学习常用优化器优缺点

随机梯度下降(SGD):

SGD指的是mini batch gradient descent

                                              深度学习常用优化器优缺点_第1张图片

简单好理解,但是其存在的缺陷是,只有当自变量是一个维度的时候,它的前进方向才是真正梯度下降的方向。当存在多维变量时,若某一维度的梯度过大,会使得下降方向在该梯度方向的分量过大,偏离了真正的轨道。

优点:针对大数据集,训练速度很快。从训练集样本中随机选取一个batch计算一次梯度,更新一次模型参数。

缺点:

1. 选择恰当的初始学习率很困难。

2. 学习率调整策略受限于预先指定的调整规则。

3. 相同的学习率被应用于各个参数。

4. 高度非凸的误差函数的优化过程,如何避免陷入大量的局部次优解或鞍点,即容易收敛到局部最优

Momentum

深度学习常用优化器优缺点_第2张图片

其公式意义为,如果一直朝着某个方向前进,那么在这个方向上的梯度会越来越大。当使用SGD时,会出现过度振荡,徘徊前进,而在这个过程中其实那个梯度分量过大的方向的梯度其实在慢慢减小的,原本梯度分量较小的方向在慢慢增大,动量思想可以放大这个过程,使得模型尽快收敛。

Adam:

利用梯度的一阶矩估计和二阶矩估计动态调节每个参数的学习率。

  • 1.经过偏置校正后,每一次迭代都有确定的范围,使得参数比较平稳。善于处理稀疏梯度和非平稳目标。
  • 2.对内存需求小
  • 3.对不同内存计算不同的学习率
  • 4. 更新的步长能够被限制在大致的范围内(初始学习率)
  • 5. 能自然地实现步长退火过程(自动调整学习率)
  • 6. 很适合应用于大规模的数据及参数的场景
  • 7. 适用于不稳定目标函数
  • 8. 适用于梯度稀疏或梯度存在很大噪声的问题

深度学习常用优化器优缺点_第3张图片

RMSProp:

自适应调节学习率。对学习率进行了约束,适合处理非平稳目标和RNN。

总体来讲Adam是训练深度神经网络的最佳选择。

你可能感兴趣的:(深度学习常用优化器优缺点)