Adagrad 优化背后的直觉

数据挖掘 神经网络 优化 学习率
2022-02-11 16:35:37

以下论文ADADELTA: AN ADAPTIVE LEARNING RATE METHOD给出了一种称为 Adagrad 的方法,其中我们有以下更新规则: 现在我知道这个更新规则会为每次迭代动态选择学习率,但有以下问题:

Xn+1=Xn[Lr/i=0ngi2]gn

  1. 在这里,我们看到较大的梯度具有较小的学习率,较小的梯度具有较大的学习率。我不明白为什么这是所需的属性,换句话说,为什么这对我们的网络来说是一件好事
1个回答

为了理解 Adagrad 背后的直觉,让我们看一下下面的图表,它们代表了在一维搜索空间中根据学习率的不同值更新模型的权重时损失函数的演变:

梯度三种情况

图 1(左 - 太快了!):当更新模型的权重时,我们可以看到它没有收敛到全局最小值。这是因为学习率太高,一直在底部反弹。

图 2(中心 - 太慢了!):在这种情况下,权重的更新非常缓慢,因为学习率太小,因此需要很长时间才能收敛(甚至永远不会)到全局最小值。

图 3(右 - Spot On!):在这种情况下,学习率根据梯度的值进行调整,即梯度越高,学习率越低,或者梯度越低,学习率越高速度。这使得可以增加收敛的机会,而无需之前评论过的问题。

Adagrad 是 ADAM、ADADELTA 等几种自适应梯度下降算法之一。您可以在此处查看更多信息。

注意:上面的图片是从这里拍摄的。