第1章
概述
如何让机器从经验中学习长期以来都是哲学界和科学界的研究目标之一。学习能力对人类智能的形成和发展无疑起着至关重要的作用,而机器学习的研究显然有助于提高人工智能的水平。从原始的输入数据到产生意义的理解过程往往需要经过许多不同层次的信息处理、转换、表达和抽象,如果涉及的层次较深,深度学习的模型和方法就可能发挥重要作用。本章主要勾画深度学习的起源和发展、特点和优势、模型和算法。
1.1深度学习的起源和发展
作为一种实现人工智能的强大技术,深度学习(deep learning)已经在手写数字识别、维数约简、语音识别、图像理解、机器翻译、蛋白结构预测和情感识别等各个方面获得了广泛应用[17],因屡屡取得打破记录的评测结果并超越其他方法,而很快受到了非常高度的关注。
深度学习的概念起源于人工神经网络(artificial neural network),在本质上是指一类对具有深层结构(deep architecture)的神经网络进行有效训练的方法。神经网络是一种由许多非线性计算单元(或称神经元、节点)组成的分层系统,通常网络的深度就是其中的不包括输入层的层数。理论上,一个具有浅层结构(shallow architecture)或层数不够深的神经网络虽然在节点数足够大时,也可能充分逼近地表达任意的多元非线性函数,但这种浅层表达在具体实现时往往由于需要太多的节点而无法实际应用。一般说来,对于给定数目的训练样本,如果缺乏其他先验知识,人们更期望使用少量的计算单元来建立目标函数的“紧表达”(compact representation),以获得更好的泛化能力[8]。而在网络深度不够时,这种紧表达可能是根本无法建立起来的,因为理论研究表明,深度为k的网络能够紧表达的函数在用深度为k-1的网络来表达时,有时需要的计算单元会指数增长[9]。
最早的神经网络是心理学家McCulloch和数理逻辑学家Pitts在1943建立的MP模型[10],而相关的线性回归方法甚至可以追溯到1800年前后[11]。MP模型实际只是单个神经元的形式化数学描述,具有执行逻辑运算的功能,虽然不能进行学习,但开创了人工神经网络研究的时代。1949年,Hebb首先对生物神经网络提出了有关学习的思想[12]。1958年,Rosenblatt提出了感知器(perceptron)模型及其学习算法[13]。在随后的几十年间,尽管神经网络的研究出现过一段与Minsky对感知器的批评有关的低潮期[14],但Grossberg[15]、Kohonen[16]、Narendra&Thathatchar[17]、von der Malsburg[18]、Widrow&Hoff[19]、Palm[20]、Willshaw&von der Malsburg[21]、Hopfield[22]、Ackley[23]、Rumelhart[24]等人仍然逐步提出了许多神经网络的新模型。到20世纪八九十年代,这些新模型终于引发了神经网络的重生,并掀起了对神经网络研究的世界性高潮[25]。其中最受欢迎的模型至少包括:Hopfield神经网络[22]、玻耳兹曼机[23]和多层感知器(MulitLayer Perception,MLP)[24]。最早的深度学习系统也许就是那些通过数据分组处理方法训练的多层感知器[26]。多层感知器(在隐含层数大于1时又称为深层感知器)实际上是一种由多层节点有向图构成的前馈神经网络(Feedforward Neural Network,FNN)[27],其中每一个非输入节点是具有非线性激活函数的神经元,每一层与其下一层是全连接的。此外,Fukushima提出的神经认知机可能是第一个具有“深度”属性的神经网络[2831],并且也是第一个集成简单细胞和复杂细胞的神经生理学洞见的神经网络,以便有效地对视觉输入的某些特性起反应[31,32]。更重要的是,神经认知机促成了卷积神经网络结构的诞生和发展[33]。而卷积神经网络作为一种判别模型,在近几年的大规模数据评测比赛中成绩卓著[34],盛誉非凡。
在训练神经网络方面,反向传播(backpropagation)无疑是最常用、最著名的算法,最先由Werbos描述[35],由LeCun[36]和Parker[37]的有关论文发表,由Rumelhart等人[38]的论文享誉全球,并由Battiti[39]、Fahlman[40]、Igel&Hüsken[41]、Jacobs[42]、Neuneier和Zimmermann[43]、Orr&Müller[44]、Riedmiller&Braun[45]、Schraudolph&Sejnowski[46]、West&Saad[47]等人的工作得到了更好的发展。然而,直到20世纪80年代晚期,反向传播似乎还只是对浅层网络有效,尽管原理上也应对深层网络有效。事实上,大多数多层感知器的应用都只用到很少的隐含层,增加隐含层几乎没有什么经验上的收益。这似乎可以从神经网络的逼近定理中找到某种解释[48,49],该定理为:只要单隐层感知器包含的隐含神经元足够多,就能够在闭区间上以任意精度逼近任何一个多变量连续函数。直到1991年时,这个关于多层感知器在增加层数时为什么难学的问题,才开始作为一个深度学习的基本问题,得到了完全的理解,之前的其他可能想法变得不再重要。
1991年,Hochreiter正式指出,典型的深层网络存在梯度消失或爆炸问题(the problem of vanishing or exploding gradient),从而明确确立了深度学习的一个里程碑[50]。该问题为:累积反向传播误差信号在神经网络的层数增加时会出现指数衰减或增长的现象,从而导致数值计算快速收缩或越界。这就是为什么深层网络很难用反向传播算法训练的主要原因。需要指出的是,梯度消失或爆炸问题又称为长时滞后问题(the long time lag problem),在循环神经网络中也会出现[51]。
为了在一定程度上克服梯度消失或爆炸问题,从1990到2000年前后,Hochreiter的深邃思想推动了若干新方法的探索,包括:1991年的一个非常深的网络[52]、长短时记忆网络(long shortterm memory network)[53]、基于GPU的计算机[54]、海森无关优化(Hessianfree optimization)[55]、权值矩阵空间的替代搜索(如随机权值猜测[56]、通用搜索[57]、evolino[58]和直接搜索[59])。但除了卷积神经网络以外[60],训练深层网络的问题直到2006年才开始受到严肃认真的对待。一个重要的原因是1995年之后支持向量机的快速发展[61],让神经网络的有关工作黯然失色。
普遍认为,深度学习正式发端于2006年,以Hinton及其合作者发表的两篇重要论文为标志,一篇发表在《Neural Computation》上,题目为“A fast learning algorithm for deep belief nets”[62],另一篇发表在《Science》上,题目为“Reducing the dimensionality of data with neural networks”[1]。从那时起,深度学习的概念就开始明朗,因为清楚地说明了浅层网络的无监督学习(如受限玻耳兹曼机[63]的对比散度算法[64])有助于深层网络(如深层自编码器和深层感知器[1])的有监督学习算法(如反向传播)。特别是,经验证实了由无监督预训练和有监督调优构成的两阶段策略不仅对于克服深层网络的训练困难是有效的,而且赋予了深层网络优越的特征学习能力。紧接着,许多新的深层结构又被建立起来(如深层玻耳兹曼机[65]、和积网络[66]、深层堆叠网络[67]),许多新的可行技术被发展起来(如最大池化[68]、丢失连接(dropconnect)[69]、dropout[70]),而且还取得了许多新的历史性成就(如手写体数字识别[1]、ImageNet分类[3]和语音识别[71])。所有这些结构、技术和成就,使深度学习大受欢迎,并很快在学术界发展成为一次神经网络的新浪潮。这其中最主要的原因当然是深度学习在大量重要应用中的性能超越了机器学习的其他替代方法(如支持向量机[72])。
深度学习的巨大成功也迅速点燃了一大批杰出学者的热情。随着研究的不断发展,各国政府部门逐步给深度学习投入了大量的科研经费,在ICML、NIPS、ICLR、IEEE Trans. PAMI等著名会议和期刊上发表的相关论文越来越多,而且深度学习频频打破评测记录的战果还极大地激发了工业界的斗志,Google、Facebook、微软、百度、Apple、IBM、Yahoo!、Twitter、腾讯、京东和阿里巴巴,以及许多其他搜索和社交公司,都加入了其中的比拼,有的甚至为之疯狂。从目前的情况看,这场声势浩大的深度学习浪潮至少还要持续一段相当长的时间。