【深度论文精读】Deep Learning 作者:Yann LeCun,Yoshua Bengio & Geoffrey Hinton

前言

翻译:
   深度学习允许由多个处理层组成的计算模型学习具有多个抽象级别的数据表示。这些方法极大地改善了语音识别、视觉对象识别、对象检测以及诸如药物发现和基因组学等许多其他领域的最新技术。深度学习通过使用反向传播算法来发现大型数据集中的复杂结构,以指示机器应该如何更改其内部参数,这些参数用于从上一层的表示计算每一层的表示。深度卷积网络在处理图像、视频、语音和音频方面取得了突破,而递归网络则在文本和语音等序列数据上取得了突破。
   机器学习技术为现代社会的许多方面提供了动力:从网络搜索到社交网络上的内容过滤,再到电子商务网站上的推荐,它越来越多地出现在相机和智能手机等消费品中。机器学习系统用于识别图像中的对象,将语音转录为文本,将新闻项目,帖子或产品与用户的兴趣相匹配,并选择相关的搜索结果。这些应用程序越来越多地使用一类称为深度学习的技术。
    传统的机器学习技术在处理原始形式的自然数据方面能力有限。几十年来,构建模式识别或机器学习系统需要仔细的工程和相当多的领域专业知识来设计特征提取器,将原始数据(例如图像的像素值)转换为合适的内部表示或特征向量,学习子系统(通常是分类器)可以从中检测或分类输入中的模式。
    表示学习是一组方法,允许机器输入原始数据,并自动发现检测或分类所需的表示。深度学习方法是具有多个表示层次的表示学习方法,通过组成简单但非线性的模块来获得,每个模块将一个层次的表示(从原始输入开始)转换为更高,更抽象层次的表示。有了足够多这样的变换,就可以学习非常复杂的函数。对于分类任务,更高层次的表示放大了对区分重要的输入方面,并抑制了不相关的变化。例如,图像以像素值阵列的形式出现,并且第一层表示中的学习特征通常表示图像中特定方向和位置处的边缘的存在或不存在。第二层通常通过发现边缘的特定布置来检测图案,而不管边缘位置的小变化。第三层可以将图案组装成与熟悉对象的部分相对应的更大的组合,并且随后的层将检测作为这些部分的组合的对象。深度学习的关键在于,这些特征层不是由人类工程师设计的:它们是使用通用学习过程从数据中学习的。
    深度学习在解决问题方面取得了重大进展,这些问题多年来一直阻止人工智能社区的发展。事实证明,它非常善于发现高维数据中的复杂结构,因此适用于科学、商业和政府的许多领域。 除了打破图像识别和语音识别的记录外,它还在预测潜在药物分子的活性、分析粒子加速器数据、重建大脑回路以及预测非编码DNA突变对基因表达和疾病的影响方面击败了其他机器学习技术。 也许更令人惊讶的是,深度学习在自然语言理解的各种任务中产生了非常有希望的结果,特别是主题分类、情感分析、问答和语言翻译。
   我们认为,深度学习在不久的将来会取得更多的成功,因为它几乎不需要手工设计,因此可以轻松利用可用计算和数据量的增加。目前正在为深度神经网络开发的新的学习算法和架构只会加速这一进程。
总结:
    前言说明了深度学习和传统机器学习相比存在的优势。机器学习对于特征的提取方式比较复杂,需要较大的工程量和很多专业知识。深度学习是具有很多个层次的学习方法,把输入特征从原始特征转化为更高层次的特征,这可以理解为特征提取的过程。并且,这些特征对应的参数都是网络自己学习的而不是人为设置的。

监督学习

翻译:
   最常见的机器学习形式,无论深度与否,都是监督学习。想象一下,我们想要构建一个系统,可以将图像分类为包含房子、汽车、人或宠物。我们首先收集了大量的房屋、汽车、人和宠物的图像数据集,每个图像都标有其类别。在训练过程中,向机器显示一幅图像,并以得分向量的形式产生输出,每个类别一个。我们希望所需的类别在所有类别中得分最高,但这在训练之前不太可能发生。我们计算一个目标函数,该函数测量输出得分与期望得分模式之间的误差(或距离)。然后,机器修改其内部可调参数以减少此误差。这些可调整的参数,通常称为权重,是真实的数字,可以被视为定义机器的输入输出功能的“旋钮”。在一个典型的深度学习系统中,可能有数亿个这样的可调权重,以及数亿个用于训练机器的标记示例。
    为了适当地调整权重向量,学习算法计算梯度向量,对于每个权重,该梯度向量指示如果权重增加微小量,误差将增加或减少多少。然后,在与梯度向量相反的方向上调整权重向量。
   在所有训练示例上平均的目标函数可以被视为权重值的高维空间中的一种丘陵景观。负梯度向量指示该景观中最陡下降的方向,使其接近最小值,其中输出误差平均较低。
   在实践中,大多数从业者使用称为随机梯度下降(SGD)的过程。这包括显示几个示例的输入向量,计算输出和误差,计算这些示例的平均梯度,并相应地调整权重。对于来自训练集的许多小样本集重复该过程,直到目标函数的平均值停止下降。它被称为随机的,因为每个小样本集给出了所有样本的平均梯度的噪声估计。与更复杂的优化技术相比,这种简单的方法通常能以惊人的速度找到一组好的权重。在训练之后,在称为测试集的不同的示例集上测量系统的性能。这是为了测试机器的泛化能力–它对训练中从未见过的新输入产生合理答案的能力。
   目前,机器学习的许多实际应用在手工设计的特征之上使用线性分类器。两类线性分类器计算特征向量分量的加权和。如果加权和高于阈值,则将输入分类为属于特定类别。自20世纪60年代以来,我们已经知道线性分类器只能将其输入空间分割成非常简单的区域,即由超平面分隔的半空间。但是,诸如图像和语音识别之类的问题要求输入-输出函数对输入的不相关变化不敏感,例如对象的位置、方向或照明的变化,或者语音的音调或口音的变化,同时对特定的微小变化非常敏感(例如,白色狼和一种被称为萨摩耶的类似于狗的白色狗之间的差异)。在像素级,处于不同姿势和不同环境中的两个萨摩耶德的图像可能彼此非常不同,而处于相同位置和类似背景上的萨摩耶德和狼的两个图像可能彼此非常相似。线性分类器或任何其他“浅层”分类器原始像素不可能区分后两者,而将前两者归入同一类别。这就是为什么浅层分类器需要一个好的特征提取器来解决选择性-不变性的难题–一个产生对图像中对区分很重要的方面有选择性,但对不相关的方面(如动物的姿势)不变的表示的提取器。为了使分类器更强大,可以使用通用的非线性特征,如核方法,但是通用特征(如高斯核产生的特征)不允许学习者在远离训练示例的情况下很好地进行概括。传统的选择是手工设计好的特征提取器,这需要相当多的工程技术和领域专业知识。但是,如果可以使用通用学习过程来自动学习好的特征,则这一切都可以避免。这是深度学习的关键优势。
    深度学习架构是一个简单模块的多层堆栈,所有(或大多数)模块都需要学习,其中许多模块需要计算非线性的输入-输出映射。堆栈中的每个模块都转换其输入以增加表示的选择性和不变性。有了多个非线性层,比如说5到20层的深度,系统就可以实现极其复杂的输入功能,这些输入功能同时对微小的细节敏感–区分萨摩耶和白色狼–而对背景、姿势、照明和周围物体等大的不相关变化不敏感。
总结:
    监督学习的样本是带有标签的,我们需要的效果是向网络输入一张图片,网络输出一个得分向量,如果这个类别对应得分向量的值最大,说明预测对了。模型在经过训练之前是很难预测正确的。随着训练过程的进行,网络会修改其内部的参数,这些可以调整的参数我们称作权重。
    那网络是怎么修改参数的呢,这就涉及到损失函数和优化器了,损失函数会计算预测结果和真值之间的差距,而优化器会根据损失函数的值计算梯度向量,这个向量会指出,如果修改权重之后,网络的损失会增加还是减少,由此来优化网络的权重。
    损失函数可以想象成一座山丘,人要怎么走才能到山最底下呢?也就是怎么走才能使损失值最小呢?当然是沿着函数下降最快的方向,也就是负梯度方向了。(当然这座山只有一个谷底,否则可能找到的最小值只是局部最小值)。
    使用最广泛的优化器通常是随机梯度下降法(SGD,stochastic gradient descent),随机梯度下降和普通梯度下降相比的优势在于前者不用计算每一个样本的梯度,从而得到迭代值,这样可以大大降低模型的运算量。
    此外,深度学习和机器学习相比能更好的提取特征,传统的线性分类器较难区分微小的变化,而且很容易受外界因素的影响。比如把白色的狼和萨摩耶放在类似的背景上,用线性分类器对其进行区分就会很难。为了解决这种问题,可以用非线性分类器,但是但像高斯核产生的这类通用特征,无法让学习者在远离训练样本的情况下进行良好的泛化。我的理解就是用机器学习方法设计的分类器没有很好的适用性。而深度学习方法只要有多个非线性层,就能满足很复杂的输入需求,而且这些输入功能对于外界变化不敏感,对于对象自身变化很敏感,就能很好的实现分类功能。

训练多层反向传播算法

翻译:
   从最早的模式识别开始,研究人员的目标就是用可训练的多层网络取代手工设计的功能,尽管它很简单,但直到20世纪80年代中期,解决方案才被广泛理解。事实证明,多层架构可以通过简单的随机梯度下降来训练。只要模块是其输入和其内部权重的相对平滑的函数,就可以使用反向传播过程计算梯度。这是可以做到的,而且它是有效的,这一想法是在20世纪70年代和80年代由几个不同的团体独立发现的。
   计算目标函数相对于多层模块的权重的梯度的反向传播过程只不过是导数的链式规则的实际应用。关键的见解是,目标相对于模块输入的导数(或梯度)可以通过从相对于该模块输出(或后续模块的输入)的梯度向后计算(图1)。反向传播方程可以重复应用,以通过所有模块传播梯度,从顶部的输出(网络产生预测的地方)开始,一直到底部(外部输入的地方)。一旦计算出这些梯度,就可以直接计算相对于每个模块的权重的梯度。
Alt图1
   a说明多层神经网络可以扭曲输入空间,让数据变得线性可分。
    b图说明了导数的链式求导法则。
   导数的链式法则告诉我们两个小的效应(x对y的微小变化和y对z的微小变化)是如何构成的。x的微小变化Δx首先通过乘以Δ y/Δ x(即偏导数的定义)转换为y的微小变化Δy。类似地,变化Δy在z中产生变化Δz。将一个方程代入另一个方程,就得到了导数的链式法则–Δx如何通过乘以Δ y/Δ x和Δ z/Δ x的乘积而变成Δz。当x,y和z是向量(并且导数是雅可比矩阵)时,它也有效。

Alt
图2
   c,在具有两个隐藏层和一个输出层的神经网络中,用于计算前向传递的方程,每个隐藏层和输出层构成一个模块,通过该模块可以反向传播梯度。在每一层,我们首先计算每个单元的总输入z,它是下一层单元输出的加权和。然后,非线性函数f(.)应用于z以获得单元的输出。为了简单起见,我们省略了偏置项。神经网络中使用的非线性函数包括近年来常用的整流线性单元(ReLU)f(z)= max(0,z),以及更传统的S形函数,如双曲正切函数f(z)=(exp(z)− exp(−z))/(exp(z)+ exp(−z))和逻辑函数logistic,f(z)= 1/(1 + exp(−z))。
理解:
   c这个图可以理解为前向传播的过程,每一个节点的输出都是上一层节点的输入乘以每条线对应的权值,再加上偏置,再输入一个激活函数。

   d.用于计算向后传递的方程。在每个隐藏层,我们计算相对于每个单元的输出的误差导数,这是相对于上一层中单元的总输入的误差导数的加权和。然后,我们通过将相对于输出的误差导数乘以f(z)的梯度,将相对于输出的误差导数转换为相对于输入的误差导数。在输出层,通过对成本函数进行微分来计算相对于单元输出的误差导数。
理解:
   d这张图可以理解成反向传播的过程,ti为目标真实值,yi为目标预测值,如果输出层的损失函数是0.5*(yi-ti)^2,对yi求偏导可以得误差导数为yi-ti。通过隐藏层的计算可以求得k节点的误差导数,具体计算方法为权值乘以线性层的导数。

   深度学习的许多应用都使用前馈神经网络架构(图1),它学习将固定大小的输入(例如,图像)映射到固定大小的输出(例如,几个类别中每个类别的概率)。为了从一层到下一层,一组单元计算来自前一层的输入的加权和,并将结果通过非线性函数传递。目前,最流行的非线性函数是整流线性单元(ReLU),简单地说就是半波整流器f(z)= max(z,0)。在过去的几十年里,神经网络使用更平滑的非线性,例如tanh(z)或1/(1 + exp(−z)),但ReLU通常在多层网络中学习得更快,允许在没有无监督预训练的情况下训练深度监督网络。不在输入或输出层中的单元通常被称为隐藏单元。隐藏层可以被看作是以非线性的方式扭曲输入,使得类别可以通过最后一层线性分离(图1)。
   在20世纪90年代后期,神经网络和反向传播在很大程度上被机器学习社区所抛弃,并被计算机视觉和语音识别社区所忽视。人们普遍认为,学习有用的,多阶段的,具有很少的先验知识的特征提取器是不可行的。特别是,人们普遍认为简单的梯度下降法会陷入糟糕的局部最小权重配置,对于这种配置,任何小的变化都不会减少平均误差。
   在实践中,对于大的网络,局部极小值很少成为问题。无论初始条件如何,系统几乎总是得到质量非常相似的解。最近的理论和实证结果强烈表明,局部极小值一般不是一个严重的问题。相反,景观中充满了大量的鞍点,这些鞍点的梯度为零,并且表面在大多数维度上向上弯曲,在其余维度上向下弯曲。分析似乎表明,只有少数几个向下弯曲方向的鞍点数量非常多,但几乎所有鞍点的目标函数值都非常相似。因此,算法在这些鞍点中的哪一个上卡住并不重要。
   2006年左右,加拿大高级研究所(CIFAR)的一组研究人员重新燃起了对深度前馈网络的兴趣。研究人员引入了无监督学习程序,可以在不需要标记数据的情况下创建特征检测器层。学习每一层特征检测器的目的是能够重建或建模下一层特征检测器(或原始输入)的活动。通过使用这个重建目标“预训练”几层逐渐复杂的特征检测器,深度网络的权重可以被初始化为合理的值。最后一层输出单元可以添加到网络的顶部,整个深度系统可以使用标准反向传播进行微调。这对于识别手写数字或检测行人非常有效,特别是当标记数据量非常有限时。
   这种预训练方法的第一个主要应用是语音识别,并且由于快速图形处理单元(GPU)的出现而成为可能,这些GPU便于编程,并允许研究人员以10或20倍的速度训练网络。2009年,该方法被用于将从声波中提取的系数的短时间窗口映射到可能由窗口中心的帧表示的各种语音片段的一组概率。它在使用小词汇量的标准语音识别基准测试中取得了破纪录的结果,并迅速发展为在大词汇量任务中取得破纪录的结果。到2012年,许多主要的演讲团体都在开发2009年的深网版本,并已部署在Android手机中。对于较小的数据集,无监督的预训练有助于防止过度拟合,当标记的示例数量较少时,或者在转移设置中,我们有很多用于某些“源”任务的示例,但对于某些“目标”任务却很少时,会导致更好的泛化。一旦深度学习得到恢复,原来只需要对小数据集进行预训练阶段。
   然而,有一种特殊类型的深度前馈网络比相邻层之间完全连接的网络更容易训练和推广。这就是卷积神经网络(ConvNet)。它在神经网络失宠的时期取得了许多实际成功,最近被计算机视觉界广泛采用。
总结
   这一段介绍了前馈神经网络和反向传播算法的原理,反向传播算法,顾名思义,就是从模型的输出端开始计算,但是这里计算的不是预测值而是误差,通过对损失函数不断的反向求导,能够得到下一轮迭代时网络参数的变化值是多少,从而更新网络的参数。
    此外,神经网络在20世纪90年代受到了人们的冷落,因为人们觉得梯度下降算法很容易让模型陷入局部最小值。但是作者认为局部最小值不是很严重的问题,因为在实践中,几乎所有鞍点的目标函数值都比较相似。
   在2006年左右出现了预训练的概念,研究人员使用无监督的学习方式,先对网络进行训练,初始化网络的参数,最后再进行微调。随着GPU的出现,网络训练的速度更快了。

卷积神经网络

翻译:
   自21世纪初以来,ConvNets已成功应用于图像中对象和区域的检测,分割和识别。这些都是标记数据相对丰富的任务,例如交通标志标注,生物图像分割,特别是用于连接组学,以及自然图像中人脸,文本,行人和人体的检测。ConvNets最近的一个主要实际成功是面识别。
   重要的是,图像可以在像素级别进行标记,这将在技术上得到应用,包括自动移动的机器人和自动驾驶汽车。Mobileye和NVIDIA等公司正在即将推出的汽车视觉系统中使用这种基于ConvNet的方法。其他越来越重要的应用包括自然语言理解和语音识别。
   尽管取得了这些成功,但在2012年ImageNet竞赛之前,ConvNets在很大程度上被主流计算机视觉和机器学习社区所抛弃。当深度卷积网络被应用于来自网络的大约100万张图像的数据集时,其中包含1,000个不同的类,它们取得了惊人的结果,几乎将最佳竞争方法的错误率减半。这一成功来自于GPU的有效使用,ReLU,一种名为dropout的新正则化技术,以及通过变形现有训练样本来生成更多训练样本的技术。这一成功带来了计算机视觉的革命; ConvNets现在是几乎所有识别和检测任务的主导方法,并在某些任务上接近人类的表现。最近一个令人惊叹的演示结合了ConvNets和递归网络模块来生成图像标题(图3)。
Alt
   从图片到文字由递归神经网络(RNN)生成的字幕,将深度卷积神经网络(CNN)从测试图像中提取的表示作为额外输入,RNN经过训练,将图像的高级表示“翻译”为字幕(顶部)。当RNN在生成每个单词(粗体)时能够将注意力集中在输入图像中的不同位置(中间和底部;较轻的补丁受到更多关注)时,我们发现它利用这一点来实现更好的“翻译”图像到标题中。
理解:
   CNN通常用来提取特征,能够让RNN在生成每个单词的时候更加关注关键特征。

   最近的ConvNet架构有10到20层ReLU,数亿个权重和数十亿个单元之间的连接。两年前,训练这样的大型网络可能需要数周时间,而硬件、软件和算法并行化的进步已经将训练时间缩短到了几个小时。
   基于ConvNet的视觉系统的性能已经引起了大多数主要技术公司的关注,包括Google,Facebook,Microsoft,IBM,Yahoo!Twitter和Adobe,以及数量迅速增长的初创企业,以启动研发项目,并部署基于ConvNet的图像理解产品和服务。
   ConvNet很容易在芯片或现场可编程门阵列中实现高效的硬件。NVIDIA、Mobileye、英特尔、高通和三星等多家公司正在开发ConvNet芯片,以支持智能手机、相机、机器人和自动驾驶汽车中的实时视觉应用。

总结
这一节主要介绍了卷积神经网络的兴起和应用,但是没有介绍卷积神经网络的原理。

分布式表示与语言处理

翻译:
   深度学习理论表明,与不使用分布式表示的经典学习算法相比,深度网络具有两种不同的指数优势。这两个优点都来自于组合的力量,并取决于具有适当组件结构的底层数据生成分布。首先,学习分布式表示使得能够泛化到学习特征的值的新组合,而不是在训练期间看到的那些组合(例如,2n个组合可能具有n个二进制特征)。第二,在深度网络中组成表示层带来了另一个指数增长的潜力(深度指数)。
   多层神经网络的隐层学习以一种易于预测目标输出的方式来表示网络的输入。通过训练多层神经网络根据先前单词的局部上下文预测序列中的下一个单词,很好地证明了这一点。上下文中的每个单词都作为N中的1个向量呈现给网络,即一个分量的值为1,其余分量的值为0。在第一层中,每个单词创建不同的激活模式,或单词向量(图4)。在语言模型中,网络的其他层学习将输入单词向量转换为预测的下一个单词的输出单词向量,该输出单词向量可用于预测词汇表中的任何单词作为下一个单词出现的概率。网络学习包含许多有效成分的单词向量,每个有效成分可以被解释为单词的单独特征,如在学习符号的分布式表示的上下文中首先演示的那样。这些语义特征没有明确地出现在输入中。它们被学习过程发现是一种将输入和输出符号之间的结构化关系分解为多个“微规则”的好方法。事实证明,当单词序列来自大型真实文本语料库并且单个微观规则不可靠时,学习单词向量也能很好地工作。例如,当被训练预测新闻故事中的下一个单词时,周二和周三的学习单词向量非常相似,瑞典和挪威的单词向量也是如此。这种表示被称为分布式表示,因为它们的元素(特征)不是相互排斥的,并且它们的许多配置对应于在观察数据中看到的变化。这些单词向量由学习的特征组成,这些特征不是由专家提前确定的,而是由神经网络自动发现的。从文本中学习的单词的矢量表示现在在自然语言应用中被非常广泛地使用。
   表征问题是逻辑启发和神经网络启发的认知范式之间争论的核心。在逻辑启发的范式中,符号的实例是唯一的属性是它与其他符号实例相同或不相同的东西。它没有与其使用相关的内部结构;为了用符号进行推理,它们必须与明智选择的推理规则中的变量绑定。相比之下,神经网络只是使用大的活动向量,大的权重矩阵和标量非线性来执行快速的“直观”推理,这种推理支持轻松的常识推理。
   在引入神经语言模型之前,语言统计建模的标准方法并没有利用分布式表示:它是基于对长度不超过N的短符号序列(称为N-gram)的出现频率进行计数。可能的N-gram的数量是VN的数量级,其中V是词汇量,因此考虑到超过少数单词的上下文将需要非常大的训练语料库。N-gram将每个单词视为一个原子单位,因此它们不能在语义相关的单词序列中泛化,而神经语言模型可以,因为它们将每个单词与真实的值特征向量相关联,并且语义相关的单词最终在该向量空间中彼此接近(图4)。
Alt
   左侧是为建模语言学习的单词表示的图示,使用t-SNE算法非线性投影到2D以进行可视化。右边是由英语到法语的编码器-解码器递归神经网络学习的短语的2D表示。可以观察到语义相似的单词或单词序列被映射到附近的表示。单词的分布式表示是通过使用反向传播来联合学习每个单词的表示和预测目标量的函数来获得的,例如序列中的下一个单词(用于语言建模)或整个翻译单词序列(用于机器翻译)。
总结
   这一小节主要介绍了分布式表示和语言处理,在深度学习中的含义是通过将词语或短语表示为向量(数值表示),其中每个词语都被编码为高维空间中的一个点。这种方法使得模型能够捕捉词与词之间的语义关系,类似的词会被表示得更接近。传统的语言模型将词语视为离散符号,而分布式表示将每个词语映射到一个向量空间,每个维度表示词语的一个特征或属性。这些特征是通过学习词语在上下文中的出现方式来捕捉的,从而使模型能够理解词语的更深层次语义。例如,“king”(国王)和“queen”(女王)在向量空间中的表示会很相近,因为它们有相似的特征(例如,都是王室成员,并且有性别区别)。使用分布式表示的深度学习模型还能够对新词组或句子进行组合,从而理解其含义。这意味着,一旦模型学习了单个词的意义,它就能通过组合这些词向量来理解新的词语组合或句子的意思。这些表示是通过大量文本数据训练得到的,常见的技术包括Word2Vec、GloVe等词向量模型,或者更先进的像BERT、GPT这类基于转换器的语言模型,其中每个词语的表示是通过周围的上下文来影响的。

递归神经网络(RNN)

翻译:
   当反向传播首次被引入时,它最令人兴奋的用途是训练递归神经网络(RNN)。对于涉及顺序输入的任务,例如语音和语言,使用RNN通常更好(图5)。RNN一次处理一个输入序列中的一个元素,在它们的隐藏单元中维护一个“状态向量”,该向量隐含地包含序列中所有过去元素的历史信息。当我们考虑隐藏单元在不同离散时间步长的输出时,就好像它们是深层多层网络中不同神经元的输出(图5,右),我们如何应用反向传播来训练RNN变得很清楚。
   RNN是非常强大的动态系统,但训练它们已被证明是有问题的,因为反向传播的梯度在每个时间步长都在增长或收缩,因此在许多时间步长中,它们通常会爆炸或消失。
   由于其架构和训练方法的进步,RNN被发现非常擅长预测文本中的下一个字符或序列中的下一个单词,但它们也可以用于更复杂的任务。例如,在每次阅读一个英语句子后,可以训练英语“编码器”网络,使得其隐藏单元的最终状态向量是句子所表达的思想的良好表示。然后,这个思想向量可以用作联合训练的法语“解码器”网络的初始隐藏状态(或作为额外输入),该网络输出法语翻译的第一个单词的概率分布。如果从该分布中选择特定的第一个单词并将其作为输入提供给解码器网络,则解码器网络将输出翻译的第二个单词的概率分布,依此类推,直到选择句号。总的来说,这个过程根据取决于英语句子的概率分布生成法语单词序列。这种相当幼稚的机器翻译方式很快就与最先进的技术竞争,这引起了人们对理解一个句子是否需要像使用推理规则操纵的内部符号表达式这样的东西的严重怀疑。它更符合这样一种观点,即日常推理涉及许多同时进行的类比,每一个类比都有助于得出一个结论。
   人们可以学习将图像的含义“翻译”成英语句子,而不是将法语句子的含义翻译成英语句子(图3)。这里的编码器是一个深度ConvNet,它将像素转换为最后一个隐藏层中的活动向量。解码器是一个RNN,类似于用于机器翻译和神经语言建模的RNN。最近,人们对这种系统的兴趣激增(见参考文献86中提到的例子)。
   RNN一旦在时间上展开(图5),就可以被视为非常深的前馈网络,其中所有层都共享相同的权重。虽然它们的主要目的是学习长期依赖性,但理论和经验证据表明,很难学习长期存储信息。
   为了纠正这一点,一个想法是用外显记忆来增强网络。第一个这类的建议是长短期记忆(LSTM)网络,它使用特殊的隐藏单元,其自然行为是长时间记住输入。一个被称为记忆单元的特殊单元就像一个累加器或门控泄漏神经元:它在下一个时间步与自身有一个权重为1的连接,所以它复制自己的实值状态并累加外部信号,但这个自连接是由另一个学习决定何时清除记忆内容的单元乘法门控的。
   LSTM网络随后被证明比传统RNN更有效,特别是当它们每个时间步都有几层时,从而实现了从声学到转录中字符序列的整个语音识别系统。LSTM网络或相关形式的门控单元目前也用于在机器翻译方面表现出色的编码器和解码器网络。
   在过去的一年里,几位作者提出了不同的建议,用记忆模块来增强RNN。建议包括神经图灵机,其中网络由“磁带状”存储器增强,RNN可以选择从中读取或写入,以及记忆网络,其中规则网络由一种关联记忆增强。记忆网络在标准问答基准测试中表现出色。记忆用于记住网络稍后被要求回答问题的故事。
   当符号的输入由未排序的序列组成时的一种已排序的符号列表,在该序列中,每个符号都伴随着指示其在列表中的优先级的实数值。记忆网络可以被训练成在类似于文字冒险游戏的环境中跟踪世界的状态,在阅读故事后,它们可以回答需要复杂推理的问题。在一个测试示例中,该网络被展示了15句话版本的《指环王》,并正确地回答了诸如“弗罗多现在在哪里?”之类的问题。

Alt

理解
   RNN可以理解为具有记忆功能的神经网络,其每个节点的输出都和当前输入和前一个节点的输出有关,由图中可以看出每个节点都和三个权重矩阵有关,W矩阵代表前面节点输出的权重矩阵,U代表当前输入的权重矩阵,V代表当前节点输出的权重矩阵。

总结:
   这一小节主要介绍了RNN和LSTM网络,LSTM全名为Long Short-Term Memory,长短时记忆递归神经网络。传统的RNN虽然也能实现翻译功能,但是其运算量太大了,并且容易出现梯度消失和梯度爆炸问题。为了解决这个问题,引入了LSTM网络,LSTM由于其内部结构可以对前面的信息有着遗忘作用,从而解决了RNN存在的问题。

全文总结

这篇文章可以理解为对于深度学习领域的一个大致的介绍,从监督学习,反向传播,卷积神经网络,语言处理,RNN和LSTM等几个方面对于2015年之前深度学习的发展进行了讲解。对于初学者了解深度学习很有帮助。

1. 概述类 首先是概述类论文,先后有2013年的“Representation Learning: A Review and New Perspectives”和2015年的”Deep Learning in Neural Networks: An Overview”两篇。 上传了较新的一篇。 3. 分布式计算 分布式计算方面论文涉及到具体解决计算能力的问题。有2012年的两篇论文Building High-level Features Using Large Scale Unsupervised Learning和Large Scale Distributed Deep Networks,其中后篇较好,其中第一次提到GPU对深度学习计算进行提速,其描述的情形大致是如何对多个GPGPU并行计算的深度学习框架进行编程。故上传了此篇 4. 具体算法 而后便是具体的算法方面的典型论文,包括K-means、单层非监督网络、卷积网络CNN、多级架构、Maxout和增强学习,论文列举如下: 2006年Notes on Convolutional Neural Networks 2009年What is the Best Multi-Stage Architecture for Object Recognition 2011年An Analysis of Single-Layer Networks in Unsupervised Feature Learning 2012年Learning Feature Representations with K-means 2012年Sparse Filtering (其中有RBM,auto-encoder等) 2014年Improving deep neural network acoustic models using generalized maxout networks 2014年Adolescent-specific patterns of behavior and neural activity during social reinforcement learning 2015年Reinforcement learning models and their neural correlates: An activation likelihood estimation meta-analysis和Human-level control through deep reinforcement learning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值