Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

陈萍、杜伟机器之心报道

非凸函数上,随机梯度下降能否收敛?网友热议:能,但有条件,且比凸函数收敛更难

非凸优化问题被认为是非常难求解的,因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级的(NP 困难)。那么随机梯度下降能否收敛于非凸函数?针对这一问题,众多网友进行了一番讨论。

机器学习领域,我们经常会听到凸函数和非凸函数,简单来讲,凸函数指的是顺着梯度方向走,函数能得到最优解 ,大部分传统机器学习问题都是凸的。而非凸指的是顺着梯度方向走能够保证是局部最优,但不能保证是全局最优,深度学习以及小部分传统机器学习问题都是非凸的。

在寻求最优解的过程中,研究者通常采用梯度下降算法。近日,reddit 上的一个热议帖子,帖子内容为「随机梯度下降能否收敛于非凸函数?」

图片

原贴内容包括:大量的研究和工作表明梯度下降算法可以收敛于(确定性)凸函数、可微和利普希茨连续函数

图片

然而,在非凸函数领域,基于梯度下降算法(例如随机梯度下降)的收敛程度有多大,目前看来研究还不够充分。例如,神经网络中的损失函数几乎是非凸的。非凸函数通常有鞍点(即损失函数的一阶导数为 0 的点),我们可以将这些鞍点视为「陷阱」,鞍点的存在阻止梯度下降到最优点,因为梯度下降导数为 0 时不能向前移动。

图片

两座山中间的鞍点(双纽线的交叉点)

机器学习深度学习中使用的优化算法除了常见的梯度下降和随机梯度下降,还包括其他版本,例如 Nesterov 动量、Adam、RMSprop 等几种优化器,这些优化器旨在让梯度远离鞍点。对于这些算法,发帖者很熟悉,但 ta 比较感兴趣的是随机梯度下降算法本身的理论局限性有哪些?

在过去的几周里,发帖人一直在阅读有关这个主题的文章,但是理解其中一些结果所需的数学知识远远超出了 ta 的能力范围。为了弄清这个问题,ta 也查阅了大量的文献,以下是其中 2 篇:

文献 1:Stochastic Gradient Descent for Nonconvex Learning without Bounded Gradient Assumptions

  • 随机梯度下降被大量应用于非凸函数,但研究者对非凸函数的随机梯度下降的理论尚未完全了解(目前仅对凸函数的随机梯度下降有了解);

  • 现阶段随机梯度下降要求对梯度的一致有界性施加一个假设;

  • 论文作者建立了非凸函数随机梯度下降理论基础,使有界假设可以消除而不影响收敛速度;

  • 论文建立了应用于非凸函数随机梯度下降收敛的充分条件和最优收敛速度。


文献 2 :Stochastic Gradient Descent on Nonconvex Functions with General Noise Models

  • 尽管随机梯度下降的最新进展值得注意,但这些进展是建立在对正在优化的函数施加了某些限制(例如,凸性、全局利普希茨连续等)的基础之上;

  • 作者证明,对于一般类的非凸函数,随机梯度下降迭代要么发散到无穷大,要么收敛到概率为 1 的静止点;

  • 作者进一步限制并证明,无论迭代是发散还是保持有限 —— 在随机梯度下降的迭代中评估的梯度函数的范数以概率 1 收敛到零,并且符合预期;从而扩大了随机梯度下降可以应用于的函数范围,同时保持对其全局行为的严格保证。


发帖人表示:基于这些文献,我们是否真的能够证明(随机)梯度下降有潜力在非凸函数上显示类似的全局收敛性质,达到之前仅在凸函数上显示收敛程度

但是我们仍然有理由相信(随机)梯度下降与凸函数相比在非凸函数上收敛更困难。

网友:问题改成「梯度下降在什么条件下会收敛于非凸函数」更好

针对发帖者的这一问题 —— 随机梯度下降能否收敛于非凸函数?网友纷纷从自身经验进行解答。机器之心从中挑选出了几个获赞较多的回复。

首先来看网友 @anonymousTestPoster 的回答。ta 表示,假设存在一个表现良好的非凸函数,可以参见 Issam Laradji 撰写的《非凸优化》文档。

地址:https://www.cs.ubc.ca/labs/lci/mlrg/slides/non_convex_optimization.pdf

如果存在向下延伸至 Hessian 矩阵的 Lipschitz 连续性限制,则文档 19 页中的 Thm 似乎表明可以不断取得进展以接近顶点。

图片

如果想要更复杂的函数,则几乎可以肯定需要的函数是可微的或者利普希茨连续,否则只能选择一些处处连续、无处可微的疯狂函数(crazy function),例如 Weierstrass 函数。

所以,关于「随机梯度下降能否收敛于非凸函数」这一问题,ta 认为在某些条件下「会」,因为很多非凸函数可能扰乱可微性。在提出反例时,永远不要低估数学家的想象力。

所以,ta 建议发帖者将问题改成「梯度下降在什么条件下会收敛于某类非凸函数」,然后将每类函数作为子问题进行研究,并消除打破传统梯度下降方法的非凸函数反例。

图片


接着来看网友 @astone977 指出了原贴内容中存在的一些问题。ta 表示,当发帖者认为神经网络的误差表面是非凸时,则损失函数也是非凸的。但是,MSE 等损失函数是凸函数。将一个非凸映射(神经网络)应用于一个损失函数的输入,可以创建一个非凸误差表面。

如果我们将 MSE、BCE 等凸函数称为损失函数,那么不应该使用相同的术语来描述一个神经网络的非凸误差表面。这在过去一直是造成混乱的根源,所以 ta 指了出来。

图片

最后,网友 @Funktapus 也表示,如果发帖者只是在讨论优化期间避免局部最小值,则这是优化领域一个普遍且非常古老的问题。通常而言,答案是「会」。

我们可以使用随机方法来跳出小的局部最小值。蒙特・卡罗方法(Monte Carlo)是一种经典的方法。另一种方法是在开始梯度下降之前建立一个网格并找出全局最小值的大区域。

图片

大家如何看待这个问题呢?感兴趣的小伙伴请在留言区积极发言。

参考链接:https://www.reddit.com/r/MachineLearning/comments/slnvzw/d_can_stochastic_gradient_descent_converge_on/
理论随机梯度下降非凸优化
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

凸优化技术

凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。凸优化在某种意义上说较一般情形的数学最优化问题要简单,譬如在凸优化中局部最优值必定是全局最优值。凸函数的凸性使得凸分析中的有力工具在最优化问题中得以应用,如次导数等。 凸优化应用于很多学科领域,诸如自动控制系统,信号处理,通讯和网络,电子电路设计,数据分析和建模,统计学(最优化设计),以及金融。在近来运算能力提高和最优化理论发展的背景下,一般的凸优化已经接近简单的线性规划一样直捷易行。许多最优化问题都可以转化成凸优化(凸最小化)问题,例如求凹函数f最大值的问题就等同于求凸函数 -f最小值的问题。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

推荐文章
暂无评论
暂无评论~