梯度下降总是收敛到最优吗?

数据挖掘 机器学习 神经网络 深度学习 优化 梯度下降
2021-09-18 20:55:01

我想知道是否存在梯度下降不会收敛到最小值的情况。

我知道梯度下降并不总能保证收敛到全局最优值。我也知道,如果步长太大,它可能会偏离最佳值。但是,在我看来,如果它偏离某个最优值,那么它最终会走向另一个最优值。

因此,梯度下降将保证收敛到局部或全局最优。是对的吗?如果不是,您能否提供一个粗略的反例?

4个回答

梯度下降是一种旨在寻找最佳点的算法,但这些最佳点不一定是全局的。是的,如果它发生偏离本地位置的情况,它可能会收敛到另一个最佳点,但它的概率不会太大。原因是步长可能太大,导致它后退一个最佳点,并且它振荡的概率远大于收敛。

关于梯度下降主要有两种观点,机器学习时代和深度学习时代。在机器学习时代,人们认为梯度下降会找到局部/全局最优值,但在输入特征维度过多的深度学习时代,实践表明所有特征都位于最优值的概率在单个点上并不过分,而是在成本函数中找到最佳位置,大多数时候观察到鞍点。这是使用大量数据和训练时期进行训练导致深度学习模型优于其他算法的原因之一。因此,如果你训练你的模型,它会找到一条弯路,或者会找到下坡路,不会卡在鞍点,但你必须有适当的步长。

有关更多直觉,我建议您参考此处此处

除了您提到的几点(收敛到非全局最小值,以及可能导致非收敛算法的大步长),“拐点范围”也可能是一个问题。

考虑以下“躺椅”类型的功能。

在此处输入图像描述

显然,这可以构造成中间有一个范围,其中梯度是 0 向量。在这个范围内,算法可以无限期卡住。拐点通常不被视为局部极值。

共轭梯度不能保证达到全局最优或局部最优!有些点的梯度非常小,不是最优的(拐点、鞍点)。梯度下降可以收敛到一个点X=0 对于函数 F(X)=X3.

[注 2019 年 4 月 5 日:该论文的新版本已在 arXiv 上更新,有许多新结果。我们还引入了 Momentum 和 NAG 的回溯版本,并在与回溯梯度下降相同的假设下证明收敛。

源代码可在 GitHub 上的链接中找到。

我们改进了应用于 DNN 的算法,并获得了比 MMT、NAG、Adam、Adamax、Adagrad 等最先进的算法更好的性能...

我们算法最特别的特点是它们是自动的,您不需要像通常的做法那样手动微调学习率。我们的自动微调在本质上与 Adam、Adamax、Adagrad 等不同。更多细节在论文中。

]

基于最近的结果:在我在本文中的联合工作中

我们展示了回溯梯度下降,当应用于任意 C^1 函数时 F,只有可数个临界点,总是要么收敛到临界点,要么发散到无穷大。对于通用函数,例如对于所有 Morse 函数,都满足此条件。我们还表明,从某种意义上说,极限点是鞍点是非常罕见的。因此,如果您的所有临界点都是非退化的,那么在某种意义上,极限点都是最小值。[有关标准梯度下降情况下的已知结果,另请参阅引用论文中的参考资料。]

基于上述,我们提出了一种新的深度学习方法,该方法与当前最先进的方法相当,并且不需要手动微调学习率。简而言之,这个想法是你运行回溯梯度下降一段时间,直到你看到随着每次迭代而变化的学习率变得稳定。我们期望这种稳定,特别是在一个关键点是C^2 并且是非退化的,因为我上面提到的收敛结果。此时,您切换到标准梯度下降法。有关更多详细信息,请参阅引用的论文。此方法也可以应用于其他优化算法.)

PS关于您关于标准梯度下降法的原始问题,据我所知,仅在地图的导数是全局 Lipschitz 并且学习率足够小以至于标准梯度下降法被证明可以收敛的情况下。[如果不满足这些条件,有简单的反例表明不可能有收敛结果,请参阅引用的论文。] 在上面引用的论文中,我们认为从长远来看,回溯梯度下降法将变为标准梯度下降法,它解释了为什么标准梯度下降法通常在实践中效果很好。

[附录:2021 年 3 月 30 日] 受 Dole 的评论(我在下面回复)的启发,值得一提的是,可以显示 Backtracking GD arXiv:1911.04221 的最新变体,用于具有可数很多的成本函数临界点或满足 Lojasiewicz 梯度不等式,要么发散到无穷大,要么收敛到不是鞍点的单极限点(因此,粗略地说,收敛到局部最小值)。

[备注:2021 年 3 月 30 日] 鉴于下面 Dole 的评论,我想强调一下,这里提到的结果是针对迭代优化算法(实际有用),而不是针对流方法(例如梯度流)。此外,此处结果中的假设非常笼统,不需要(强)凸性或紧凑子级别或 C^{1,1}_L 等。在阅读书籍/论文中的结果时,检查结果的假设以查看它们是否实际有用或大多是陈词滥调是有帮助的。