随机梯度下降如何避免局部最小值的问题?


Answers:


22

随机梯度(SG)算法的行为类似于模拟退火(SA)算法,其中SG的学习率与SA的温度有关。SG引入的随机性或噪声允许脱离局部最小值以达到更好的最小值。当然,这取决于您降低学习速度的速度。阅读《神经网络中随机梯度学习》(pdf)的第4.2节,其中对其进行了详细说明。


4
也不要忽略第4.1节,第二个定理是针对非凸函数的有限情况的,它说它仅收敛于(带有无限样本)梯度为0的某个点。它可能不是全局最小值,甚至可能不是最大值。由于更实际的原因(例如分布式学习),SGD更加有趣,但不确定它会“避免”局部最小值。
2014年

2

在随机梯度下降中,对于每个观测值估计参数,与常规梯度下降(批梯度下降)中的整个样本相反。这就是赋予它很多随机性的原因。随机梯度下降的路径在更多地方徘徊,因此更有可能“跳出”局部最小值,而找到全局最小值(注*)。但是,随机梯度下降仍然可能停留在局部最小值中。

注意:通常保持学习速率恒定,在这种情况下随机梯度下降不会收敛;它只是在同一点徘徊。但是,如果学习率随时间降低,例如,它与迭代次数成反比,那么随机梯度下降将收敛。


随机梯度下降并没有真正收敛,只是在某个点周围产生奇观,这是不正确的。如果学习率保持恒定的话。但是,学习率趋于零,因为以这种方式,当算法接近凸函数的最小值时,它将停止振荡并收敛。随机梯度收敛证明的关键是对一系列学习率施加的条件。参见Robbins和Monro原始论文的等式(6)和(27)。
克拉拉2014年

2

正如前面的答案中已经提到的那样,由于您要迭代地评估每个样本,因此随机梯度下降的噪声面要大得多。当您在每个时期都朝着批次梯度下降的全局最小值迈进时(经过训练集),根据所评估的样本,随机梯度下降梯度的各个步骤不一定总是指向全局最小值。

为了使用二维示例对此进行可视化,以下是Andrew Ng机器学习课程中的一些图和图纸。

首次下降:

在此处输入图片说明

第二,随机梯度下降:

在此处输入图片说明

下图中的红色圆圈应表明,如果您使用恒定的学习率,则随机梯度下降将“保持更新”在全局最小值附近的某个区域。

因此,如果您使用随机梯度下降,则这里有一些实用技巧:

1)在每个时期之前(或“标准”变体中的迭代)对训练集进行洗牌

2)使用自适应学习率“退火”更接近全局最小值


您为什么要在每个纪元之前改组训练集?SGD算法随机选择训练示例。
Vladislavs Dovgalecs 2015年

改组基本上是一种使其随机选择训练样本的方法。在我的实现中,我通常每一个时代之前洗牌训练集,然后就for通过洗好的一组-loop

2
嗯,在维基百科上,SGD算法被描述为“无需替换”,但是,Bottou像您一样描述它(Bottou,Léon。“具有随机梯度下降的大型机器学习。” COMPSTAT'2010的论文集。Physica-Verlag HD,2010年,第177-186页。),我想在这里我会比其他Wikipedia条目更信任Bottou。

4
@xeon查阅本文,该文章认为不更换样本更好。我的理解是,如果没有替代品,从经验上讲往往会更好,但是直到最近才进行理论分析。
Dougal

1
@xeon我只是看了Andrew Ng的课程中的PDF幻灯片,似乎他在Wikipedia(“无替代”变体)上描述了它,而不是Bottou。我在此处
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.