信息摘要:
我们可以看到,除了通常的梯度下降,还有ADADELTA,Adagrad,RMSPROP和其他优化器,是什么,以及如何选择 由于该方法计算一次更新中整个数据集的梯度,所以计算非常慢。遇到大量的数
我们可以看到,除了通常的梯度下降,还有ADADELTA,Adagrad,RMSPROP和其他优化器,是什么,以及如何选择
由于该方法计算一次更新中整个数据集的梯度,所以计算非常慢。遇到大量的数据集也是很困难的,它不能被放入新的数据实时更新模型中。
我们预先定义迭代次数历元,首先计算梯度向量PARAMSS-GRAD,然后沿着梯度方向更新参数PARAMs。学习率决定我们每一步的花费。
对于非凸函数,批梯度下降可以收敛到凸函数的全局极小值和局部极小值。
1。如果学习率太小,收敛速度会很慢,如果它太大,则损失函数会振荡甚至偏离更小值。
(一种措施是首先设置更大的学习速率,当迭代之间的变化低于某一阈值时减小,但是阈值设置需要提前写入,以使其不适合数据集的特征。)
2。此外,该方法将相同的学习速率应用于所有参数更新。如果我们的数据是稀疏的,我们宁愿对低频率的特征进行更大的更新。
三。此外,对于非凸函数,避免陷入局部极小值或鞍点,因为鞍点附近的误差是相同的,所有维度的梯度都接近0,SGD很容易被困在这里。
鞍点是:鞍点曲线、曲面或超曲面邻域的光滑函数位于这一点的不同边的切线中。
例如,下面的二维图形看起来像一个马鞍:在X轴上向上弯曲,在y轴上向下弯曲,并具有(0,0)的鞍点。
SGD容易被困在沟壑的情况下,其中一个方向的表面比另一个方向陡峭,SGD振荡并且不能接近更小值。
当我们把球滚下山的时候,它的动量越来越大,没有阻力,但是当它被拖动的时候,速度变小了。
该项的加入可以使梯度方向的尺寸不变得更快,梯度的方向改变了更新速度的速度较慢,从而加快了收敛速度,减少了振荡。
这相当于一个盲目地滚下山的球。如果它有一些先知,比如上山,知道它需要放慢速度,那就更容易适应了。
使用θ-γvyt1来近似将作为参数改变的值,梯度不是在当前位置计算,而是在未来位置计算。
蓝色是动量的过程,它首先计算电流梯度,然后在更新累积梯度之后进行大跳跃。
NAG,另一方面,在布朗向量上跳大,并测量梯度以生成红色向量。这种期望的更新使我们不能走得太快。
到目前为止,我们已经能够调整速度和加速SGD通过跟随损失函数梯度时更新梯度。
该算法能大幅度地更新低频参数,并对高频进行了简单的更新。因此,它对稀疏数据有很好的性能,并且提高了SGD的鲁棒性,如识别YouTube视频中的猫和训练手套字嵌入,因为它们都需要低频特征,有更大的更新。
该算法是对ADADRAD算法的一种改进。与AdGrad相比,分母G被过去的梯度平方的衰减平均所代替。
此外,学习速率被RMS {theta }代替,因此我们甚至不需要预先设定学习速率:
除了存储过去梯度Adadelta和RMSPROP的平方VT的指数衰减平均值外,过去梯度MT的指数衰减均值也保持为动量:
正如你所看到的,在两种情况下,Adagrad,AdeleltA,RMSPROP几乎很快找到正确的方向和前进,并收敛得相当快,而其他方法要么是慢的,要么走了
湖南网站建设很多弯路去寻找。
该图表明自适应学习速率法(ADAGRADAD,ADADELTA,RMSPROP,亚当)在这种情况下更适合和收敛。
许多论文将使用SGD,没有动量等。虽然SGD可以达到更小,但它比其他算法花费更长的时间,并且可能被困在鞍点。