©作者 | 陈萍、杜伟

来源 | 机器之心

非凸优化问题被认为是非常难求解的,因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度是指数级的(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 认为在某些条件下「会」,因为很多非凸函数它们可能扰乱 wrt 可微性。在提出反例时,永远不要低估数学家的想象力。

所以,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/

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

非凸函数上,随机梯度下降能否收敛?能,但有条件,且比凸函数收敛更难相关推荐

  1. 批梯度下降 随机梯度下降_梯度下降及其变体快速指南

    批梯度下降 随机梯度下降 In this article, I am going to discuss the Gradient Descent algorithm. The next article ...

  2. 随机梯度下降python_(史上最详细)批量梯度下降算法、随机梯度下降算法、小批量梯度下降算法python代码实现...

    伪代码: 批量梯度下降法(Batch Gradient Descent): Repeat until convergence{ } 随机梯度下降法(Stochastic Batch Gradient ...

  3. 深度学习与计算机视觉系列(4)_最优化与随机梯度下降\数据预处理,正则化与损失函数

    1. 引言 上一节深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器中提到两个对图像识别至关重要的概念: 用于把原始像素信息映射到不同类别得分的得分函数/score function 用 ...

  4. 深度学习必备:随机梯度下降(SGD)优化算法及可视化

    补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...

  5. Lesson 4.34.4 梯度下降(Gradient Descent)基本原理与手动实现随机梯度下降与小批量梯度下降

    Lesson 4.3 梯度下降(Gradient Descent)基本原理与手动实现 在上一小节中,我们已经成功的构建了逻辑回归的损失函数,但由于逻辑回归模型本身的特殊性,我们在构造损失函数时无法采用 ...

  6. 随机梯度下降(Stochastic gradient descent)

    总目录 一. 凸优化基础(Convex Optimization basics) 凸优化基础(Convex Optimization basics) 二. 一阶梯度方法(First-order met ...

  7. 深度学习系列之随机梯度下降(SGD)优化算法及可视化

    补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...

  8. 几种优化算法的读书笔记——梯度下降、牛顿法、拟牛顿法、随机梯度下降、AdaGrad、RMSProp、Adam及选择优化算法的建议

    文章目录 1 梯度下降 1.1 特点 1.2 思想 1.3 数学基础 1.4 具体算法 2 牛顿法和拟牛顿法 2.1 特点 2.2 牛顿法 2.2.1 数学基础 2.2.2 思想 2.2.3 具体算法 ...

  9. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)及 batch、epoch、iteration

    先介绍一下梯度下降:梯度下降是一种用于机器学习训练参数的一种优化方法.对损失函数进行梯度下降,"梯度"指误差梯度或误差斜率,"下降"指沿着误差斜率移动到误差较小 ...

最新文章

  1. zabbix 系统搭建(LAMP环境)+keepalived LVS配置
  2. 混合云存储跨云灾备方案之跨云容灾
  3. 【转】一位软件工程师的6年总结
  4. 逆向学习技术!拆解驱动器,学习布局走线技术
  5. SQL Server 2005中的ROW_NUMBER和RANK
  6. mysql show table column_mysql show columns 等show的用法
  7. 用ObjectProxy扩展模型对象
  8. Android单元测试读写文件,xml-如何为android单元测试提供数据文件
  9. linux 拷机软件,拷机软件跑起来,OS X平台下OpenGL初体验
  10. 自动控制原理_电容补偿的作用与自动控制原理
  11. 易筋SpringBoot 2.1 | 第廿三篇:SpringBoot之Docker入门
  12. python中实例是什么_Python里类和实例是什么
  13. opencv+海康威视网络摄像头实时预览+抓图(环境配置加程序)
  14. 浅谈西门子840d主轴速度控制_西门子 840D 数控系统故障诊断与维修
  15. 美通社企业新闻汇总 | 2019.3.1 | 东京是亚洲商务休闲最佳目的地;贺恩霆担任赛诺菲中国区总裁...
  16. 小马哥----高仿苹果5se 机型界面图面面观,低配机型 谨防假冒
  17. 蓝桥杯 2016-9 取球博弈
  18. oracle to_char 和 to_date的区别,斜杠和横杠日期转换,mybatis中入参日期,数据库字段是date的写法
  19. Ubuntu:一些普通软件的安装与卸载
  20. 【罗塞塔石碑】—My Lover(One.iso)

热门文章

  1. 零基础也可以实现“机器同传翻译”!
  2. qt mysql数据库连接池_qt中使用数据库连接池
  3. 图像的灰度级数越多越好_数字图像处理:Reducing Gray Levels, Zooming and Shrinking
  4. 创建一个html网页,创建第一个HTML网页(未完待续)
  5. oracle过率乱码,oracle中文乱码问题处理
  6. mysql window怎么安装补丁_window下mysql安装步骤
  7. glide默认的缓存图片路径地址_手写一个静态资源中间件,加深了解服务器对文件请求的缓存策略...
  8. python发送文件给微信好友_Python定时自动给微信好友发送天气预报
  9. python中long类型的取值范围_java基本数据类型取值范围
  10. Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间