晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

梯度下降是机器学习中求最小值最常用的一种算法。尽管这种算法应用广泛,但是人们关于它计算复杂度的理论研究却寥寥无几。

在今年ACM举办的计算机理论顶会STOC上,牛津大学和利物浦大学的学者们,给我们证明了这个理论问题的答案。

他们得到了梯度下降算法的计算复杂度,等于两类计算机问题的交集。

这篇文章也成为了STOC 2021的最佳论文

梯度下降的复杂度

四位作者研究人员将目光放在了TFNP中两个子集问题的交集。

第一个子集称为PLS (多项式局部搜索)。

这是一系列问题,涉及在特定区域中寻找函数的最小值或最大值。

属于PLS的一个典型例子是规划一条路线的任务,以最短的路线经过一些城市,且只能通过切换城市的顺序来改变行程。

通过调整顺序可以很容易看出哪些路线缩短了行程,最终你会找到某一条路线,无法进一步缩短路程,这条路线x就是你要找到的最小值。

用数学公式来表示就是:(p是求路线总长度的函数,g(x)表示改变x得到的新路线)

TFNP问题的第二个子集是PPAD (有向图上的多项式奇偶校验参数)。

这个问题的解来自更复杂的过程,比如Brouwer不动点定理,即对于满足一定条件的连续函数,存在一个点保持不变。

例如,如果你搅动一杯水,Brouwer不动点定理保证绝对会有一个水分子会回到它最初的位置。

用数学公式来表示就是:

实际应用中,我们不可能要求找到以上两个问题绝对精确的解,只要误差小于规定的值ε即可,也就是:

PLS和PPAD这两类问题的交集本身形成了一类称为PLS∩PPAD 的问题。

然而,直到现在,研究人员都无法找到PLS∩PPAD完全问题的一个天然的例子。所谓的完全问题,就是某类问题中最典型、最难的问题。

现在,来自牛津大学和利物浦大学的学者们终于找到了,梯度下降问题(GD)就是,它等价于PLS与PPAD的交集。

PPAD∩PLS是可以通过在有界域上执行梯度下降来解决的所有问题的类别。

而PLS与PPAD的交集,被他们证明等价于CLS (连续局域搜索问题)

PLS与PPAD的任意解(either-solution)就是PLS∩PPAD完全问题的解。

到了这里,梯度下降算法与这两个问题有什么联系呢?

请看梯度下降算法的迭代公式:

在求解实际问题,我们也是在寻找局部最小值的近似解。我们可以设置两种计算终止条件:

1、如果x’与x这两个点的损失函数小于精度ε:

那么计算终止,这与前面PLS中的Real-Local-Opt问题类似。

2、如果x’与x这两个点的空间距离小于精度ε:

那么计算终止,这与前面PPAD中的Brouwer不动点问题类似。

第一种相当于是PLS,第二种相当于是PPAD。

该结果意味着,梯度下降算法精度和速度之间存在基本联系,为获得更高精度,计算时间将会不成比例地迅速增长。

精度与时间的平衡点

实际上,吴恩达在自己的机器学习课程中已经指出,梯度下降算法的运算复杂度和步数n的平方成正比。

若对精度要求高,需要将学习率η设置得更小。

如果机器学习研究者可能希望将实验的精度提高到2倍,那么可能不得不将梯度下降算法的运行时间增加到4倍。

这表明,梯度下降在实践中必须做出某种妥协。要么接受不太高的精度,要么花费更长的运行时间来换取。

例如,一些对SGD进行加速的优化算法,虽然收敛速度更快,但很有可能陷入局部最小值。要想获得精度更高的结果,往往必须回归到SGD。

对于某些精度很重要的问题,运行时长会让梯度下降算法变得不可行。

但这并不是说梯度下降的快速算法不存在,但如果存在着这样的算法,将意味着PLS∩PPAD也存在快速算法,但寻找后者的快速算法要比前者难得多。

最后,这一问题的计算机自动证明代码已经开源,有兴趣的朋友可以前去观摩尝试。

参考链接:
[1]https://www.quantamagazine.org/how-big-data-carried-graph-theory-into-new-dimensions-20210819/
[2]https://www.youtube.com/watch?v=as720_SRpY0&ab_channel=SIGACTEC
[3]https://arxiv.org/abs/2011.01929
[4]https://github.com/jfearnley/PPADPLS/

步子太快容易牺牲精度,梯度下降复杂度这一简单道理,获严格数学证明相关推荐

  1. 不能兼顾速度与精度,STOC 2021最佳论文揭示梯度下降复杂度理论

    ©作者 | 机器之心编辑部 来源 | 机器之心 梯度下降算法具有广泛的用途,但是关于它的计算复杂度的理论研究却非常少.最近,来自利物浦大学.牛津大学的研究者从数学的角度证明了梯度下降的计算复杂度,这项 ...

  2. 最佳论文!牛津大学揭示梯度下降复杂度理论

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 梯 ...

  3. Sklearn官方文档中文整理4——随机梯度下降和最近邻篇

    Sklearn官方文档中文整理4--随机梯度下降和最近邻篇 1. 监督学习 1.5. 随机梯度下降 1.5.1. 分类[linear_model.SGDClassifier] 1.5.2. 回归[li ...

  4. 梯度下降原理(SGD,Adam,BGD,momentum,Adagrad,NAG)

    近年来,AI大潮汹涌澎湃,包括机器学习,深度学习,计算机视觉,自然语言处理在内的许多领域都在迅速发展,并取得了显著的成果.每年都会有很多优秀经典的算法提出来,适用于不同的场景.However,现在网络 ...

  5. 各种 Optimizer 梯度下降优化算法回顾和总结

    1. 写在前面 当前使用的许多优化算法,是对梯度下降法的衍生和优化.在微积分中,对多元函数的参数求  偏导数,把求得的各个参数的导数以向量的形式写出来就是梯度.梯度就是函数变化最快的地方.梯度下降是迭 ...

  6. 各种 Optimizer 梯度下降优化算法总结

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:DengBoCong,编辑:极市平台 来源:https://zhu ...

  7. 梯度下降背后的数学原理几何?

    来自 | 深度学习这件小事   编辑 | Datawhale 对于诸位"机器学习儿"而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人"敬而 ...

  8. 深度学习 Optimizer 梯度下降优化算法总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:https://zhuanlan.zhihu.com/p/3 ...

  9. 各种Optimizer梯度下降优化算法回顾和总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法那些事 论文标题:An overview o ...

最新文章

  1. 计算机保密工作自查自评报告,2020年保密工作自查自评报告
  2. 网络推广公司浅析网站栏目页该如何优化?
  3. 若格式化都无效 如何清除”不可杀“病毒?
  4. 在Linux上编写并运行Java文件
  5. [html] html的标签元素分为哪几大类?分别有什么作用?
  6. 异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.
  7. 一文搞定 Hive 表分隔符
  8. 书------编程(C#)
  9. 腾讯开工日1.5亿美元领投Reddit,美国贴吧最新估值30亿美元
  10. 移动web端的react.js组件化方案
  11. Linux Shell变量
  12. ASP.NET基础教程-利用javascript将光标定位到文本框
  13. python类的继承举例_python类的继承实例详解
  14. 6.1离散时间马尔科夫链
  15. php返回代码翻译,php 在线翻译函数代码
  16. VB连接数据库SQL sever
  17. EXCEL绘制均值极差控制图
  18. R语言七天入门教程七:项目实战
  19. 老年人-傻妞机器人安装及使用教程
  20. PB proUSB门锁接口函数例程

热门文章

  1. 如何将Swift数组转换为字符串?
  2. ArrayList和Vector有什么区别?
  3. 将嵌套的Python字典转换为对象?
  4. 如何在Git中克隆单个分支?
  5. 如何丢弃Git中未进行的变更?
  6. 分析师洞察:边缘数据中心的UPS系统
  7. Android,使用Json发送数据中,使用的Java转义字符 KanKan原创
  8. 初探 开源视频会议 openmeeting
  9. Wifitap是一个WiFi注入工具集常用命令集合大学霸IT达人
  10. Xamarin图表开发基础教程(6)OxyPlot框架