Gradient Descent Variants

http://sebastianruder.com/optimizing-gradient-descent/

(1)Batch gradient descent: 计算整个数据集上, Cost function 对于parameters的偏导,而后更新梯度;对于convex error surfaces能够得到global minimum,而对于non-convex error surfaces能得到local minimum

(2) Stochastic gradient descent: 计算单个sample上,Cost function对于parameters的偏导,而后更新梯度。相较于BGD,SGD更easy从一个local minimum跳到另一个local minimum(可是当learning rate过小时。performance便和BGD类似)。High variance,更easy使得loss curve产生震荡

(3)Mini-batch gradient descent: 计算whole dataset某个子集(通常设置为50-256)对于paremeters的偏导,而后更新梯度;比SGD更稳定。更易收敛。能够使用高效的矩阵化trick。使得在runing的时候更加efficient

(4)面临几大问题:

1.Learning rate非常难选择,太小了收敛非常慢,太大了easy在local minimum周围晃动。甚至发散

2.在训练时当loss一直在某个范围摆动时,这时候应该减小learning rate,可是这个trick受数据集属性或者模型的capacity等因素的影响较大,须要觉得的精调

3.所用的參数更新都是基于同一个learning rate的,可是当数据集非常稀疏,或者features出现的频率有非常大不同。这时候我们会希望用较大的learning rate来更新rarely出现的feature,即希望实现feature-wise的learning rate的调整

4.另一个问题时saddle points 的问题,例如以下图:

梯度下降法综述
下文在SGD指的是Mini-batch gradient descent,事实上在其它非常多地方也是这样

Gradient descent optimization algorithms

Newton’s method.对于高维问题infeasible。所以以下不讨论

(一般设置为0.9),然后加上此时的梯度。若两个梯度的方向类似。则会加速在这一方向上的移动,即加速了收敛:

梯度下降法综述梯度下降法综述

的梯度推断),而后再做出修正,Nesterov在非常多RNN的tasks中都非常有效:

梯度下降法综述
蓝色箭头是Momentum:首先计算当前梯度(短箭头),然后再加上上一步的梯度(长箭头)。棕色箭头是的梯度,即预判,然后再做出修正(绿色箭头)

(3)Adagrad:对于不同的timestep(能够理解为第几次更新)以及不同位置的weight(层内或者层间),Momentum和Nesterov都仅仅能使用同一个learning rate进行更新。这样在处理稀疏数据集的时候(比方word embedding 任务),不能实现lager更新出现不频繁的parameters,small 更新频繁出现的parameters.Adagrad则能够有效改善这一情况:

)用于smoothing,以防分子为0     

会随着分子的增大(每一个对角元素都是正数相加)而逐渐减小,甚至接近于0,使得相应的权重得不到更新

(4)Adadelta: Adadelta是Adagrad的一个拓展,为的是解决Adagrad learning rate减小为接近0的情况,所以相比較与Adagrad对过去全部的梯度的平方进行累加,Adadelta添加了一个限制窗体。大小为m(即仅仅统计前m步的梯度的平方);而相较于直接计算累加和(须要保留前m步的梯度的平方),Adadelta採用的是计算前面steps的梯度的平方的均值方法:

The authors note that the units in this update (as well as in SGD, Momentum, or Adagrad) do not match, i.e. the update should have the same hypothetical units as the parameter. To realize this, they first define another exponentially decaying average, this time not of squared gradients but of squared parameter updates:

由上述式子可知。Adadelta甚至不须要设置Leaning rate

(5)RMSprop:Adadelta和RMSprop都是为了解决Adagrad learning rate消失的问题。而 RMSprop事实上就是上述Adadelta的一部分(算梯度的均值):

一般设置为0.001

for ϵϵ

Visualization of algorithms

梯度下降法综述梯度下降法综述

相关文章:

  • 2021-12-09
  • 2021-11-24
  • 2021-05-16
  • 2021-09-16
  • 2022-12-23
  • 2021-07-13
  • 2021-09-05
  • 2021-07-24
猜你喜欢
  • 2021-10-04
  • 2021-04-10
  • 2021-05-08
  • 2021-09-12
  • 2022-12-23
相关资源
相似解决方案