deep learning 综述:

深度学习就是一种特征学习方法,把原始数据通过一些简单的但是非线性的模型转变成为更高层次的,更加抽象的表达。通过足够多的转换的组合,非常复杂的函数也可以被学习。

深度学习的核心方面是,上述各层的特征都不是利用人工工程来设计的,而是使用一种通用的学习过程从数据中学到的。

监督学习:

机器学习中,不论是否是深层,最常见的形式是监督学习。

在实际应用中,大部分从业者都使用一种称作随机梯度下降的算法(SGD)。它包含了提供一些输入向量样本,计算输出和误差,计算这些样本的平均梯度,然后相应的调整权值。通过提供小的样本集合来重复这个过程用以训练网络,直到目标函数停止增长。它被称为随机的是因为小的样本集对于全体样本的平均梯度来说会有噪声估计。这个简单过程通常会找到一组不错的权值,同其他精心设计的优化技术相比,它的速度让人惊奇。训练结束之后,系统会通过不同的数据样本——测试集来显示系统的性能。这用于测试机器的泛化能力——对于未训练过的新样本的识别能力。

一个线性分类器或者其他操作在原始像素上的浅层分类器不能够区分后两者,虽然能够将前者归为同一类。这就是为什么浅分类要求有良好的特征提取器用于解决选择性不变性困境——提取器会挑选出图像中能够区分目标的那些重要因素,但是这些因素对于分辨动物的位置就无能为力了。为了加强分类能力,可以使用泛化的非线性特性,如核方法,但这些泛化特征,比如通过高斯核得到的,并不能够使得学习器从学习样本中产生较好的泛化效果。

传统的方法是手工设计良好的特征提取器,这需要大量的工程技术和专业领域知识。但是如果通过使用通用学习过程而得到良好的特征,那么这些都是可以避免的了。这就是深度学习的关键优势。

用反向传播训练多层神经网络:

用来求解目标函数关于多层神经网络权值梯度的反向传播算法(BP)只是一个用来求导的链式法则的具体应用而已。

反向传播算法的核心思想是:目标函数对于某层输入的导数(或者梯度)可以通过向后传播对该层输出(或者下一层输入)的导数求得。

很多深度学习的应用都是使用前馈式神经网络(如图1),该神经网络学习一个从固定大小输入(比如输入是一张图)到固定大小输出(例如,到不同类别的概率)的映射。从第一层到下一层,计算前一层神经元输入数据的权值的和,然后把这个和传给一个非线性激活函数。当前最流行的非线性激活函数是rectified linear unit(ReLU),函数形式:f(z)=max(z,0)。过去的几十年中,神经网络使用一些更加平滑的非线性函数,比如tanh(z)和1/(1+exp(-z)),但是ReLU通常会让一个多层神经网络学习的更快,也可以让一个深度网络直接有监督的训练(不需要无监督的pre-train)。

达到之前那种有pre-train的效果。通常情况下,输入层和输出层以外的神经单元被称为隐藏单元。隐藏层的作用可以看成是使用一个非线性的方式打乱输入数据,来让输入数据对应的类别在最后一层变得线性可分。

2006年前后,CIFAR(加拿大高级研究院)把一些研究者聚集在一起,人们对深度前馈式神经网络重新燃起了兴趣。研究者们提出了一种非监督的学习方法,这种方法可以创建一些网络层来检测特征而不使用带标签的数据,这些网络层可以用来重构或者对特征检测器的活动进行建模。通过预训练过程,深度网络的权值可以被初始化为有意思的值然后一个输出层被添加到该网络的顶部,并且使用标准的反向传播算法进行微调。这个工作对手写体数字的识别以及行人预测任务产生了显著的效果,尤其是带标签的数据非常少的时候。

使用这种预训练方法做出来的第一个比较大的应用是关于语音识别的,并且是在GPU上做的,这样做是因为写代码很方便,并且在训练的时候可以得到10倍或者20倍的加速。2009年,这种方法被用来映射短时间的系数窗口,该系统窗口是提取自声波并被转换成一组概率数字。它在一组使用很少词汇的标准的语音识别基准测试程序上达到了惊人的效果,然后又迅速被发展到另外一个更大的数据集上,同时也取得惊人的效果。从2009年到到2012年底,较大的语音团队开发了这种深度网络的多个版本并且已经被用到了安卓手机上。对于小的数据集来说,无监督的预训练可以防止过拟合,同时可以带来更好的泛化性能当有标签的样本很小的时候。一旦深度学习技术重新恢复,这种预训练只有在数据集合较少的时候才需要。

然后,还有一种深度前馈式神经网络,这种网络更易于训练并且比那种全连接的神经网络的泛化性能更好这就是卷积神经网络(CNN)。当人们对神经网络不感兴趣的时候,卷积神经网络在实践中却取得了很多成功,如今它被计算机视觉团队广泛使用。

卷积神经网络:

卷积神经网络被设计用来处理多维数组数据的,比如一个有3个包含了像素值2-D图像组合成的一个具有3个颜色通道的彩色图像。很多数据形态都是这种多维数组的:1D用来表示信号和序列包括语言,2D用来表示图像或者声音,3D用来表示视频或者有声音的图像。卷积神经网络使用4个关键的想法来利用自然信号的属性:局部连接、权值共享、池化以及多网络层的使用。

一个典型的卷积神经网络结构(如图2)是由一系列的过程组成的。最初的几个阶段是由卷积层和池化层组成,卷积层的单元被组织在特征图中,在特征图中,每一个单元通过一组叫做滤波器的权值被连接到上一层的特征图的一个局部块,然后这个局部加权和被传给一个非线性函数,比如ReLU。在一个特征图中的全部单元享用相同的过滤器,不同层的特征图使用不同的过滤器。使用这种结构处于两方面的原因。

首先,在数组数据中,比如图像数据,一个值的附近的值经常是高度相关的,可以形成比较容易被探测到的有区分性的局部特征。其次,不同位置局部统计特征不太相关的,也就是说,在一个地方出现的某个特征,也可能出现在别的地方,所以不同位置的单元可以共享权值以及可以探测相同的样本。在数学上,这种由一个特征图执行的过滤操作是一个离线的卷积,卷积神经网络也是这么得名来的。

卷积层的作用是探测上一层特征的局部连接,然而池化层的作用是在语义上把相似的特征合并起来,这是因为形成一个主题的特征的相对位置不太一样。一般地,池化单元计算特征图中的一个局部块的最大值,相邻的池化单元通过移动一行或者一列来从小块上读取数据,因为这样做就减少的表达的维度以及对数据的平移不变性。两三个这种的卷积、非线性变换以及池化被串起来,后面再加上一个更多卷积和全连接层。在卷积神经网络上进行反向传播算法和在一般的深度网络上是一样的,可以让所有的在过滤器中的权值得到训练。

深度神经网络利用的很多自然信号是层级组成的属性,在这种属性中高级的特征是通过对低级特征的组合来实现的。在图像中,局部边缘的组合形成基本图案,这些图案形成物体的局部,然后再形成物体。这种层级结构也存在于语音数据以及文本数据中,如电话中的声音,因素,音节,文档中的单词和句子。当输入数据在前一层中的位置有变化的时候,池化操作让这些特征表示对这些变化具有鲁棒性。

卷积神经网络中的卷积和池化层灵感直接来源于视觉神经科学中的简单细胞和复杂细胞。这种细胞的是以LNG-V1-V2-V4-IT这种层级结构形成视觉回路的。当给一个卷积神经网络和猴子一副相同的图片的时候,卷积神经网络展示了猴子下颞叶皮质中随机160个神经元的变化。卷积神经网络有神经认知的根源,他们的架构有点相似,但是在神经认知中是没有类似反向传播算法这种端到端的监督学习算法的。一个比较原始的1D卷积神经网络被称为时延神经网络,可以被用来识别语音以及简单的单词。

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

21世纪开始,卷积神经网络就被成功的大量用于检测、分割、物体识别以及图像的各个领域。这些应用都是使用了大量的有标签的数据,比如交通信号识别,生物信息分割,面部探测,文本、行人以及自然图形中的人的身体部分的探测。近年来,卷积神经网络的一个重大成功应用是人脸识别。

值得一提的是,图像可以在像素级别进行打标签,这样就可以应用在比如自动电话接听机器人、自动驾驶汽车等技术中。像Mobileye以及NVIDIA公司正在把基于卷积神经网络的方法用于汽车中的视觉系统中。其它的应用涉及到自然语言的理解以及语音识别中。

尽管卷积神经网络应用的很成功,但是它被计算机视觉以及机器学习团队开始重视是在2012年的ImageNet竞赛。在该竞赛中,深度卷积神经网络被用在上百万张网络图片数据集,这个数据集包含了1000个不同的类。该结果达到了前所未有的好,几乎比当时最好的方法降低了一半的错误率。这个成功来自有效地利用了GPU、ReLU、一个新的被称为dropout的正则技术,以及通过分解现有样本产生更多训练样本的技术。这个成功给计算机视觉带来一个革命。如今,卷积神经网络用于几乎全部的识别和探测任务中。最近一个更好的成果是,利用卷积神经网络结合回馈神经网络用来产生图像标题。

如今的卷积神经网络架构有10-20层采用ReLU激活函数、上百万个权值以及几十亿个连接。然而训练如此大的网络两年前就只需要几周了,现在硬件、软件以及算法并行的进步,又把训练时间压缩到了几小时。

基于卷积神经网络的视觉系统的性能已经引起了大型技术公司的注意,比如Google、Facebook、Microsoft、IBM,yahoo!、Twitter和Adobe等,一些快速增长的创业公司也同样如是。

卷积神经网络很容易在芯片或者现场可编程门阵列(FPGA)中高效实现,许多公司比如NVIDIA、Mobileye、Intel、Qualcomm以及Samsung,正在开发卷积神经网络芯片,以使智能机、相机、机器人以及自动驾驶汽车中的实时视觉系统成为可能。

分布式特征表示与语言处理:

递归神经网络: 首次引入反向传播算法时,最令人兴奋的便是使用递归神经网络(recurrent neural networks,下文简称RNNs)训练。对于涉及到序列输入的任务,比如语音和语言,利用RNNs能获得更好的效果。RNNs一次处理一个输入序列元素,同时维护网络中隐式单元中隐式的包含过去时刻序列元素的历史信息的“状态向量”。如果是深度多层网络不同神经元的输出,我们就会考虑这种在不同离散时间步长的隐式单元的输出,这将会使我们更加清晰怎么利用反向传播来训练RNNs。

RNNs是非常强大的动态系统,但是训练它们被证实存在问题的,因为反向传播的梯度在每个时间间隔内是增长或下降的,所以经过一段时间后将导致结果的激增或者降为零。

类比于将法语句子的意思翻译成英语句子,同样可以学习将图片内容“翻译”为英语句子(如图3)。这种编码器是可以在最后的隐层将像素转换为活动向量的深度卷积网络(ConvNet)。解码器与RNNs用于机器翻译和神经网络语言模型的类似。近来,已经掀起了一股深度学习的巨大兴趣热潮(参见文献[86]提到的例子)。

RNNs一旦展开(如图5),可以将之视为一个所有层共享同样权值的深度前馈神经网络。虽然它们的目的是学习长期的依赖性,但理论的和经验的证据表明很难学习并长期保存信息。

为了解决这个问题,一个增大网络存储的想法随之产生。采用了特殊隐式单元的LSTM(long short-termmemory networks)被首先提出,其自然行为便是长期的保存输入。一种称作记忆细胞的特殊单元类似累加器和门控神经元:它在下一个时间步长将拥有一个权值并联接到自身,拷贝自身状态的真实值和累积的外部信号,但这种自联接是由另一个单元学习并决定何时清除记忆内容的乘法门控制的。

LSTM网络随后被证明比传统的RNNs更加有效,尤其当每一个时间步长内有若干层时,整个语音识别系统能够完全一致的将声学转录为字符序列。目前LSTM网络或者相关的门控单元同样用于编码和解码网络,并且在机器翻译中表现良好。

过去几年中,几位学者提出了不同的提案用于增强RNNs的记忆模块。提案中包括神经图灵机,其中通过加入RNNs可读可写的“类似磁带”的存储来增强网络,而记忆网络中的常规网络通过联想记忆来增强。记忆网络在标准的问答基准测试中表现良好,记忆是用来记住稍后要求回答问题的事例。

深度学习的未来展望:

无监督学习对于重新点燃深度学习的热潮起到了促进的作用,但是纯粹的有监督学习的成功盖过了无监督学习。在本篇综述中虽然这不是我们的重点,我们还是期望无监督学习在长期内越来越重要。无监督学习在人类和动物的学习中占据主导地位:我们通过观察能够发现世界的内在结构,而不是被告知每一个客观事物的名称。

人类视觉是一个智能的、基于特定方式的利用小或大分辨率的视网膜中央窝与周围环绕区域对光线采集成像的活跃的过程。我们期望未来在机器视觉方面会有更多的进步,这些进步来自那些端对端的训练系统,并结合ConvNets和RNNs,采用增强学习来决定走向。结合了深度学习和增强学习的系统正处在初期,但已经在分类任务中超过了被动视频系统,并在学习操作视频游戏中产生了令人印象深刻的效果。

在未来几年,自然语言理解将是深度学习做出巨大影响的另一个领域。我们预测那些利用了RNNs的系统将会更好地理解句子或者整个文档,当它们选择性地学习了某时刻部分加入的策略。

最终,在人工智能方面取得的重大进步将来自那些结合了复杂推理表示学习(representation learning )的系统。尽管深度学习和简单推理已经应用于语音和手写字识别很长一段时间了,我们仍需要通过操作大量向量的新范式来代替基于规则的字符表达式操作

原文链接:

https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf

results matching ""

    No results matching ""