随机梯度下降的亚当方法如何工作?


45

我熟悉用于训练神经网络的基本梯度下降算法。我已经阅读了有关提出亚当:ADAM:一种随机优化方法的论文。

尽管我确实有一定的见识(至少),但这篇论文对我总体而言似乎太高了。例如,成本函数通常是许多不同函数的总和,因此必须进行大量计算以优化其价值;就我所了解的主题而言,随机梯度下降仅针对这些函数的子集计算优化。对我来说,目前尚不清楚亚当如何做到这一点,以及为什么这会导致整个J θ )的训练误差减小。ĴθĴθ

我认为Adam通过考虑以前的渐变来更新其渐变。他们称其为利用动量吗?这种势头到底是什么?根据论文第二页的算法,它是某种移动平均值,例如对“规则”梯度的第一和第二矩的一些估计?

实际上,我会怀疑亚当可以使人使用更大的有效步长来减小梯度,从而减小训练误差并结合随机逼近。因此,所得的更新向量应在空间维度上更多地“跳跃”,而不是像正常的梯度下降算法那样描述某些曲线。

有人可以揭开亚当的神秘面纱吗?特别是它是如何收敛的,特别是亚当方法为何起作用以及其确切好处是什么?


1
您应该为您的问题提供更好的标题。您想问亚当什么呢?即使一般,也要尝试使其更具可搜索性。
查理·帕克

Answers:


40

亚当论文说:“ ...许多目标函数由在不同数据子样本中评估的子函数的总和组成;在这种情况下,可以通过对各个子函数进行梯度调整来提高优化效率……”在这里,它们只是这意味着目标函数是训练示例中的错误总和,并且可以针对单个示例或小批执行训练。这与随机梯度下降(SGD)中的相同,对于大规模问题,此方法比批处理训练更有效,因为参数更新更为频繁。

至于亚当为什么工作,它使用了一些技巧。

这些技巧之一是动量,它可以加快收敛速度​​。想象一下一个目标函数,它的形状像一个长长的,狭窄的峡谷,逐渐向最小值倾斜。假设我们要使用梯度下降来最小化此功能。如果我们从峡谷壁上的某个点开始,则负梯度将指向最陡下降的方向,即主要指向峡谷底。这是因为峡谷壁比峡谷朝向最小的坡度陡得多。如果学习率(即步长)很小,我们可以下降到峡谷底,然后将其向最小值移动。但是,进展会很缓慢。我们可以提高学习率,但这不会改变步骤的方向。在这种情况下,我们将超出峡谷底并最终到达对面的墙。然后,我们将重复这种模式,在不断向最小的方向缓慢前进的同时,在各个壁之间振荡。动量可以在这种情况下提供帮助。

动量只是意味着将先前更新的一部分添加到当前更新中,以便在特定方向上重复更新;我们建立了动力,朝着这个方向越来越快地前进。在峡谷的情况下,我们将在最小方向上建立动量,因为所有更新在该方向上都有一定的分量。相反,在峡谷壁上来回运动会不断地反转方向,因此动量会有助于抑制这些方向上的振荡。

亚当使用的另一个技巧是为每个参数自适应地选择一个单独的学习率。通常会收到较小或较不频繁更新的参数会使用Adam接收较大的更新(反之亦然)。在适当的学习率因参数而异的情况下,这可以加快学习速度。例如,在深层网络中,梯度在早期层可能会变小,因此增加相应参数的学习率是有意义的。这种方法的另一个好处是,由于学习速度是自动调整的,因此手动调整变得不那么重要。标准SGD需要仔细调整(可能需要在线调整)学习率,但是对于Adam和相关方法而言,情况并非如此。仍然需要选择超参数,

相关方法

动量通常与标准SGD一起使用。改进的版本称为Nesterov动量或Nesterov加速梯度。对每个参数使用自动调整的学习率的其他方法包括:Adagrad,RMSprop和Adadelta。RMSprop和Adadelta解决了Adagrad的一个问题,该问题可能导致学习停止。亚当与RMSprop具有相似的动量。纳丹(Nadam)修改亚当(Adam),使用内斯特罗夫(Nesterov)动量代替经典动量。

参考文献

金马和巴(2014)。亚当:一种随机优化方法。

Goodfellow等。(2016)。深度学习,第8章。

杰夫·欣顿课程的幻灯片

Dozat(2016)。将Nesterov动量纳入Adam。


2
(+1)如果您可以更新您的答案以包括有关亚当的收敛性证明及其更正的更多信息,例如“关于亚当与超越的收敛性”,openreview.net / forum?id = ryQu7f- RZ
恢复莫妮卡

2
感谢@Sycorax,我会在有空的时候尝试更新
user20160

1
w

继续我的最后评论,此答案解释了亚当和rmsprop在动量方面的区别,同时着重介绍了亚当的动量行为与通常的动量行为有何不同。(该答案还包括Python代码,用于模拟并以图形方式显示不同方法的行为。)
Oren Milman,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.