给定凸成本函数,使用SGD进行优化,我们将在优化过程中的某个点处具有一个梯度(矢量)。
我的问题是,给定凸面上的点,梯度是否仅指向函数增加/减少最快的方向,或者梯度始终指向成本函数的最优/极端?
前者是本地概念,后者是全球概念。
SGD最终可以收敛到成本函数的极值。我想知道给定凸面上任意点的渐变方向与指向全局极值的方向之间的差异。
梯度的方向应该是函数在该点上最快增减的方向,对吗?
给定凸成本函数,使用SGD进行优化,我们将在优化过程中的某个点处具有一个梯度(矢量)。
我的问题是,给定凸面上的点,梯度是否仅指向函数增加/减少最快的方向,或者梯度始终指向成本函数的最优/极端?
前者是本地概念,后者是全球概念。
SGD最终可以收敛到成本函数的极值。我想知道给定凸面上任意点的渐变方向与指向全局极值的方向之间的差异。
梯度的方向应该是函数在该点上最快增减的方向,对吗?
Answers:
他们说,一张图片的价值超过一千个字。在下面的示例中(由MS Paint提供,这是业余和专业统计学家的方便工具),您可以看到凸函数曲面和一个最陡下降方向与最佳方向明显不同的点。
值得一提的是:此主题中还有许多出色的答案,也值得赞扬。
直观的看法是想象下降的路径是弯曲的路径。例如,请参见下面的示例。
打个比方:想象一下,我蒙住了你,把你放在山上的某个地方,任务是回到极端(低点)。在山上,如果只有本地信息,那么您将不知道湖底将朝哪个方向行驶。
角度可能超过。在下图中,通过针对特定点绘制下降方向的箭头来强调这一点,其中最终解在垂直于下降方向的线后面。
在凸问题中,这是不可能的。您可以将此问题与成本函数的等值线联系起来,等值线在问题凸出时都具有相同的曲率。
下面是四个数据点的另一个视图。四个图像中的每个图像都显示不同点的表面。每个步骤选择一个不同的点,沿着该点计算梯度。这使得仅存在四个方向,而沿着该方向迈出的步伐却随着我们接近解决方案而逐渐减小。
上图是该函数生成的4个数据点的图像:
x = 0 2 4 6
y = 0.006 0.249 0.153 0.098
结果是:
非凸优化时,我们最小化(非线性)成本函数问题
当我们最小化时的凸优化问题(如任何线性最小二乘法
当我们最小化某些特定的时的凸优化问题(但没有一个最小值) ,其梯度为这具有多个最小值(存在多个和为其中)
即使目标函数是强凸的,最陡的下降也可能是无效的。
我的意思是“无效”,即即使函数是强凸的甚至是二次的,最陡峭的下降也可能会采取远离最佳值的剧烈振荡。
考虑。这是凸的,因为它是具有正系数的二次方。通过检查,我们可以看到它在处具有全局最小值。它具有渐变
以的学习率和初始猜测我们进行了梯度更新
展示了这种向最小的方向疯狂地前进的过程。
实际上,在和之间形成的角度只会逐渐衰减为0。这意味着就是更新的方向有时是错误的-最多最多错了68度-即使算法正在收敛并且工作正常。
每个步骤都在剧烈振荡,因为该功能在方向上比在方向上陡峭得多。因此,我们可以推断出梯度并非总是指向甚至是指向最小值。当Hessian的特征值在不同尺度上时,这是梯度下降的一般属性。在对应于具有最小特征值的特征向量的方向上进展缓慢,而在具有最大特征值的方向上进展最快。正是这种特性与学习速率的选择共同决定了梯度下降的发展速度。
达到最小值的直接路径将是“对角线”移动,而不是以这种方式(这种方式主要受垂直振荡的影响)移动。但是,梯度下降仅具有有关局部陡度的信息,因此“不知道”该策略会更有效,并且它受到具有不同尺度特征值的Hessian的变化的影响。
SGD具有相同的属性,不同之处在于更新比较吵杂,这意味着轮廓表面在每次迭代之间都不相同,因此渐变也不同。这意味着梯度阶跃方向与最佳值之间的角度也将产生噪声-只需想象相同的图形会有一些抖动即可。
更多信息:
该答案借鉴了神经网络设计(第2版)第9章的示例和数据,该书由Martin T. Hagan,Howard B. Demuth,Mark Hudson Beale,Orlando DeJesús撰写。
其他答案突出显示了GD / SGD的一些令人烦恼的收敛速度问题,但是您的评论“ SGD最终可以收敛...”并不总是正确的(忽略了关于“可以”一词的脚用法,因为这似乎意味着“将”)。
查找带有SGD的反例的一个不错的技巧是注意,如果每个数据点都相同,则成本函数是确定性的。想象一下一个极端病理性的示例,其中我们有一个数据点并且我们有一个模型基于单个参数
以MSE作为我们的成本函数,它简化为是一个凸函数。假设我们的学习率选择得很差,因此我们的更新规则如下:现在,我们的成本函数在处具有最小值,但是如果我们从字面上开始而不是则SGD只会在起始点和之间的周期之间反弹,而不会收敛。
我不确定凸度是否足以打破一般SGD所存在的更糟糕的行为,但是如果您允许成本函数的功能与立方一样复杂,则SGD可以在该域的密集子集中反弹并且永远不会收敛或接近任何周期。
SGD还可以接近/获得任何有限长度的周期,向发散,向振动(请注意),并具有大量其他病理行为。± ∞
关于整个情况的一件有趣的事情是,存在着无数个函数(例如SGD),这些函数将任意凸函数作为输入,然后输出一个更新规则,该规则总是迅速收敛到全局最小值(如果存在)。尽管从概念上讲它们存在负载,但我们在凸优化上的最佳尝试都带有病理学反例。简单/直观/性能更新规则的想法在某种程度上与可证明正确的更新规则的想法背道而驰。
也许这个问题的答案需要快速更新。似乎在非凸情况下,SGD也会产生全局最小值(凸只是这种情况的特例):
SGD通过星凸路径收敛至全球深度学习的最低要求,匿名作者,论文在ICLR 2019上受到双盲审查
作者将神经网络训练中经常遇到的非凸优化问题的SGD收敛到全局最小值。该论点具有以下两个重要特性:1)训练损失可以达到零值(大约);2)SGD遵循星形-凸形路径。在这种情况下,尽管SGD长期以来一直被视为一种随机算法,但本文揭示了它以一种固有的确定性方式收敛于全局最小值。
这应该与一粒盐一起服用。该文件仍在审查中。
星形-凸路径的概念为每次迭代中渐变将指向的位置提供了提示。