摘要:深度学习的核心问题就是一个非常难的优化问题。所以在神经网络引入后的几十年间,深度神经网络的优化问题的困难性是阻碍它们成为主流的一个重要因素。因此我们对机器学习研究人员尝试找到可证明地解决深度神经网络优化问题的算法不抱有太大的希望。
深度学习的核心问题就是一个非常难的优化问题。所以在神经网络引入后的几十年间,深度神经网络的优化问题的困难性是阻碍它们成为主流的一个重要因素。并导致了它们在20世纪90年代到21世纪初期间的衰落。不过现在已经基本解决了这个问题。在本篇博文中,我会探讨优化神经网络的“困难性”,以及理论上是怎么解释这个问题的。简而言之:神经网络变得越深,优化问题就会变得越难。
最简单的神经网络是单节点感知器,其优化问题是凸问题。凸优化问题的好处是所有的局部最小值也是全局最小值。存在各种各样的优化算法来解决凸优化问题,并且每隔几年就会发现更好的用于凸优化的多项式时间的算法。使用凸优化算法可以轻松地优化单个神经元的权重(参见下图)。下面让我们看看扩展一个单神经元后会发生什么。
图1 左图:一个凸函数。右图:一个非凸函数。凸函数比非凸函数更容易找到函数曲面的底部(来源:Reza Zadeh)
下一步自然就是在保持单层神经网络的情况下添加更多的神经元。对于单层n节点感知器的神经网络,如果存在边权重可以使得神经网络能正确地对训练集进行分类,那么这样的边权重是可以通过线性规划在多项式时间O(n)内找到。线性规划也是凸优化的一种特殊情况。这时一个问题应运而生:我们可以对更深的多层神经网络做出这种类似的保证么?不幸的是,不能。
为了可证明地解决两层或多层的一般神经网络的优化问题,需要的算法将会遇到某些计算机科学中较大的未解问题。因此我们对机器学习研究人员尝试找到可证明地解决深度神经网络优化问题的算法不抱有太大的希望。因为这个优化问题是NP-hard问题,这意味着如果在多项式时间内可证明地解决这个问题,那么也可以解决那些几十年来尚未被解决的成千上万的问题。事实上,J. Stephen Judd在1988年就发现下面这个问题是NP-hard问题:
给定一个一般的神经网络和一组训练样本,是否存在一组网络边权重使得神经网络能为所有的训练样本产生正确的输出?
Judd的研究还表明:即使要求一个神经网络只为三分之二的训练样本产生正确的输出仍然是一个NP-hard问题。这意味着即使在最坏的情况下,近似训练一个神经网络在本质上还是困难的。1993年Blum和Rivest发现的事实更糟:即使一个只有两层和三个节点的简单神经网络的训练优化问题仍然是NP-hard问题。
理论上,深度学习与机器学习中的很多相对简单的模型(例如支持向量机和逻辑回归模型)的区别在于,这些简单模型可以数学证明地在多项式时间内完成模型优化。对于这些相对简单的模型,我们可以保证即使用运行时间比多项式时间更长的优化算法也都不能找到更好的模型。但是现有的深度神经网络的优化算法并不能提供这样的保证。在你训练完一个深度神经网络模型之后,你并不知道这个网络模型是否是在你的当前配置下能找到的最优的一个模型。所以你会存有疑虑,如果继续训练模型的话是否可以得到一个更好的模型。
幸运的是我们在实践中可以非常高效地接近这些最优结果:通过运行经典的梯度下降优化方法就可以得到足够好的局部最小值,从而可以使我们在许多常见问题上取得巨大进步,例如图像识别、语音识别和机器翻译。我们简单地忽略最优结果,并在时间允许的情况下尽可能多地进行梯度下降迭代。
似乎传统的优化理论结果是残酷的,但我们可以通过工程方法和数学技巧来尽量规避这些问题,例如启发式方法、增加更多的机器和使用新的硬件(如GPU)。一些研究工作正在积极地探索为什么理论结果很残酷,但这些经典的优化算法却工作得这么好。
深度学习能成功的因素远远不只克服优化问题。神经网络的架构、训练数据的数量、损失函数和正则化等都对于能在机器学习任务中获得高质量的结果起着关键作用。在后续的博文中,我将会讨论涵盖这些方面的的理论成果,来解释为什么神经网络在各种任务上工作得如此好。
Reza Zadeh
Reza Zadeh是斯坦福大学的兼职教授、Matroid创始人和首席执行官。他的工作主要关注于机器学习、分布式计算和离散应用数学。他曾在Miscrosoft和Databricks的技术顾问委员会任职。
欢迎加入本站公开兴趣群商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/4455.html
摘要:本文详细讨论了自然语言理解的难点,并进一步针对自然语言理解的两个核心问题,详细介绍了规则方法和深度学习的应用。引言自然语言理解是人工智能的核心难题之一,也是目前智能语音交互和人机对话的核心难题。 摘要:自然语言理解是人工智能的核心难题之一,也是目前智能语音交互和人机对话的核心难题。之前写过一篇文章自然语言理解,介绍了当时NLU的系统方案,感兴趣的可以再翻一番,里面介绍过的一些内容不再赘...
摘要:上周,在旧金山召开的人工智能国际较高级会议上,来自微软亚洲研究院的郑宇博士及其团队的论文首创性的将时空数据与深度学习结合起来,利用时空深度残差网络用于预测城市人流问题。 上周,在旧金山召开的人工智能国际较高级会议AAAI 2017上,来自微软亚洲研究院的郑宇博士及其团队的论文Deep Spatio-Temporal Residual Networks for Citywide Crowd F...
摘要:动态数据绑定的三个难点对象深度问题设置新对象是否能够继续响应和考虑传递回调函数本文的目的在实践中使用递归思想了解设计模式中的发布订阅模式三大难点如果传入参数对象是一个比较深的对象也就是其属性值也可能是对象,那该怎么办呢举个例子。 动态数据绑定的三个难点: 对象深度问题 设置新对象是否能够继续响应getter 和 setter 考虑传递回调函数 本文的目的 在实践中使用递归思...
摘要:华为云,从到开发训练模型,通过极快和极简实现普惠现如今技术概念火爆落地应用更是繁多,但开发呢是否困难到底有多痛据了解,大部分开发者的工作时间并不长,并且十有八九可能不是科班出身。 华为云EI ModelArts,从0到1开发训练AI模型,通过极快和极简实现普惠AI现如今 AI 技术、概念火爆、落地应用更是繁多,但开发呢?是否困难?到底有多痛?据了解,大部分 AI 开发者的工作时间并不长...
摘要:忍者级别的函数操作对于什么是匿名函数,这里就不做过多介绍了。我们需要知道的是,对于而言,匿名函数是一个很重要且具有逻辑性的特性。通常,匿名函数的使用情况是创建一个供以后使用的函数。 JS 中的递归 递归, 递归基础, 斐波那契数列, 使用递归方式深拷贝, 自定义事件添加 这一次,彻底弄懂 JavaScript 执行机制 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果...
阅读 3164·2021-10-13 09:39
阅读 1976·2021-09-27 13:36
阅读 3042·2021-09-22 16:02
阅读 2550·2021-09-10 10:51
阅读 1541·2019-08-29 17:15
阅读 1503·2019-08-29 16:14
阅读 3426·2019-08-26 11:55
阅读 2507·2019-08-26 11:50