Shixin Gu作者Zhen Gao、Panda参与

深度学习并非万能,遇到这些问题会失败

深度学习能力出众,已经取得了很多亮眼的成绩;但深度学习也并非万能,以色列希伯来大学和威兹曼科学院的研究者对此进行了研究。机器之心技术分析师对相关论文进行了解读,本文为解读的中文版。

论文地址: https://arxiv.org/abs/1703.07950

GitHub:https://github.com/shakedshammah/failures_of_DL

现在,计算机视觉、音频处理和自然语言处理与生成等很多领域都在使用深度学习深度学习创造了当前最佳。但人们也应该注意到深度学习仍然存在局限性。2015 年,Anh Nguyen 在 CVPR 发表的一篇论文 [1] 就已经找到了深度学习计算机视觉领域的局限性,即通过人类难以察觉的方式修改图像也能够骗过深度神经网络(DNN),从而导致 DNN 将该图像标注成完全不一样的事物。

回到本文所要讨论的论文《Failures of Gradient-Based Deep Learning》,研究者描述了四大类问题。在这些问题上,常用的已有算法都会失败或会遇到很大的困难。

引言

这篇论文的目的是展示和讨论会导致常用的方法表现不佳的四类简单问题。第一节将讨论在目标函数上带有可忽略信息的梯度信息。第二节将讨论两种用于学习和优化问题的常用方法。第三节,研究者表明即使两种架构具有同样的表现能力,在优化它们的能力也可能会存在重大的差异。最后一节,研究者关注了一个简单案例,并以此质疑了深度学习的优化过程对“单纯”的梯度信息的依赖。

实验

因非信息梯度导致的失败

这个实验的目的是表明如果梯度中的信息很少,使用它来进行学习就无法成功。

研究者首先从学习随机奇偶校验的简单问题开始:首先选择某个 v*  {0, 1}d,然后使用 y 指示 x 坐标(由 v* 指示)的一个特定子集中的 1 的数量是奇数还是偶数。(配置:hinge 损失、一个带有 ReLU 激活的全连接层、一个带有线性激活和单个单元的全连接输出层)。

图 1:奇偶校验实验:对于不同的输入维度,准确度随训练迭代次数的变化情况。

我们可以从图 1 中看到,维度 d 的增大会导致学习难度增大。在大约 d=30 这个程度之后,经过合理时间后也没有观察到优于随机的表现。

研究者使用两个定理对此进行了详细的分析,最终得出了结论:基于梯度的方法确实不能学会随机奇偶校验和线性周期函数。此外,不管我们使用哪一类预测算法,只要使用了基于梯度的方法来进行训练,这个结果都成立。

总结一下,通过直接检查梯度在目标函数方面的方差,研究者简单地将基于梯度的方法与奇偶校验联系在了一起,并提出基于梯度的方法确实不太可能解决对统计查询式框架而言难以应对的学习问题,尤其是奇偶校验问题。

分解与端到端

在学习和优化过程中,人们所选择的方法主要可分为两类:端到端方法或分解方法。研究者在这一节试图搞清楚使用端到端方法是否划算。(研究者主要关注的是优化方面,结果表明“端到端”方法可能遭遇低信噪比的问题,这可能会影响训练时间。)这一节有两个实验。

实验 1

实验 1 在计算机视觉设置中对这两种方法进行了比较。研究者定义了一类问题,并表明随着 k (k ∈ N) 增大,端到端方法与分解方法之间的差距也会增大。

实验中,X1 表示 28×28 二元图像的空间,并使用某个函数来定义其中的分布。

图 2:原论文中 3.1 节的实验——来自 X1 的样本示例。上行和下行的 y 值分别为 1 和 -1.

这里省略实验中的详细配置部分,我们直接来看结果。当基于“主要”目标进行比较时,我们可以看到端到端方法相比于分解方法存在明显劣势。通过使用分解方法,我们可以快速得到优良的解。

图 3:原论文 3.1 节实验中两种方法的表现对比。红色和蓝色曲线分别对应端到端方法和分解方法。这些图展示了在一个留存测试集上,关于“主要”目标的 0-1 准确度随训练迭代次数的变化情况。端到端方法和分解方法分别训练了 20000 和 2500 次 SGD 迭代。

实验 2

这是一个训练预测器的问题:给定一只特定股票选择的一个“正面媒体参考”x 进行预测。预测器会以某种方式将我们的资产在标准普尔 500 指数中的 k=500 只股票上进行分配。如上所述,有两种训练方法:

  • 端到端方法:训练一个深度网络 Nw,给定 x,输出在 k 只股票上的分布情况。训练目标是根据这一分布配给我们的资产,实现收益最大化。
  • 分解方法:训练一个深度网络 Nw,给定 x,输出未来收益与 x 最正相关的单只股票。当然,根据这一指标,我们可能还需要收集额外的标签。

研究者在非真实的假设下进行了比较实验。详细配置情况请参阅论文。

图 4:分解方法与端到端方法的对比:对于维度 d=1000 的输入和不同的 k 值,损失随训练迭代次数的变化。红色和蓝色曲线分别对应端到端和分解方法训练的估计器的损失。

图 4 清楚地表明,使用端到端方法的表现不及使用分解方法。

研究者的分析方法是检查这两种随机梯度估计器的信噪比(SNR),结果表明端到端方法得到的结果要差很多。

图 5:原论文 3.1 节的实验:端到端方法(红色)和分解方法(蓝色)的信噪比随 k 的变化情况。当 k≥3 时,端到端方法的信噪比低于 32 位浮点数所能表示的精度。

我们可以轻松地在图 5 中看到端到端方法的信噪比明显更低,更重要的是,结果表明 k 有很大的影响——当 k 增大时,端到端方法的信噪比将很快降至机器精度之下,而分解方法的信噪比基本保持不变。

因此,研究者得到了直接监督的优势的进一步证据——不管其何时应用到问题上。

架构和条件

选择网络架构时,通常要考虑两点:一是在不显著增大样本复杂性的同时提升网络的表现能力;二是改善训练的计算复杂度。架构的选择通常都会影响到训练时间。

研究者实验了用于编码一维、连续、分段线性(PWL)曲线结构的多种深度学习方案。研究者考虑了条件数量很大的凸问题,并通过卷积架构改善条件数量。通过理论分析,研究者指出卷积架构的应用对设定条件的效率而言至关重要,而且更好的架构和更好的条件组合到一起,能让我们获得重大的提升。

研究者还实验了一种用于编码的更深度的架构。这两个网络中每一个都有三个带有 ReLU 激活的层,但 M 的输出层除外,其使用了线性激活。N 的各层的维度是 500、100、2000;M 的各层的维度是 100、100、n。

图 6:原论文第 4 节实验“学习编码 PWL 曲线”,解码后的输出的示例。蓝色的是原始曲线。红色的是解码后的曲线。从左至右,图中展示了两条曲线经过 500、10000 和 50000 次迭代后的输出结果。

平坦的激活函数

激活函数的饱和会造成损失表面的平坦,进而又会导致梯度消失问题和训练过程减速,这会给优化带来困难。研究者考虑了一类分段平坦且会放大“由于激活饱和导致梯度消失”问题的激活函数

主要有四个实验:

图 7:原论文第 5 节实验:通过步骤函数的反向传播。水平轴的值是 r。绿色虚线是指标签 u(r)。红色曲线展示了所学习到的假设的输出。这些图在 r 的均值附近进行了缩放。在非平坦近似的图(a)中,紫色的曲线表示非平坦近似。注意多类别实验中类别之间边界的不准确性。所有图表都给出了经过 10000 次训练迭代后的结果,但图(e)除外,这是 5000 次迭代后的结果。

对于非平坦近似实验,研究者尝试使用一个非平坦函数来近似 u。尽管这个目标并不是完全平坦的,但它也会遭受平坦性的影响,并且使用这个目标的训练速度要慢得多。有时候还会失败。另外,研究者还表明其对偏置项的初始化很敏感。

对于端到端实验,这个方法能够找到一个合理的解,但正如研究者说的那样,这会将获取非连续点中的不准确性带到前端,并且由于要使用大得多的网络,所以还会有额外的代价。

对于多类别实验,研究者将该问题近似成了一个通用的多类分类问题,其中 u 的图像的每个值都被当作是一个单独的类。问题是类别边界处的不准确性。另外,我们忽视的排序会导致更高的样本复杂性。

对于“仅前向”实验,可被认为是用一个身份信息替换用于激活函数的反向传播信息。这种方法得到了最佳的结果,研究者还在附录中提供了证明。

总结

这篇论文提供了四种主要情况下最常见的失败用法。还提供了理论见解来解释这些问题的来源,以及如何补救这些问题的方式。论文唯一的不足之处是没有涵盖非常深度的网络,但老实说,非常深度的网络非常复杂,这篇论文所研究的条件也可能会发生改变。

参考文献

[1] Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Deep neural networks are easily fooled: High confidence predictions for unrecognizable images." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.

技术分析梯度最优化问题目标函数深度学习
相关数据
深度学习技术

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

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

目标函数技术

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

梯度消失问题技术

梯度消失指的是随着网络深度增加,参数的梯度范数指数式减小的现象。梯度很小,意味着参数的变化很缓慢,从而使得学习过程停滞,直到梯度变得足够大,而这通常需要指数量级的时间。这种思想至少可以追溯到 Bengio 等人 1994 年的论文:「Learning long-term dependencies with gradient descent is difficult」,目前似乎仍然是人们对深度神经网络的训练困难的偏好解释。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

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