对于凸问题,随机梯度下降(SGD)中的梯度是否始终指向全局极值?


25

给定凸成本函数,使用SGD进行优化,我们将在优化过程中的某个点处具有一个梯度(矢量)。

我的问题是,给定凸面上的点,梯度是否仅指向函数增加/减少最快的方向,或者梯度始终指向成本函数的最优/极端

前者是本地概念,后者是全球概念。

SGD最终可以收敛到成本函数的极值。我想知道给定凸面上任意点的渐变方向与指向全局极值的方向之间的差异。

梯度的方向应该是函数在该点上最快增减的方向,对吗?


6
您是否曾经从山脊上直走下坡,却发现自己在一个继续向不同方向下坡的山谷中 面临的挑战是想象具有凸形地形的情况:想象一下刀刃,刀尖的顶部最陡。
ub

4
不,因为它是随机的梯度下降,而不是梯度下降。SGD的全部要点是,您丢弃了一些梯度信息以换取更高的计算效率,但是显然,丢弃一些梯度信息后,您将不再具有原始梯度的方向。这已经忽略了规则梯度是否指向最佳下降方向的问题,但是关键是,即使规则梯度下降确实如此,也没有理由期望随机梯度下降会这样做。
Chill2Macht

3
@Tyler,您的问题为何专门关于随机梯度下降。您是否想象与标准梯度下降相比有什么不同?
Sextus Empiricus

2
在这样的意义上,梯度将始终指向最佳值:梯度与最佳矢量之间的角度将小于,并且在梯度方向上行走的次数将是无穷小使您更接近最佳状态。π2
恢复莫妮卡

5
如果梯度直接指向全局最小化器,则凸优化将变得非常容易,因为然后我们可以进行一维线搜索以找到全局最小化器。这太令人期待了。
littleO

Answers:


36

他们说,一张图片的价值超过一千个字。在下面的示例中(由MS Paint提供,这是业余和专业统计学家的方便工具),您可以看到凸函数曲面和一个最陡下降方向与最佳方向明显不同的点。

细长凸函数的图像和箭头,显示最陡下降的方向与朝向全局最优方向的方向不同

值得一提的是:此主题中还有许多出色的答案,也值得赞扬。


27
今天的反例是...鳄梨!
JDL

11
您会看到切鳄梨时,应沿最陡的下降方向进行切割,以避免种子和可能的伤害
Jan Kukacka

28
  • 梯度下降法使用表面的斜率
  • 这将不是一定(甚至很可能不是)直接指向极值点。

直观的看法是想象下降的路径是弯曲的路径。例如,请参见下面的示例。

打个比方:想象一下,我蒙住了你,把你放在山上的某个地方,任务是回到极端(低点)。在山上,如果只有本地信息,那么您将知道湖底将朝哪个方向行驶。

如果可以假设凸度

  • 然后,您知道只有一个极端。
  • 然后,您知道只要向下移动,您肯定会达到极限。
  • 然后您还知道,最陡的下降方向和最佳方向之间的角度始终最大为π/2,正如索罗门诺夫的评论中提到的那样。

凸的

无凸度

  • 角度可能超过π/2。在下图中,通过针对特定点绘制下降方向的箭头来强调这一点,其中最终解垂直于下降方向的线后面

    在凸问题中,这是不可能的。您可以将此问题与成本函数的等值线联系起来,等值线在问题凸出时都具有相同的曲率。

非凸

随机梯度下降

  • 您遵循了最陡峭的方向点(和你反复地采取不同的点步骤)。在该示例中,问题是凸的,但是可能有多个解决方案。在该示例中,极值位于一条直线上(而不是单个点),并且从这个特定角度来看,您可以说“最陡下降方向”可能直接指向“最佳”位置(尽管它只是该功能的最佳位置)该特定训练样本点的

单点

下面是四个数据点的另一个视图。四个图像中的每个图像都显示不同点的表面。每个步骤选择一个不同的点,沿着该点计算梯度。这使得仅存在四个方向,而沿着该方向迈出的步伐却随着我们接近解决方案而逐渐减小。

随机梯度下降



上图是该函数生成的4个数据点的图像:

yi=e0.4xie0.8xi+ϵi

x = 0      2      4      6           
y = 0.006  0.249  0.153  0.098

结果是:

  • 非凸优化时,我们最小化(非线性)成本函数问题

    S(a,b)=i=1(yi(eaxiebxi))2
    S(a,b)=[i=12xieaxi(yieaxiebxi)i=12xiebxi(yieaxiebxi)]

  • 当我们最小化时的凸优化问题(如任何线性最小二乘法

    S(a,b)=i=1(yi(ae0.4xibe0.8xi))2
    S(a,b)=[i=12e0.4xi(yiae0.4xibe0.8xi)i=12e0.8xi(yiae0.4xibe0.8xi)]

  • 当我们最小化某些特定的时的凸优化问题(但没有一个最小值) ,其梯度为这具有多个最小值(存在多个和为其中)i

    S(a,b)=(yi(ae0.4bxibe0.8xi))2
    S(a,b)=[2e0.4xi(yiae0.4xibe0.8xi)2e0.8xi(yiae0.4xibe0.8xi)]
    abS=0


StackExchangeStrike撰写



17

即使目标函数是强凸的,最陡的下降也可能是无效的。

普通梯度下降

我的意思是“无效”,即即使函数是强凸的甚至是二次的,最陡峭的下降也可能会采取远离最佳值的剧烈振荡。

考虑。这是凸的,因为它是具有正系数的二次方。通过检查,我们可以看到它在处具有全局最小值。它具有渐变 f(x)=x12+25x22x=[0,0]

f(x)=[2x150x2]

以的学习率和初始猜测我们进行了梯度更新α=0.035x(0)=[0.5,0.5],

x(1)=x(0)αf(x(0))

展示了这种向最小的方向疯狂地前进的过程。

在此处输入图片说明

实际上,在和之间形成的角度只会逐渐衰减为0。这意味着就是更新的方向有时是错误的-最多最多错了68度-即使算法正在收敛并且工作正常。θ(x(i),x)(x(i),x(i+1))

在此处输入图片说明

每个步骤都在剧烈振荡,因为该功能在方向上比在方向上陡峭得多。因此,我们可以推断出梯度并非总是指向甚至是指向最小值。当Hessian的特征值在不同尺度上时,这是梯度下降的一般属性。在对应于具有最小特征值的特征向量的方向上进展缓慢,而在具有最大特征值的方向上进展最快。正是这种特性与学习速率的选择共同决定了梯度下降的发展速度。x2x12f(x)

达到最小值的直接路径将是“对角线”移动,而不是以这种方式(这种方式主要受垂直振荡的影响)移动。但是,梯度下降仅具有有关局部陡度的信息,因此“不知道”该策略会更有效,并且它受到具有不同尺度特征值的Hessian的变化的影响。

随机梯度下降

SGD具有相同的属性,不同之处在于更新比较吵杂,这意味着轮廓表面在每次迭代之间都不相同,因此渐变也不同。这意味着梯度阶跃方向与最佳值之间的角度也将产生噪声-只需想象相同的图形会有一些抖动即可。

更多信息:


该答案借鉴了神经网络设计(第2版)第9章的示例和数据,该书由Martin T. Hagan,Howard B. Demuth,Mark Hudson Beale,Orlando DeJesús撰写。


13

局部最陡方向与全局最优方向不同。如果是这样,那么您的渐变方向就不会改变;因为如果您始终朝着最优方向前进,那么您的方向向量将始终指向最优方向。但是,事实并非如此。如果是这种情况,为什么每次迭代都要计算梯度?


3

其他答案突出显示了GD / SGD的一些令人烦恼的收敛速度问题,但是您的评论“ SGD最终可以收敛...”并不总是正确的(忽略了关于“可以”一词的脚用法,因为这似乎意味着“将”)。

查找带有SGD的反例的一个不错的技巧是注意,如果每个数据点都相同,则成本函数是确定性的。想象一下一个极端病理性的示例,其中我们有一个数据点并且我们有一个模型基于单个参数

(x0,y0)=(1,0)
α
f(x,α)=α2αx.

以MSE作为我们的成本函数,它简化为是一个凸函数。假设我们的学习率选择得很差,因此我们的更新规则如下:现在,我们的成本函数在处具有最小值,但是如果我们从字面上开始而不是则SGD只会在起始点和之间的周期之间反弹,而不会收敛

(f(x0,α)y0)2=α2α,
β
αn+1=αnβ(2αn1)=αn(2αn1)=1αn.
α=12p=12p1p

我不确定凸度是否足以打破一般SGD所存在的更糟糕的行为,但是如果您允许成本函数的功能与立方一样复杂,则SGD可以在该域的密集子集中反弹并且永远不会收敛或接近任何周期。

SGD还可以接近/获得任何有限长度的周期,向发散,向振动(请注意),并具有大量其他病理行为。± ±

关于整个情况的一件有趣的事情是,存在着无数个函数(例如SGD),这些函数将任意凸函数作为输入,然后输出一个更新规则,该规则总是迅速收敛到全局最小值(如果存在)。尽管从概念上讲它们存在负载,但我们在凸优化上的最佳尝试都带有病理学反例。简单/直观/性能更新规则的想法在某种程度上与可证明正确的更新规则的想法背道而驰。


1
此观察值+1。但是,这个有点不好的选择,并且在规则梯度下降的情况下也很糟糕。这是一个很好的评论,但实际上与最陡峭的下降路径是否指向解决方案无关,而是与步长太大可能导致更新差异的问题有关。β=1
Sextus Empiricus

1
请注意,SGD收敛证明假设步长在减小……
Jan Kukacka

@MartijnWeterings很好的观察。我想我的示例确实指出了正确的方向。我是否应该使用一个永远不会指出正确方向并发散的2D示例进行更新?
汉斯·马斯格雷夫

@MartijnWeterings同意,是一个错误的选择。对于任何,都存在一个病理成本函数,该失败。最简单的一种源于β > 0 β ˚F X α = β=1β>0βf(x,α)=α2αxβ.
汉斯·马斯格雷夫

@JanKukacka这是对SGD的常见修改,存在类似缺陷。您可以选择,而不是使成本函数成为抛物线,而是使成为对称凸函数,该对称凸函数在两个方向上都从最小值迅速上升,以抵消的冷却速率。我见过的SGD收敛证明仅具有概率1,并且依赖于成本函数空间的典型度量,这些概率函数为0且选择不正确。βfβ
汉斯·穆斯格雷夫

2

也许这个问题的答案需要快速更新。似乎在非凸情况下,SGD也会产生全局最小值(凸只是这种情况的特例):

SGD通过星凸路径收敛至全球深度学习的最低要求,匿名作者,论文在ICLR 2019上受到双盲审查

https://openreview.net/pdf?id=BylIciRcYQ

作者将神经网络训练中经常遇到的非凸优化问题的SGD收敛到全局最小值。该论点具有以下两个重要特性:1)训练损失可以达到零值(大约);2)SGD遵循星形-凸形路径。在这种情况下,尽管SGD长期以来一直被视为一种随机算法,但本文揭示了它以一种固有的确定性方式收敛于全局最小值。

这应该与一粒盐一起服用。该文件仍在审查中。

星形-凸路径的概念为每次迭代中渐变将指向的位置提供了提示。

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.