转载请注明出处。
1.1 本书适合哪些人阅读?
能够说本书的受众目标比較广泛,可是本书可能更适合于例如以下的两类人群。一类是学习过与机器学习相关课程的大学生们(本科生或者研究生)。这包含了那些刚刚開始深度学习和AI研究的同学们。还有一类是有机器学习或统计学背景的。想高速将深度学习应用在其产品或平台中的软件开发人员们。深度学习早已被证实能够在很多软件应用中发挥光和热。比方:计算机视觉、语音与视频处理、自然语言理解、机器人学、生物学与化学、电视游戏、搜索引擎、在线广告与金融学等等。
为了最大程度的满足不同读者的须要,本书被分为了三个部分。第一部分介绍基础的数学工具和机器学习的概念;第二部分阐述那些有充分的理论支撑的深度学习算法;第三部分是对深度学习的展望,主要介绍了一些对深度学习发展有重要意义的、猜測性的观点。
我们希望读者能够依据自身的兴趣与知识背景有选择的阅读本书。
熟悉线性代数、概率论和机器学习基本概念的读者能够跳过第一部分;为了帮助大家有选择性的阅读,图1.6展示了本书的高层组织结构。
图1.6 本书组织结构
我们默认本书的读者都有计算机科学的专业背景,并且对编程、计算效率、复杂理论、0基础微积分和图论术语有一定的了解。
1.2深度学习的发展历史
了解深度学习的历史对理解深度学习是有帮助的。相比于阐述详尽的深度学习发展史。我们更倾向于从下面几点展开:
- 深度学习有着繁杂的历史,受不同哲学观点的影响它拥有过很多不同的称谓。而它的流行程度也曾起伏不定。
- 深度学习的表现越来越出色。而这离不开日益增大的训练集。
- 得益于计算机硬件与软件基础设施的发展,深度学习模型的规模能够不断增大。
- 随着深度学习的发展它将有能力解决更复杂的应用。
1.2.1神经网络的变迁与称谓的更迭
我们希望读者将深度学习视为一种令人激动的新技术,而且乐于通过本书了解此新兴领域的发展史。其实,深度学习能够追溯到20世纪40年代,它之所以听起来比較新颖,一是由于和如今相比它以前的流行度相对非常低。二是由于它以前换过很多名字。而“深度学习”这个称谓也是近期才兴起的。
神经网络这个领域曾有过几次重大变迁。每一次的更迭都反映了不同一时候代的学者与哲学观的影响。
详尽地描写叙述深度学习的发展史超出了本书的范畴,可是。简要的了解深度学习发展史是有必要的。概括的说,历史上大致出现过3次深度学习的发展热潮:在20世纪40年代至20世纪60年代。深度学习以控制论的形式存在;在20世纪80年代至20世纪90年代,深度学习以联系论的形式存在。直到2006年,才迎来了深度学习的回归。图1.7具体的阐述了这个过程。
图1.7 发展历程
早期的学习算法试图使用可计算的模型来模拟生物的学习机制。
比方:对学习怎样在大脑中发生而且何时能够发生进行建模。深度学习的前身人工神经网络(ANNs)就是其产物。
一部分人觉得深度学习模型受到了生物大脑机制(包含人类大脑和其它生物的大脑)的启示。虽然机器学习中的神经网络有时也会被用来理解大脑的功能(Hinton and shallice,1991),可是人们在设计它们的时候并没有严格地參照生物机制。
之所以有人从神经学的角度进行深度学习的研究主要是由于下面两点。一是,既然大脑使得生物拥有了智慧。那么我们有理由觉得在经过对大脑的深入研究之后。人们就有可能通过逆向project复现大脑的机制;还有一个是,理解大脑与人类智慧的原理本身就是一件十分有意义的事。
因此。机器学习模型不仅能够用来解决一些project问题。还为人们解决基础科学研究中的难题带来了曙光。
拥有现代化术语的“深度学习”在神经科学方面比机器学习的其它模型有更长足的发展。它表现出了学习“多层次”的原则。而这种原则更具有普适性,由于它并不一定要借鉴神经学的观点,而且还能够被应用于普通机器学习的框架之下。
深度学习模型的前身是那些曾受到神经科学观点影响的、简单的线性模型。这些模型的目标是求解一组含有n个值的输入(x1,,,xn)与一个输出(y)的映射函数。
这些模型能够学习到一组权重(w1,,,wn)。然后通过f(x,w)=x1w1+...+xnwn计算其输出。
麦卡洛克–皮茨神经元(McCullochand Pitts,1943)是一个模拟大脑机制的早期线性模型。
这个模型通过測试f(x,w)的正负完毕二分类任务;当然了,当中的权重必须经过合适地调整才干使我们的模型与要识别的那两个类相关联,而在当时,它的权重是人工指定的。在20世纪50年代。产生了第一个从数据中学习权重以解决分类问题的方法:感知机(Rosenblatt,1958,1962),而同一时候期的自适应线性元件(ADALINE),能够通过对简单函数值f(x)的计算来预測一个实数(Widrow and Hoff,1960)。并且它也能从数据中学习怎样预測。
这些简单的学习算法却对现代机器学习格局的形成产生了巨大的影响。早期自适应调整ADALINE权重的算法事实上是现今随机梯度下降算法的一个特例。直到今天。随机梯度下降法以及与其相关的其它版本号算法仍然是训练深度学习模型的一个重要策略。
不管是感知机还是自适应线性元件,它们都是线性模型。它们都基于形如f(x,w)的线性函数。虽然现今线性模型的训练与早期的相比有了非常大不同,可是它仍然被广泛的应用在众多的机器学习算法之中。
我们知道。线性模型有非常大的局限性。最明显的样例是这类方法甚至不能学习到最简单的异或函数,所谓异或函数,即,f([0,1],w)=1 and f([1,0],w)=1 but f([1,1],w)=0 and f([0,0],w)=0。而认识到了此弊端的批判者们(Minsky and Papert,1969)掀起了抵制这类生物启示式学习算法的潮流,而这股潮流仅仅是神经网络发展过程中的第一次打击。
今天,深度学习的研究者们仍然把神经科学视为他们产生灵感的一个重要源泉,但已经不是基本的来源了。
而神经科学在深度学习领域影响力的下降主要是由于我们对大脑的了解还远没有到达能够指导实际应用的程度。当我们有能力同一时候监督至少成千上万个互相连接的神经元之间的响应时。我们才有可能对大脑有一个深刻的认识,然后再谈建模的事情;然而。我们临时还没有这种能力。比方,理解那些最简单而且已经有一定研究基础的大脑区域尚且另一段非常长的路要走(Olshausen and Field,2005)。
对神经科学的研究使我们有理由相信单个深度学习算法可以解决很多不同的任务。神经科学家们(Von Melchner et al,2000)发现假设我们不断地以视觉信号刺激白鼠主管听觉的大脑区域。那么白鼠终于能通过那片区域完毕视觉信号的处理。这一重大发现表明大多哺乳动物的大脑可能会使用同一种模式去处理很多不同的任务。在认识到这点之前,机器学习已经被划分为了很多不同的算法方向。比方:自然语言处理,视觉信息处理。运动控制和语言理解;今天。这些方向仍然可以从算法的角度清晰度划分开来,可是这并最好还是碍深度学习研究者们将深度学习的框架应用到这些不同的领域中。
我们能够从神经科学的角度来粗略的描写叙述深度学习的变迁。在大脑机理的启示下产生了使用很多相互作用的计算单元来使系统变得智能的观点。神经认知机(Fukushima,1980)引入了一个有效的用于图像处理的模型结构。而它正是受到了哺乳动物视觉系统结构的启示,而且终于成为了现代卷积网络(LeCun et al.,1998b)的基础。
今天很多神经网络都用到了修正的线性单元。。而原始的认知机(Fukushima,1975)也是在大脑工作机制的影响下引入了一个更加复杂的版本号。
相对简化的现代算法是历史上几种观点融合后的产物,这几种观点来自于Nair 、 Hinton(2010)、Glorot et al.(2011a)和Jarrett et al.(2009),当中Glorot et al.(2011a)引入了神经科学,Jarrett et al.(2009)引入了project学的思想。尽管神经科学是设计深度学习的重要灵感来源,可是它并没有被当看做是一种严格的指导方针。我们知道修正线性单元(Relu)与真正的生物体神经响应模式还是有非常大差别的,有意思的是。使用它却能得到比使用那些更接近神经元真实响应的函数更好的结果。尽管在神经科学的启示下有了一些成功的神经网络结构,但我们还没有从生物的学习机制中挖掘出足够多的能够用于指导网络训练的信息。
然而很多媒体在宣传的过程中却经常会强调深度学习模型与大脑机制的相似性。尽管研究深度学习的学者们比机器学习其它领域(比方核函数或贝叶斯统计)的学者们更有可能将大脑机理作为灵感的来源,可是我们不应该将深度学习视为对大脑的一种模拟。
由于深度学习还受到了更多领域的启迪,尤其是一些数学基础领域。比方线性代数、概率论、信息论和数值优化。至于神经科学,有的深度学习研究者非常重视它。有的则根本不care它。
试图通过算法来解释大脑怎样工作的是非经常见的情况。这些工作主要属于计算神经学的范畴,它与深度学习是两个不同的领域。研究者们在这两个领域之间徘徊是非常正常的。深度学习主要探究怎样建立一个相当智能的计算机系统。而计算神经学主要探究怎样建立一个更准确地解释大脑机制的模型。
20世纪80年代,迎来了神经网络的第二波发展运动,这波运动被称为:联系论或者并行分布式处理(Rumelhart et al.,1986c;McClelland et al.,1995).联系论为认知科学营造了非常好的学术环境。认知科学是一个理解大脑机制的交叉学科,融合了不同层次的分析。在20世纪80年代早期,很多认知学科学家研究符号推理模型。
虽然这样的模型曾流行一时,可是它依旧非常难解释大脑怎样利用神经元实现推理的。
因而,联系论者转而開始研究有神经实现(Touretzky and Minton,1985)理论基础的认知模型,这使得心理学家DonaldHebb在20世纪40年代的研究工作(Hebb,1949)又再度兴起。
联系论的核心观点是很多简单的计算单元协同工作时可以表现出智能的行为。
这个观点相同适用于生物神经系统中的神经元以及计算模型中的隐含单元。
现代神经网络的核心观点与20世纪80年代的联系论运动中兴起的几个关键概念有着千丝万缕的关系。
分布式表征(Hinton etal.,1986)就是那些关键概念中的一个。该观点觉得系统的每个输入都应该被多个特征子所描写叙述,而且每个特征应该与很多潜在的输入相关联。比方:如果我们有一个能够识别汽车、卡车和鸟类的视觉系统,而且这些物体都有红绿蓝三种颜色。表示这些输入的一种方式是一个能够响应例如以下9种可能的、分离的神经元或者隐藏单元,这样的可能是:红色卡车,红色汽车,红色的小鸟,绿色卡车等等。
这须要9个不同的神经元,而且每个神经元必须独立的学习物体和颜色的概念。一种改进方法就是使用分布式表征,使用三个神经元描写叙述颜色。另三个神经元描写叙述物体属性。相比于前边的9个神经元这一共仅须要6个神经元。
而且描写叙述红色属性的神经元有能力学习图片中的红色汽车、红色卡车和红色小鸟的共同拥有属性。而不不过图片中的某一个指定类。分布式表征学习的理念是本书的一个核心,而且将在第15章具体解说。
联系论的还有一个主要成就是反向传播(BP反传)算法在深度神经网络训练中的成功应用;而且BP反传算法(Rumelhart et al.,1986;Lecun,1987)在此期间流行起来。
这个算法的流行程度也曾跌宕起伏,可是到眼下为止它依旧是训练深度模型的主流方法。
在20世纪90年代。研究者们针对处理序列化数据的神经网络模型提出了非常多有建设性的建议。Hochreiter(1991) 和 Bengio et al.(1994)将建立处理长序列性数据的模型时面临的难题以数学的形式表达了出来。Hochreiter 和 Schmidhuber(1997)引入了长短期记忆体和LSTM网络来解决这些困难。现今,LSTM已经被广泛的应用在了很多处理序列类数据的模型中,包含Google众多的自然语言处理项目。
神经网络的第二波发展热潮一直持续到了20世纪90年代中期。此时,一些基于神经网络的企业和一些AI技术開始为了不切实际的目标而寻求投资,当AI的研究不能满足这些不合理的期望时。股东们可能会望而却步;而与此同一时候,机器学习的其它领域有一定的发展,核机器(Boser et al.,1992;Cortes and Vapnik,1995;Scholkopf et al.,1999)和基于图的模型(Jordan,1998)在很多重要的任务中都取得了不错的成绩。正是这两个因素导致神经网络领域的热度在2007年前曾一度处于低迷状态。
而在这个时期。神经网络依旧在某些任务中有出色的表现(LeCun et al.,1998b;Bengio et al.,2001)。加拿大先进研究院(CIFAR)通过启动神经计算与自适应感知(NCAP)研究倡议为保留神经网络研究的火种做出了贡献。这个项目将几个机器学习研究小组联合了起来。这些小组的领导者信息例如以下:多伦多大学的Geoffrey Hinton,蒙特利尔大学的Yoshua Bengio,纽约大学的Yann LeCun。
组合后的研究团队具有多学科的知识背景,当中不乏神经科学家、人类学家与计算机视觉方面的专家。
与此同一时候。研究者们普遍觉得深度网络是难以被训练的。
然而,如今那些20世纪80年代就提出的算法在今天却可以非常好地工作,这主要是由于早期提出的算法计算量太大了,以至于都超过了当时硬件的承受能力;可是在2006年曾经我们还不能确定上述这个原因。
2006年的一个重大突破掀起了神经网络的第三波研究热潮。Geoffrey Hinton 证明了一种叫做深度信念网络的神经网络能够通过一种叫做层级贪婪预训练的策略而得到有效的训练(Hinton et al.,2006)。非常快,CIFAR的其它研究小组就发现这个策略对于更多神经网络的训练也是有效的(Bengio et al.,2007;Ranzato et al.,2007a),而且这个策略还使得系统的泛化能力得到了提升。在这一波热潮中。研究者们喜欢用深度学习这个词来强调他们有能力去训练比以往更深的神经网络模型,而且重视从理论上解释“深度”(Bengio and LeCun,2007;Delalleau and Bengio,2011;Pascanu etal.,2014a;Montufar et al.,2014)。
此时,深度神经网络得到了比其它机器学习的算法或者人工设计的函数更好的结果。
直到今天。神经网络的第三波发展运动仍在进行。虽然深度学习的研究已经是一个非常活跃的领域。第三波运动的发展始于对无监督学习新技巧的探索和模型泛化能力的提升,可是在现今,人们对相对古老的监督学习算法表现出了很多其它的兴趣,而且对深度模型在大规模有标签的数据集上的表现更感兴趣。