机器学习笔记 - 深度学习调查

        深度学习允许由多个处理层组成的计算模型来学习具有多个抽象级别的数据表示。 这些方法极大地提高了语音识别、视觉对象识别、对象检测和许多其他领域(如药物发现和基因组学)的最新技术水平。 深度学习通过使用反向传播算法来发现大型数据集中的复杂结构,以指示机器应如何更改其内部参数,这些参数用于从前一层的表示计算每一层的表示。 深度卷积网络在处理图像、视频、语音和音频方面带来了突破,而循环网络则在文本和语音等序列数据上有所体现。

        机器学习技术为现代社会的许多方面提供动力:从网络搜索到社交网络上的内容过滤再到电子商务网站上的推荐,并且它越来越多地出现在相机和智能手机等消费产品中。 机器学习系统用于识别图像中的对象,将语音转录为文本,将新闻项目、帖子或产品与用户的兴趣相匹配,并选择相关的搜索结果。这些应用程序越来越多地使用称为深度学习的一类技术。

        传统的机器学习技术在处理原始形式的自然数据的能力方面受到限制。 几十年来,构建模式识别或机器学习系统需要仔细的工程和相当多的领域专业知识来设计特征提取器,将原始数据(例如图像的像素值)转换为合适的内部表示或特征向量,学习子系统,通常是分类器, 可以检测或分类输入中的模式。

        表示学习是一组方法,允许机器输入原始数据并自动发现检测或分类所需的表示。深度学习方法是具有多个表示级别的表示学习方法,通过组合简单但非线性的模块获得,每个模块将一个级别的表示(从原始输入开始)转换为更高、稍微更抽象的级别的表示。通过足够多的这种变换的组合,可以学习非常复杂的函数。对于分类任务,更高层的表示放大了输入中对区分很重要的方面,并抑制了不相关的变化。例如,图像以像素值数组的形式出现,第一层表示中的学习特征通常表示图像中特定方向和位置的边缘是否存在。第二层通常通过发现边缘的特定排列来检测图案,而不管边缘位置的微小变化。第三层可以将主题组装成更大的组合,对应于熟悉对象的部分,随后的层将检测对象作为这些部分的组合。深度学习的关键方面是这些特征层不是由人类工程师设计的:它们是使用通用学习过程从数据中学习的。

        深度学习在解决多年来一直抵制人工智能社区最佳尝试的问题方面取得了重大进展。 事实证明,它非常擅长发现高维数据中的复杂结构,因此适用于科学、商业和政府的许多领域。 除了打破图像识别和语音识别的记录外,它还在预测潜在药物分子的活性、分析粒子加速器数据、重建大脑回路以及预测非编码 DNA 突变对基因表达和疾病的影响方面击败了其他机器学习技术 . 或许更令人惊讶的是,深度学习在自然语言理解中的各种任务,特别是主题分类、情感分析、问答和语言翻译方面都产生了非常有希望的结果。

        我们认为深度学习在不久的将来会取得更多的成功,因为它只需要很少的手工工程,所以它可以很容易地利用可用计算量和数据量的增加。 目前正在为深度神经网络开发的新学习算法和架构只会加速这一进程。

监督学习

        最常见的机器学习形式,无论是否深度,都是监督学习。想象一下,我们想要构建一个系统,可以将图像分类为包含房屋、汽车、人或宠物。我们首先收集了一个包含房屋、汽车、人和宠物图像的大型数据集,每个图像都标有其类别。在训练期间,机器会显示图像并以分数向量的形式产生输出,每个类别一个。我们希望期望的类别在所有类别中得分最高,但这不太可能在训练之前发生。我们计算一个目标函数来衡量输出分数与期望的分数模式之间的误差(或距离)。然后机器修改其内部可调参数以减少此误差。这些可调整的参数,通常称为权重,是实数,可以看作是定义机器输入-输出功能的“旋钮”。在一个典型的深度学习系统中,可能有数亿个这样的可调整权重,以及数亿个用于训练机器的标记示例。

        为了正确调整权重向量,学习算法计算一个梯度向量,对于每个权重,如果权重增加很小的量,误差会增加或减少多少。 然后在与梯度向量相反的方向上调整权重向量。

        对所有训练样例进行平均的目标函数可以看作是权值高维空间中的一种丘陵景观。 负梯度向量表示该景观中下降最陡的方向,使其更接近最小值,平均输出误差较低。

        在实践中,大多数从业者使用称为随机梯度下降 (SGD) 的程序。 这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。 对训练集中的许多小样本集重复该过程,直到目标函数的平均值停止下降。 它被称为随机的,因为每一小组示例给出了所有示例的平均梯度的噪声估计。 与更复杂的优化技术相比,这个简单的过程通常会以惊人的速度找到一组好的权重。训练后,系统的性能是在称为测试集的不同示例集上测量的。 这用于测试机器的泛化能力——它对训练期间从未见过的新输入产生合理答案的能力。

图 1 | 多层神经网络和反向传播。

         a,多层神经网络(由连接的点表示)可以扭曲输入空间以使数据类别(示例在红线和蓝线上)线性可分。 请注意输入空间中的常规网格(显示在左侧)如何也被隐藏单元转换(显示在中间面板中)。 这是一个说明性示例,只有两个输入单元、两个隐藏单元和一个输出单元,但用于对象识别或自然语言处理的网络包含数万或数十万个单元。 经 C. Olah (http://colah.github.io/) 许可转载。

        b,导数的链式法则告诉我们两个小的效应(x 对 y 的微小变化,以及 y 对 z 的微小变化)是如何组合的。 通过乘以 ∂y/∂x(即偏导数的定义),一个小的变化 Δx inx 首先转化为 y 的一个小变化 Δy。 类似地,changeΔy 会在 z 中产生变化 Δz。 将一个方程代入另一个方程可以得到导数的链式法则——Δx 如何通过乘以 ∂y/∂x 和 ∂z/∂x 的乘积变成 Δz。 当 x,y 和 z 是向量(并且导数是雅可比矩阵)时,它也适用。

        c,用于计算具有两个隐藏层和一个输出层的神经网络中的前向传播的方程,每个构成一个模块,通过该模块可以反向传播梯度。 在每一层,我们首先计算每个单元的总输入 z,它是下一层单元输出的加权和。 然后将非线性函数 f(.) 应用于 z 以获得单元的输出。 为简单起见,我们省略了偏差项。 神经网络中使用的非线性函数包括近年来常用的整流线性单元(ReLU)f(z) = max(0,z),以及更常规的sigmoid,比如双曲正切,f (z) = (exp(z) − exp(−z))/(exp(z) + exp(−z)) 和逻辑函数logistic,f(z) = 1/(1 + exp(−z)) .

        d,用于计算后向传递的方程。 在每个隐藏层,我们计算每个单元输出的误差导数,它是误差导数相对于上一层单元的总输入的加权和。 然后,我们通过将其乘以 f(z) 的梯度,将相对于输出的误差导数转换为相对于输入的误差导数。在输出层,通过微分 成本函数。 如果单元 l 的成本函数为 0.5(yl - tl)2,则给出 yl - tl,其中 tl 是目标值。 一旦 ∂E/∂zki 已知,下层中来自单元 j 的连接上的权重 wjk 的误差导数就是 yj ∂E/∂zk。

        目前机器学习的许多实际应用在手工设计的特征之上使用线性分类器。 一个二分类线性分类器计算特征向量分量的加权和。如果加权和高于阈值,则输入被分类为属于特定类别。

        自 1960 年代以来,我们就知道线性分类器只能将其输入空间划分为非常简单的区域,即由超平面分隔的半空间。但是图像和语音识别等问题要求输入-输出函数对输入的无关变量不敏感,例如对象的位置、方向或照明的变化,或者语音的音高或口音的变化,同时对特定的输入非常敏感。微小的变化(例如,白狼和一种叫做萨摩耶的狼状白狗之间的区别)。在像素级别上,两只萨摩耶犬在不同的姿势和不同的环境中的图像可能彼此非常不同,而萨摩耶犬和狼在相同位置和相似背景下的两张图像可能非常相似。线性分类器或任何其他在原始像素上运行的“浅”分类器不可能区分后两者,而将前两者归为同一类别。这就是为什么浅层分类器需要一个很好的特征提取器来解决选择性-不变性困境——它产生的表示对图像中对区分很重要的方面具有选择性,但对不相关的方面(例如动物的姿势)是不变的。更强大的分类器,可以使用通用的非线性特征,就像核方法一样,但是像高斯核方法那样的通用特征不允许学习器在远离训练样本的地方进行泛化。传统的选择是手工设计好的特征提取器,这需要相当多的工程技能和领域专业知识。但是,如果可以使用通用学习过程自动学习好的特征,则可以避免这种情况。这是深度学习的关键优势。

图 2 | 在卷积网络内部。 典型卷积网络架构的每一层(水平)的输出(不是过滤器)应用于萨摩耶狗的图像(左下;RGB(红、绿、蓝)输入,右下)。 每个矩形图像是一个特征图,对应于在每个图像位置检测到的学习特征之一的输出。 信息自下而上流动,较低级别的特征充当定向边缘检测器,并为输出中的每个图像类别计算分数。 ReLU,整流线性单元。

        深度学习架构是简单模块的多层堆栈,所有(或大部分)模块都需要学习,其中许多模块计算非线性输入-输出映射。 堆栈中的每个模块都转换其输入以增加表示的选择性和不变性。 有多个非线性层,比如说深度为 5 到 20 的系统可以实现其输入的极其复杂的功能,这些功能同时对微小的细节敏感——将萨摩耶犬与白狼区分开来——并且对背景、姿势、照明和周围物体等大的不相关变化不敏感。

用于训练多层架构的反向传播

        从模式识别的早期开始,研究人员的目标就是用可训练的多层网络代替手工设计的特征,但尽管它很简单,但直到 1980 年代中期,该解决方案才被广泛理解。 事实证明,多层架构可以通过简单的随机梯度下降来训练。只要模块是其输入和内部权重的相对平滑函数,就可以使用反向传播过程计算梯度。 在 1970 年代和 1980 年代,几个不同的团体独立地发现了这种方法可以做到并且奏效的想法。

        计算目标函数相对于多层模块堆栈权重的梯度的反向传播过程只不过是导数链规则的实际应用。 关键的见解是,目标相对于模块输入的导数(或梯度)可以通过从相对于该模块的输出(或后续模块的输入)的梯度逆向计算(图 1 )。 反向传播方程可以重复应用于通过所有模块传播梯度,从顶部的输出(网络产生预测的地方)一直到底部(外部输入被馈入的地方)。 一旦计算了这些梯度,就可以直接计算关于每个模块权重的梯度。

        深度学习的许多应用程序使用前馈神经网络架构(图 1),它学习将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中的每个类别的概率)。为了从一层到下一层,一组单元计算上一层输入的加权和,并将结果传递给非线性函数。目前最流行的非线性函数是整流线性单元(ReLU),简单来说就是半波整流器 f(z) = max(z, 0)。在过去的几十年里,神经网络使用了更平滑的非线性,比如astanh(z) 或 1/(1 + exp(−z)),但 ReLU 通常在具有多层的网络中学习得更快,允许在没有无监督预训练的情况下训练深度监督网络。不在输入或输出层中的单元通常称为隐藏单元。隐藏层可以被视为以非线性方式扭曲输入,从而使最后一层可以线性分离类别(图 1)。

        在 1990 年代后期,神经网络和反向传播在很大程度上被机器学习社区所抛弃,而被计算机视觉和语音识别社区所忽视。 人们普遍认为,用很少的先验知识学习有用的、多阶段的特征提取器是不可行的。 特别是,人们普遍认为简单的梯度下降会陷入糟糕的局部最小值——不小的变化会降低平均误差的权重配置。

        在实践中,大型网络很少会出现较差的局部最小值问题。无论初始条件如何,系统几乎总是能达到质量非常相似的解。 最近的理论和经验结果强烈表明,局部最小值通常不是一个严重的问题。 取而代之的是,地形由大量组合的鞍点组成,其中梯度为零,表面在大多数维度上是向上弯曲的,在其余维度上是向下弯曲的。 分析似乎表明,只有几个向下弯曲方向的鞍点以非常大的数量存在,但几乎所有鞍点都具有非常相似的目标函数值。 因此,算法卡在这些鞍点中的哪一个并不重要。

        由加拿大高级研究所 (CIFAR) 召集的一组研究人员在 2006 年左右(参考文献 31-34)重新引起了对深度前馈网络的兴趣。 研究人员引入了无监督学习程序,可以在不需要标记数据的情况下创建特征检测器层。 学习每一层特征检测器的目标是能够重构模型下层特征检测器(或原始输入)的活动。 通过使用此重建目标“预训练”几层逐渐更复杂的特征检测器,可以将深度网络的权重初始化为合理的值。 然后可以将最后一层输出单元添加到网络的顶部,并且可以使用标准反向传播对整个深度系统进行微调 33-35。 这对于识别手写数字或检测行人非常有效,尤其是在标记数据量非常有限的情况下。

        这种预训练方法的第一个主要应用是语音识别,它是通过易于编程的快速图形处理单元 (GPU) 的出现使研究人员能够以 10 或 20 倍的速度训练网络的。 2009年,该方法被用于映射系数的短时间窗口从声波中提取到可能由窗口中心的框架表示的各种语音片段的一组概率。它在使用小词汇量的标准语音识别基准测试中取得了破纪录的结果,并迅速发展为在大词汇量任务上提供破纪录的结果。到 2012 年,来自 2009 年的深度网络版本已被许多主要的语音团体 6 开发,并且已经部署在 Android 手机中。对于较小的数据集,无监督预训练有助于防止过度拟合,当标记示例的数量很少时,或者在我们有很多示例用于某些“源”任务但很少用于某些“目标”的迁移设置中,可以显着提高泛化能力任务。一旦深度学习得到恢复,结果证明只有小数据集才需要预训练阶段。

        然而,有一种特殊类型的深度前馈网络比相邻层之间完全连通的网络更容易训练和泛化得多。 这就是卷积神经网络 (ConvNet)41,42。 在神经网络失宠的时期,它取得了许多实际的成功,最近被计算机视觉界广泛采用。

卷积神经网络

        ConvNet 旨在处理以多个数组形式出现的数据,例如由三个 2D 数组组成的彩色图像,其中包含三个颜色通道中的像素强度。 许多数据模态采用多个数组的形式:一维用于信号和序列,包括语言; 2D 用于图像或音频频谱图;3D 用于视频或体积图像。 ConvNets 背后有四个关键思想可以利用自然信号的特性:本地连接、共享权重、池化和多层的使用。

        典型的 ConvNet(图 2)的架构是由一系列阶段构成的。前几个阶段由两种类型的层组成:卷积层和池化层。卷积层中的单元被组织在特征图中,其中每个单元通过一组称为滤波器组的权重连接到前一层特征图中的局部补丁。这个局部加权和的结果然后通过非线性,例如aReLU。特征图中的所有单元共享相同的滤波器组。层中的不同特征图使用不同的滤波器组。这种架构的原因是双重的。首先,在图像等数组数据中,值的局部组通常高度相关,形成易于检测的独特局部基序。其次,图像和其他信号的局部统计与位置无关。换句话说,如果一个motif可以出现在图像的一个部分,它可以出现在任何地方,因此不同位置的单元共享相同权重并在数组的不同部分检测相同模式的想法。数学上,由特征图执行的过滤操作是一个离散卷积,因此得名。

        虽然卷积层的作用是检测前一层特征的局部连接,但池化层的作用是将语义相似的特征合并为一个。 因为形成一个主题的特征的相对位置可能会有所不同,所以可以通过粗粒度每个特征的位置来可靠地检测主题。 典型的池化单元计算一个特征映射(或几个特征映射)中的局部单元块的最大值。相邻池单元从移动超过一行或一列的块中获取输入,从而减少表示的维度并创建 对小位移和失真的不变性。两个或三个卷积、非线性和池化阶段堆叠在一起,然后是更多的卷积和全连接层。 通过 ConvNet 反向传播梯度就像通过常规深度网络一样简单,允许训练所有滤波器组中的所有权重。

        深度神经网络利用了许多自然信号是组合层次结构的特性,其中较高层次的特征是通过组合较低层次的特征来获得的。 在图像中,边缘的局部组合形成图案,图案组合成部分,部分形成对象。 从声音到音素、音素、音节、单词和句子的语音和文本中存在类似的层次结构。 当前一层中的元素在位置和外观上发生变化时,池化允许表示变化很小。

        ConvNets 中的卷积层和池化层直接受到视觉神经科学中简单细胞和复杂细胞的经典概念的启发,整体架构让人联想到视觉皮层腹侧通路中的 LGN-V1-V2-V4-IT 层次结构。 猴子被展示了同一张图片,ConvNet 中高级单元的激活解释了猴子下颞叶皮质中 160 个神经元随机集的一半方差。 ConvNets 起源于 neocognitron,其架构有些相似,但没有端到端的监督学习算法,如反向传播。使用称为时间延迟神经网络的原始 1D ConvNet 来识别音素 和简单的话

        回溯到 1990 年代初,卷积网络已经有很多应用,从用于语音识别和文档阅读的时间延迟神经网络开始。 文档阅读系统使用了一个 ConvNet,它与实现语言约束的概率模型联合训练。 到 1990 年代后期,该系统读取了美国所有支票的 10% 以上。 微软后来部署了许多基于 ConvNet 的光学字符识别和手写识别系统。 在 1990 年代初期,ConvNets 也被用于自然图像中的对象检测,包括人脸和手,以及人脸识别。

使用深度卷积网络进行图像理解

        自 2000 年代初以来,ConvNets 在图像中对象和区域的检测、分割和识别方面取得了巨大成功。 这些都是标记数据相对丰富的任务,例如交通标志识别,生物图像的分割,特别是连接组学,以及自然图像中的人脸、文本、行人和人体的检测。 ConvNets 最近的一个主要实际成功是人脸识别。

        重要的是,图像可以在像素级别进行标记,这将在技术上得到应用,包括自动移动机器人和自动驾驶汽车。 Mobileye 和 NVIDIA 等公司正在他们即将推出的汽车视觉系统中使用这种基于 ConvNet 的方法。 其他越来越重要的应用包括自然语言理解和语音识别。

        图 3 | 从图像到文字。 由循环神经网络 (RNN) 生成的字幕将深度卷积神经网络 (CNN) 从测试图像中提取的表征作为额外输入,RNN 被训练为将图像的高级表征“翻译”为字幕( 最佳)。 经参考许可转载。 102. 当 RNN 能够在生成每个单词(粗体)时将注意力集中在输入图像中的不同位置(中间和底部;较轻的块得到更多关注)时,我们发现它利用这一点来实现 更好地将图像“翻译”成字幕。

        尽管取得了这些成功,但 ConvNet 在很大程度上被主流计算机视觉和机器学习社区所抛弃,直到 2012 年的 ImageNet 竞赛。当将深度卷积网络应用于包含 1000 个不同类别的来自网络的大约一百万张图像的数据集时,它们取得了惊人的结果, 几乎将最佳竞争方法的错误率减半1。 这一成功来自对 GPU、ReLU、一种称为 dropout 的新正则化技术的有效使用,以及通过对现有样本进行变形来生成更多训练样本的技术。 这一成功带来了计算机视觉的一场革命;ConvNets 现在是几乎所有识别和检测任务的主要方法,并在某些任务上接近人类的表现。 最近的一个惊人的演示结合了 ConvNets 和循环网络模块来生成图像标题(图 3)。

        最近的 ConvNet 架构有 10 到 20 层 ReLU、数亿个权重和数十亿个单元之间的连接。 两年前,训练如此庞大的网络可能需要数周时间,但硬件、软件和算法并行化的进步已将训练时间缩短到几个小时。

        基于 ConvNet 的视觉系统的性能已经引起包括谷歌、Facebook、微软、IBM、Yahoo!、Twitter 和 Adobe 在内的大多数主要科技公司以及快速增长的初创企业启动研发项目并部署 ConvNet- 基于图像理解的产品和服务。

        ConvNet 很容易适应芯片或现场可编程门阵列中的高效硬件实现。 NVIDIA、Mobileye、英特尔、高通和三星等多家公司正在开发 ConvNet 芯片,以实现智能手机、相机、机器人和自动驾驶汽车中的实时视觉应用。

分布式表示和语言处理

        深度学习理论表明,与不使用分布式表示的经典学习算法相比,深度网络具有两个不同的指数优势。 这两个优势都来自组合的力量,并取决于具有适当组件结构的底层数据生成分布。 首先,学习分布式表示可以泛化到训练期间看到的学习特征值的新组合(例如,2n 个组合可能与 n 个二进制特征)。 其次,在深度网络中组合表示层带来了另一个指数优势(深度指数)的潜力。

        多层神经网络的隐藏层学习以一种易于预测目标输出的方式来表示网络的输入。这通过训练多层神经网络从早期单词的本地上下文预测序列中的下一个单词很好地证明了这一点。上下文中的每个词都作为一个 N 向量呈现给网络,也就是说,一个分量的值为 1,其余的值为 0。在第一层,每个词创建不同的激活模式或词向量(图4).在语言模型中,网络的其他层学习将输入词向量转换为预测的下一个词的输出词向量,可用于预测词汇表中任何一个词作为下一个词出现的概率。网络学习包含许多活动组件的词向量,每个活动组件都可以解释为单词的单独特征,正如在学习符号的分布式表示的上下文中首次展示的那样。这些语义特征没有明确存在于输入中。学习过程发现它们是一种将输入和输出符号之间的结构化关系分解为多个“微规则”的好方法。当词序列来自大量真实文本并且单个微规则不可靠时,学习词向量也能很好地工作。例如,当训练预测新闻故事中的下一个词时,周二和周三的学习词向量非常相似,瑞典和挪威的词向量也是如此。这样的表示被称为分布式表示,因为它们的元素(特征)不是相互排斥的,并且它们的许多配置对应于观察到的数据中的变化。这些词向量由学习的特征组成,这些特征不是由专家提前确定的,而是由神经网络自动发现的。从文本中学习到的单词的向量表示现在在自然语言应用中得到了非常广泛的应用。

        表示问题是逻辑启发和神经网络启发的认知范式之间争论的核心。 在受逻辑启发的范式中,符号的实例是唯一的属性是它是相同的或与其他符号实例不同。 它没有与其使用相关的内部结构; 为了用符号进行推理,它们必须受制于明智选择的推理规则中的变量。 相比之下,神经网络只使用大活动向量、大权重矩阵和标量非线性来执行支持轻松常识推理的快速“直觉”推理类型。

        在引入神经语言模型之前,语言统计建模的标准方法并没有利用分布式表示:它基于对长度不超过 N 的短符号序列(称为 N-gram)的出现频率进行计数。 N-grams 在 VN 的数量级上,其中 V 是词汇量,因此考虑到多个单词的上下文将需要非常大的训练语料库。 N-gram 将每个单词视为一个原子单元,因此它们不能泛化语义相关的单词序列,而神经语言模型可以,因为它们将每个单词与一个实值特征向量相关联,并且语义相关的单词最终彼此接近 在那个向量空间中(图 4)。

递归神经网络

        首次引入反向传播时,它最令人兴奋的用途是训练循环神经网络 (RNN)。 对于涉及顺序输入的任务,例如语音和语言,通常最好使用 RNN(图 5)。 RNN 一次处理一个元素的输入序列,在其隐藏单元中维护一个“状态向量”,该“状态向量”隐含地包含有关该序列所有过去元素的历史信息。 当我们考虑隐藏单元在不同离散时间步长的输出,就好像它们是深层多层网络中不同神经元的输出一样(图 5,右),我们如何应用反向传播来训练 RNN 就变得很清楚了。

        RNN 是非常强大的动态系统,但训练它们已被证明是有问题的,因为反向传播的梯度在每个时间步长或缩小,因此在许多时间步长后它们通常会爆炸或消失。

        由于其架构和训练方法的进步,RNN 被发现非常擅长预测文本中的下一个字符或序列中的下一个单词,但它们也可以用于更复杂的任务。例如,一次一个单词读完一个英文句子后,一个英文“编码器”网络

        可以对其进行训练,使其隐藏单元的最终状态向量很好地表示句子所表达的思想。然后,这个思想向量可以用作联合训练的法语“解码器”网络的初始隐藏状态(或作为额外输入),该网络输出法语翻译第一个单词的概率分布。如果从这个分布中选择一个特定的第一个词并作为输入提供给解码器网络,它将输出翻译的第二个词的概率分布,依此类推,直到选择了句号。总体而言,此过程根据取决于英语句子的概率分布生成法语单词序列。这种相当幼稚的机器翻译方式很快就与最先进的技术竞争,这引发了人们对理解句子是否需要像使用推理规则操纵的内部符号表达式这样的东西的严重怀疑。它更符合以下观点,即日常推理涉及许多同时进行的类比,每个类比都有助于得出结论的合理性。

         图 4 | 可视化学习的词向量。 左侧是为建模语言学习的单词表示的图示,使用 t-SNE 算法将其非线性投影到 2D 以进行可视化。 右侧是英语到法语编码器-解码器循环神经网络学习的短语的 2D 表示。 可以观察到语义相似的单词或单词序列被映射到附近的表示。 单词的分布式表示是通过使用反向传播来联合学习每个单词的表示和预测目标数量的函数,例如序列中的下一个单词(用于语言建模)或整个翻译单词序列(用于机器翻译 )

        图 5 |循环神经网络及其前向计算所涉及的计算时间展开。人工神经元(例如,在节点 s 下分组的隐藏单元,在时间 t 的值为 st)在之前的时间步从其他神经元获取输入(这用黑色方块表示,代表一个时间步的延迟,在左侧) .这样,循环神经网络可以将具有元素 xt 的输入序列映射到具有元素 ot 的输出序列中,每个 ot 取决于所有先前的 xtʹ(对于 tʹ≤t)。每个时间步都使用相同的参数(矩阵 U、V、W)。许多其他架构也是可能的,包括一种变体,其中网络可以生成一系列输出(例如,单词),每个输出都用作下一个时间步的输入。反向传播算法(图 1)可以直接应用于右侧展开网络的计算图,以计算总误差的导数(例如,生成正确输出序列的对数概率)到所有状态 st 和所有参数。

        与其将法语句子的意思翻译成英语句子,不如学习将图像的意思“翻译”成英语句子(图 3)。 这里的编码器是一个深度卷积网络,它将像素转换为其最后一个隐藏层中的活动向量。 解码器是一个类似于用于机器翻译和神经语言建模的 RNN。 最近对此类系统的兴趣激增(参见参考文献 86 中提到的示例)。

        RNNs,一旦及时展开(图 5),可以被视为非常深的前馈网络,其中所有层共享相同的权重。尽管它们的主要目的是学习长期依赖关系,但理论和经验证据表明它是 很难学会长时间存储信息。

        为了纠正这一点,一个想法是用显式记忆来增强网络。 这种类型的第一个提议是使用特殊隐藏单元的长短期记忆(LSTM)网络,其自然行为是长时间记住输入。 一个称为记忆单元的特殊单元就像一个累加器或一个门控泄漏神经元:它在下一个时间步与自身建立连接,权重为 1,因此它复制自己的实值状态并积累外部信号, 但是这种自连接由另一个单元乘法门控,该单元学会决定何时清除内存内容。

        LSTM 网络随后被证明比传统的 RNN 更有效,尤其是当它们在每个时间步都有多个层时,从而使整个语音识别系统能够从声学一直到转录中的字符序列。 LSTM 网络或相关形式的门控单元目前也用于在机器翻译方面表现出色的编码器和解码器网络。

        在过去的一年里,几位作者提出了不同的建议,用记忆模块来增强 RNN。 建议包括神经图灵机,其中网络由 RNN 可以选择读取或写入的“磁带式”内存增强,以及内存网络,其中常规网络由一种关联记忆增强。 记忆网络在标准问答基准测试中表现出色。 记忆用于记住网络后来被要求回答问题的故事。

        除了简单的记忆之外,神经图灵机和记忆网络还被用于通常需要推理和符号操作的任务。 可以教授神经图灵机“算法”。 除此之外,当他们的输入由一个未排序的序列组成时,他们可以学习输出一个排序的符号列表,其中每个符号都伴随着一个实数值,表明它在列表中的优先级88。 可以训练记忆网络在类似于文本冒险游戏的环境中跟踪世界状态,并且在阅读故事后,它们可以回答需要复杂推理的问题90。 在一个测试示例中,网络显示的是 15 句版的指环王,并正确回答了诸如“佛罗多现在在哪里?

深度学习的未来

        无监督学习在恢复对深度学习的兴趣方面具有催化作用,但此后被纯监督学习的成功所掩盖。 尽管我们在本次评测中没有关注它,但我们预计无监督学习在长期内会变得更加重要。 人类和动物的学习在很大程度上是无监督的:我们通过观察来发现世界的结构,而不是通过被告知每个物体的名称。

        人类视觉是一个主动过程,它使用具有大型低分辨率环绕的高分辨率小中央凹,以智能、特定任务的方式对光学阵列进行顺序采样。 我们预计未来视觉方面的大部分进展将来自经过端到端训练的系统,并将 ConvNets 与 RNN 相结合,使用强化学习来决定看哪里。 结合深度学习和强化学习的系统还处于起步阶段,但它们在分类任务中的表现已经超过被动视觉系统,并且在学习玩许多不同的视频游戏方面取得了令人印象深刻的结果。

        自然语言理解是深度学习有望在未来几年产生巨大影响的另一个领域。 我们希望使用 RNN 理解句子或整个文档的系统在学习一次选择性地关注一个部分的策略时会变得更好。

        最终,人工智能的重大进展将通过将表示学习与复杂推理相结合的系统来实现。虽然深度学习和简单推理长期以来一直用于语音和手写识别,但仍需要新的范式来通过对大向量的操作来取代基于规则的符号表达操作。

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/124927767
今日推荐