【深度学习】各种梯度下降优化方法总结

mini-batch GD

  • 小批量梯度下降法最终结合了上述两种方法的优点,在每次更新时使用n个小批量训练样本
  • 减少参数更新的方差,这样可以得到更加稳定的收敛结果
  • 可以利用最新的深度学习库中高度优化的矩阵优化方法,高效地求解每个小批量数据的梯度。
  • 在每次下降时都加上之前运动方向上的动量
  • 在梯度缓慢的维度下降更快,在梯度险峻的维度减少抖动。
  • 对于在梯度点处具有相同的方向的维度,其动量项增大,对于在梯度点处改变方向的维度,其动量项减小。因此,我们可以得到更快的收敛速度,同时可以减少摇摆。
【深度学习】各种梯度下降优化方法总结
v表示velocity 速率,即在原先运动的方向上再往前走一段
  • 把每一维度的梯度^2和记录下来,每次学习率都除以这个和
  • 每一维度的学习率不一样,且都在不断减小
  • 在梯度大的维度,减小下降速度;在梯度小的维度,加快下降速度
  • 让学习率适应参数,对于出现次数较少的特征,我们对其采用更大的学习率,对于出现次数较多的特征,我们对其采用较小的学习率。因此,Adagrad非常适合处理稀疏数据。
  • Adagrad算法的一个主要优点是无需手动调整学习率
  • Adagrad的一个主要缺点是它在分母中累加梯度的平方:由于每增加一个正项,在整个训练过程中,累加的和会持续增长。这会导致学习率变小以至于最终变得无限小,在学习率无限小时,Adagrad算法将无法取得额外的信息。
【深度学习】各种梯度下降优化方法总结

Added element-wise scaling of the gradient based on the historical sum of squares in each dimension

  • 同样对AdaGrad的改进
【深度学习】各种梯度下降优化方法总结