深度学习中是否使用线搜索方法?为什么不?


18

在线上许多教程都谈论梯度下降,并且几乎所有教程都使用固定步长(学习率)。为什么不使用线搜索(例如回溯线搜索或精确线搜索)?α


5
“而且几乎所有人都使用固定的步长”-您确定吗?假定“学习率”超参数可使步长适应条件。一个非常流行的亚当算法确实适应了步长
Aksakal,

1
嗯,实际上,自适应步长梯度法至少在2011年就出现了,甚至在Wikipedia 随机梯度下降页面上也有引用。这不是完全新闻。甚至香草SGD几乎总是以学习率使用,学习率会随着迭代次数(进度表)而变化。现在,一个非常好的问题是:为什么,即使有这么多的自适应梯度下降的方法,SGD仍然占主导地位的深度学习世界?这个问题看起来并不简单。
DeltaIV '18年

1
回溯线搜索可确定方向,然后寻找减少功能的方法。因此,除非您有明智的选择搜索方向的方法,否则您将需要进行繁琐的优化。
Alex R.

1
我认为行搜索对SGD(与[batch]梯度下降相反)没有意义-所以我要说这就是原因。
seanv507

3
我怀疑行搜索不是很流行的原因是梯度下降中的批处理。您得到一个批处理,然后计算梯度。由于渐变中的噪声,来回走线没有多大意义。最好继续进行下一批,同时可能要逐步调整步长。
阿克萨卡尔州

Answers:


14

使用线搜索可以使香草梯度下降更可靠;我已经编写了执行此操作的算法,它使算法非常稳定(尽管不一定很快)。

但是,对随机梯度方法进行线搜索几乎没有任何意义。我之所以这样说,是因为如果我们基于最小化全损失函数来进行线搜索,我们将立即失去进行随机方法的主要动机之一。我们现在需要为每次更新计算全损失函数,通常,其计算成本可与计算全一阶导数相媲美。鉴于我们由于计算成本而希望避免计算完整梯度,因此似乎不太希望我们可以计算完整损失函数。

另外,您可能会考虑根据随机采样的数据点进行行搜索等操作。但是,这也不是一个好主意。这不会告诉您您是否走得太远(这是行搜索的主要好处)。例如,假设您正在执行逻辑回归。然后,每个结果是一个简单的0或1,而对于任何一个样品,我们平凡得到完美的分离,从而为基于1的样品我们的回归参数的最佳解决方案是平凡由豪克唐纳效果。这不好。

编辑

@DeltaIV指出,这也适用于微型批处理,而不仅仅是单个样本。


4
非常好(+1),但我不确定为什么在上一个示例中您谈论单个样本。我同意基于小批量计算行搜索是没有意义的,但是小批量仍然包含512个样本(通常在谈论ImageNet时):当然,小批量中的样本数没有固定值批处理,但1个样本小批处理感觉有些极端。您是否只是为了使您的观点更清楚而使用它们,还是我错过了什么?
DeltaIV '18年

2
@DeltaIV:单个样本主要是要指出一个非常简单的问题的严重程度。如果我们对512个协变量进行logistic回归对512个样本进行了小批量处理,那么我们将看到相同的问题。
Cliff AB

10

这些教程大概讨论了梯度下降,因为它是用于优化的最简单算法之一,因此很容易解释。由于大多数此类教程都很简短,因此它们只关注简单的内容。除了简单的梯度下降法外,至少还有几种流行的优化算法可用于深度学习。实际上,人们通常使用不同的算法,然后使用梯度下降算法,因为它们通常收敛更快。他们中有些人的学习率不是恒定的(例如,随着时间的推移而下降)。要查看此类算法,您可以查看Sebastian Ruder发表的“梯度下降优化算法概述”(或论文)。


2
@DeltaIV:所有其他“幻想”方法都建立在SGD之上。主要问题是其他方法利用本地知识来进行更有效的跳跃,而不是仅仅随机采样点来计算梯度。但是SGD是如此简单和快速,并且它本身并不完全可怕。
Alex R.

2
@AlexR。关键不是SGD是简单和/或快速的。简单性无关紧要,因为所有不错的库都实现了SGD,Adam,AdaGrad和RMSProp(有时还有更多)。速度的重要性甚至更低,因为与例如ResNet这样的模型的总训练时间相比,例如Adam花费在计算参数级更新上的时间是无穷的。唯一的一点是,由于某些原因,我们今天还不完全了解SGD的概括性。因此,基本上,如果您想击败SOTA,通常会被迫使用它,或者至少在以后的训练中改用它。
DeltaIV '18年

3
@DeltaIV非常有趣。我打开了您链接的论文,并引用了Wilson等2017年的预印本,声称SGD的泛化能力优于Adam等。因此,当您说它“知名”时,您的意思是大约半年以来众所周知,对吗?
变形虫说恢复莫妮卡

2
@DeltaIV谢谢。我自己并没有做太多的深度学习,也根本没有意识到这一点。早在2012年左右,当我观看Hinton在Coursera的演讲时,他主要提倡RMSprop,在最近的1-2年中,我的印象是每个人都在使用Adam(根据Adam的论文,它取代了RMSprop)。去年,当我与自动编码器一起玩时,我意识到Adam的运行速度比SGD快得多,因此从那时起,就一直假设Adam是当今的默认选择。
变形虫说恢复莫妮卡

3
@CliffAB是的,对于最小二乘,可以清楚地看到提早停止和正则化之间的关系,其中梯度下降以特征值为基础,小的特征值是最后一个收敛的值。而山脊罚则也会惩罚小的特征值。我现在只看了一眼Wilson等人。链接在上方,但至少在其最小二乘示例中,SGD与Adam的区别并未通过早期与晚期停止进行解释。他们声称他们会融合到不同的解决方案。
变形虫说恢复莫妮卡
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.