跳转至

第 1 章:引言(Introduction)

本章导言:什么是深度学习

本章开篇把深度学习放在人工智能(AI)的历史脉络里展开讨论。作者追溯到古希腊神话中的皮格马利翁、戴达罗斯与赫菲斯托斯——这些传说中的发明者及其造物(伽拉忒亚、塔罗斯、潘多拉)可被解读为对"人工生命"的早期想象(Ovid and Martin, 2004; Sparkes, 1996; Tandy, 1997)。在可编程计算机诞生之前约一百年,Lovelace(1842)就曾思索机器是否能变得智能。今天的 AI 已成为一门应用广泛、研究活跃的领域,涵盖日常劳动自动化、语音与图像理解、医学诊断与基础科研等。

早期 AI 迅速解决了对人类而言智力上困难、但对计算机相对容易的问题——这些任务可以用一组形式化数学规则描述(如下棋)。真正的挑战在于解决对人而言直觉化、自动化、却难以形式化描述的任务,例如语音识别与人脸识别。本书给出的解决思路是让计算机从经验中学习,并用"概念的分层结构"理解世界:每个概念都由它与更简单概念的关系定义。这种方式无需人类操作员形式化地指定全部知识。分层结构使得复杂概念可以由简单概念层层搭建。把这些概念的依赖关系画成图,层数很深,故名"深度学习"。

作者接着以 IBM 的 Deep Blue 1997 年击败世界冠军 Kasparov 为例(Hsu, 2002),指出国际象棋只有 64 个位置、32 个棋子,移动规则严格而有限——这类任务可以用一份简短的、完全形式化的规则列表事先描述。讽刺的是,对人类而言最困难的抽象与形式化任务,恰恰是计算机最容易完成的;反之,人类日常行为所需的大量知识是主观且直觉的,难以形式化表达。AI 的一个关键挑战正是如何把这类非形式化知识灌入计算机。

历史上多个 AI 项目试图用形式化语言把世界知识硬编码给计算机,并依靠逻辑推理规则自动推导,这就是知识库(knowledge base)方法。其中最著名的是 Cyc(Lenat and Guha, 1989)——一个以 CycL 语言存储陈述、由人类监督员手动录入的推理引擎与数据库。这种做法笨重而失败:人们难以写出足够复杂的规则来准确描述世界。例如 Cyc 无法理解一个人早晨刮脸的故事(Linde, 1992)——它的推理引擎检测到"FredWhileShaving"这一实体持有电动剃须刀(电气部件),但又知道人没有电气部件,因而矛盾地追问"Fred 刮脸时是否还是人"。

硬编码知识的方法遭遇的困难表明:AI 系统需要具备从原始数据中提取模式、自主获取知识的能力,这就是机器学习(machine learning)。其代表性应用包括用 logistic 回归决定是否推荐剖宫产(Mor-Yosef et al., 1990),用朴素贝叶斯区分垃圾邮件。然而这些简单算法的性能严重依赖于数据的表征(representation)。例如 logistic 回归推荐剖宫产时,AI 系统并不直接检查病人,而是依赖医生输入"是否存在子宫瘢痕"等结构化信息;每条这样的信息称为一个特征(feature)。logistic 回归只能学习各特征与结果之间的相关性,无法影响特征的定义方式。若给它 MRI 原始像素而非医生的形式化报告,便无法做出有用的预测——单个 MRI 像素与分娩并发症的相关性微乎其微。

作者强调这种对表征的依赖是贯穿计算机科学乃至日常生活的普遍现象:有索引的数据集合搜索指数级地快;阿拉伯数字上的算术远快于罗马数字。表征选择对机器学习算法性能有巨大影响——图 1.1 用一个简单视觉例子说明了这一点:同一组数据用笛卡尔坐标无法用直线分开,换成极坐标后任务变得简单。许多 AI 任务可以通过为该任务设计合适的特征集,再交给一个简单的机器学习算法完成。例如说话人识别中,声道长度的估计是有用的特征,可以区分说话人的性别与年龄。但对很多任务,难以事先知道应提取什么特征——比如从照片中检测汽车:车轮虽是强特征,却难以用像素值精确描述(阴影、阳光、车前盖遮挡等都会改变车轮的像素形态)。

解决方案是让机器学习算法不仅学习从表征到输出的映射,还学习表征本身。这就是表征学习(representation learning)。习得的表征通常优于手工设计的表征,并能让人工智能系统以最小的人为干预快速适应新任务——简单任务的特征集可在数分钟内发现,复杂任务也只需数小时到数月,而手工设计可能耗费整个研究社区数十年的精力。表征学习的典型例子是自编码器(autoencoder):一个编码器把输入数据转换为不同的表征,一个解码器把新表征还原为原始形式;自编码器训练时既要尽可能多地保留经编解码后的信息,又要让新表征具有各种良好的性质。不同的自编码器变体追求不同的性质。

设计特征或学习特征的算法时,通常的目标是分离出能解释观测数据的"变化因子"(factors of variation)。"因子"指独立的影响源,通常不通过乘法组合;它们可能无法直接观测,要么作为物理世界中影响可观测量的事物或力量,要么作为人类头脑中提供有用简化解释或推断性原因的构建,可被视为帮助我们理解数据丰富变异性的概念或抽象。分析一段语音录音时,变化因子包括说话者的年龄、性别、口音与所说词语;分析一张汽车图像时,变化因子包括汽车的位置、颜色、光照的角度与亮度。许多真实 AI 应用的一大困难是,许多变化因子会影响我们能观测到的每一份数据——例如红色汽车在夜间的像素值可能接近黑色;汽车轮廓的形状依赖于视角;多数应用要求我们把这些变化因子解耦,并丢弃不关心的部分。然而,从原始数据中提取这种高层抽象特征本身极难——许多变化因子(如说话者的口音)需要近乎人类水平的复杂理解才能识别。

深度学习通过引入用其他更简单表征表达的表征来解决表征学习的这一核心难题。它让计算机能用简单概念搭建复杂概念。图 1.2 展示了一个深度学习系统如何通过组合更简单的概念(如角点和轮廓)来表示"一张人的图像"这一概念,而这些角点与轮廓又由边定义。深度学习模型的典型代表是前馈深度网络或多层感知机(MLP):一个把输入值集合映射到输出值的数学函数,由许多更简单的函数复合而成;每次应用一个不同的数学函数都可以视为对输入的一种新表征。

作者还给出第二种视角:深度允许计算机学习一个多步计算机程序。表征的每一层都可以视为计算机并行执行另一组指令后的内存状态。网络越深,能顺序执行的指令就越多;后续指令可引用前面指令的结果,赋予模型很大的能力。按照这种视角,一层激活中的信息并不必然编码解释输入的变化因子,表征还存储帮助模型组织处理过程的状态信息——这可类比传统计算机程序中的计数器或指针,与输入内容无直接关系,却帮助模型组织自身的处理过程。

测量模型深度有两条主要路径。第一条基于评估模型架构所需顺序执行的指令数——即给定输入计算每个输出所需流图的最长路径长度。如同同一段计算机程序用不同语言写长度不同,同一函数在允许不同的基本操作时流图深度也不同。图 1.3 演示了这种选择如何对同一架构给出两种不同的深度度量。第二条路径用于深度概率模型,认为模型深度不在于计算图的深度,而在于描述概念之间关系的图的深度;这时计算每种概念表征所需计算的流图可能比概念图深得多,因为简单概念的表示可以利用复杂概念的信息来细化——例如 AI 系统看到一张一只眼在阴影中的人脸图像时最初可能只看到一只眼睛,但检测到人脸存在后可以推断另一只眼大概也存在。此时概念图只有两层(眼层与人脸层),但计算图包含 2n 层(如果对每个概念进行了 n 次细化)。

由于这两个视角(计算图深度 vs 概率建模图深度)中哪个更相关并不总是清晰,加之不同的人选择不同的最小基本元素集合来构造图,故不存在一个架构深度的唯一正确值,正如不存在计算机程序长度的唯一正确值一样。对于一个模型需要多深才算"深",也无共识。但深度学习可以稳妥地视为研究比传统机器学习涉及更多复合(无论是学到的函数还是学到的概念)的模型的学科。

作者以总结收束:本书的主题深度学习是一种 AI 方法,具体而言是一种机器学习技术,使计算机系统能通过经验与数据改善。在作者看来,机器学习是构建能在复杂真实世界环境中运作的 AI 系统的唯一可行路径。深度学习是机器学习的一种,通过把世界表示为嵌套的概念层级(每个概念用更简单的概念定义,更抽象的表征由不那么抽象的表征计算得来)而获得强大能力与灵活性。图 1.4 展示了这些 AI 学科之间的关系;图 1.5 给出高层示意图。

1.1 本书的读者对象(Who Should Read This Book?)

作者为本书设定了两个主要目标读者群体。第一个群体是学习机器学习的大学生(包括本科生与研究生),无论他们是否即将开启深度学习与人工智能研究的职业生涯。第二个群体是不具备机器学习或统计学背景、但希望快速入门并在自身产品或平台中使用深度学习的软件工程师。深度学习已经在计算机视觉、语音与音频处理、自然语言处理、机器人、生物信息学与化学、视频游戏、搜索引擎、在线广告与金融等多个软件领域证明其有用。

本书被组织为三个部分以适应不同读者:第一部分介绍基本的数学工具与机器学习概念;第二部分描述那些基本上已成熟、可视为已解决技术的深度学习算法;第三部分描述更具探索性、被普遍认为对未来深度学习研究非常重要的想法。读者可以根据自身兴趣与背景自由跳过不相关部分——熟悉线性代数、概率与基本机器学习概念的读者可以跳过第一部分;只想实现一个能工作的系统的读者读到第二部分即可。为了帮助选择阅读章节,图 1.6 给出了本书的高层组织结构流程图。所有读者都被假定具备计算机科学背景——熟悉编程,对计算性能问题、复杂度理论、入门级微积分和图论的部分术语有基本了解。

作者认为,理解深度学习最简单的方式是给一点历史背景。本节不打算提供深度学习的详尽历史,而是识别几个关键趋势:

  • 深度学习有着悠久而丰富的发展史,期间有过许多名称,反映了不同的哲学观点,并且其流行程度此起彼伏。
  • 随着可用训练数据量的增加,深度学习变得愈发有用。
  • 随着深度学习的计算机基础设施(硬件与软件)的改善,深度学习模型的规模也在增长。
  • 深度学习随着时间推移,以越来越高的精度解决了越来越复杂的应用。

1.2.1 神经网络的多重命名与命运变迁(The Many Names and Changing Fortunes of Neural Networks)

作者预期许多读者把深度学习视为令人兴奋的新技术,并对一本关于新兴领域的书中出现"历史"二字感到惊讶。事实上,深度学习可追溯到 1940 年代。它之所以看似崭新,是因为在当前流行之前的若干年里相对不受关注,并且有过许多不同名字,只是最近才被叫作"深度学习"。这个领域被多次重新命名,反映了不同研究者与不同视角的影响。

全面的深度学习史超出了本书的范围,但一些基本背景有助于理解。广义上讲,深度学习经历了三波发展浪潮:1940–1960 年代被称为控制论(cybernetics)的深度学习;1980–1990 年代被称为联结主义(connectionism)的深度学习;以及始于 2006 年的、被冠以"深度学习"之名的当前复兴。图 1.7 对此做了量化展示。

我们今天所认知的一些最早的学习算法,本意是作为生物学习的计算模型——即大脑中学习发生(或可能发生)的方式的模型。因此,深度学习曾用过的名字之一是人工神经网络(artificial neural networks, ANNs)。对应的视角把这些模型视为受生物大脑(无论人脑还是其他动物的大脑)启发的工程系统。虽然机器学习所用的神经网络有时也被用来理解大脑功能(Hinton and Shallice, 1991),但它们通常并不被设计为生物功能的现实模型。深度学习的神经视角由两个主要观点驱动:其一是,大脑为"智能行为是可能的"提供了例证,反向工程大脑的计算原理并复制其功能是一条概念上直截了当的构建智能之路;其二是,深入理解大脑与人类智能背后的原理本身就是极为有趣的,因此即便不考虑工程应用,能揭示这些基础科学问题的机器学习模型也自有价值。

现代术语"深度学习"超越了神经科学的视角。它诉诸更一般的"多层复合"学习原则,可以应用于不一定受神经启发的机器学习框架。

现代深度学习的最早前身是受神经科学视角启发的简单线性模型。这些模型接受 n 个输入值 x1, …, xn 并把它们与一个输出 y 关联:学习一组权重 w1, …, wn 后计算输出 f(x, w) = x1w1 + · · · + xnwn。神经网络研究的第一波被称为控制论,如图 1.7 所示。

McCulloch-Pitts 神经元(McCulloch and Pitts, 1943)是早期的大脑功能模型。这个线性模型通过检验 f(x, w) 是正还是负来识别两种不同的输入类别。当然,要使模型符合类别的预期定义,权重必须正确设定——这些权重可以由人类操作员设定。1950 年代,感知机(Rosenblatt, 1958, 1962)成为第一个能从各类输入样本中学习类别权重的模型。与之几乎同时的自适应线性元件(ADALINE)则直接返回 f(x) 本身以预测一个实数(Widrow and Hoff, 1960),同样能从数据中学习预测这些数字。

这些简单学习算法深刻影响了现代机器学习的格局。用于自适应 ADALINE 权重的训练算法是随机梯度下降(stochastic gradient descent)算法的一个特例。略有修改的随机梯度下降算法至今仍是深度学习模型的主导训练算法。

基于感知机和 ADALINE 所用 f(x, w) 的模型被称为线性模型。这些模型至今仍是最广泛使用的机器学习模型之一,尽管在许多情况下它们的训练方式与原始模型不同。

线性模型有许多局限。最著名的是它们无法学习 XOR 函数——其中 f([0,1], w) = 1、f([1,0], w) = 1,但 f([1,1], w) = 0、f([0,0], w) = 0。观察到这些缺陷的批评者引发了对生物启发学习的整体反弹(Minsky and Papert, 1969)。这是神经网络流行度的第一次重大下挫。

今天,神经科学被视为深度学习研究者的重要灵感来源,但已不再是该领域的主导指引。当前神经科学在深度学习中地位下降的主要原因是:我们对大脑的了解不足以把它当作指引。要想深入理解大脑实际使用的算法,至少需要能够同时监测数千个相互连接的神经元的活动。我们做不到这一点,因此即使是大脑最简单、研究最充分的部分,我们也还远远没有理解(Olshausen and Field, 2005)。

神经科学给了我们一个理由相信:一个深度学习算法可以解决许多不同的任务。神经科学家发现,雪貂若大脑被重连使视觉信号传入听觉处理区,便能学会用听觉处理区"看"(Von Melchner et al., 2000)。这暗示哺乳动物大脑可能使用单一算法解决大脑解决的大部分不同任务。在此假设之前,机器学习研究较为分散——不同社区分别研究自然语言处理、视觉、运动规划与语音识别;今天这些应用社区仍然分开,但深度学习研究组同时研究这些应用领域中的许多甚至全部已很常见。

我们能够从神经科学提取一些粗略的指引。"让许多计算单元通过彼此交互才变得智能"这一基本思路便受大脑启发。神经认知机(Neocognitron, Fukushima, 1980)引入了一种受哺乳动物视觉系统结构启发的强大图像处理模型架构,后来成为现代卷积网络的基础(LeCun et al., 1998b),详见第 9.10 节。如今大多数神经网络基于一种叫作修正线性单元(rectified linear unit)的模型神经元。原始的 Cognitron(Fukushima, 1975)引入了受大脑功能知识启发而设计的更复杂版本;简化后的现代版本综合了多种视角——Nair and Hinton(2010)和 Glorot et al.(2011a)将神经科学列为影响来源,Jarrett et al.(2009)则列出更偏工程的来源。虽然神经科学是重要灵感来源,但不必视为僵硬的指引。我们知道真实神经元计算的函数与现代修正线性单元大相径庭,但更大的神经真实性尚未带来机器学习性能的提升。此外,虽然神经科学已成功启发了几种神经网络架构,但对生物学习的了解尚不足以让神经科学为我们用于训练这些架构的学习算法提供很多指导。

媒体常强调深度学习与大脑的相似性。虽然深度学习研究者确实比其他机器学习领域(如核方法或贝叶斯统计)的研究者更可能援引大脑的影响,但不应把深度学习视为模拟大脑的尝试。现代深度学习的灵感来源众多,尤其包括应用数学基础——线性代数、概率、信息论与数值优化。一些深度学习研究者把神经科学列为重要灵感来源,另一些则完全不在乎神经科学。

值得注意的是,从算法层面理解大脑如何工作的努力依然活跃。这项工作主要被称为"计算神经科学"(computational neuroscience),是与深度学习分开的一个研究领域。研究者在两个领域间互相流动很常见。深度学习领域主要关心如何构建能成功完成需要智能的任务的计算机系统,而计算神经科学主要关心构建更准确的大脑实际工作方式的模型。

1980 年代,神经网络研究的第二波在很大程度上通过一场被称为联结主义(connectionism)或并行分布式处理(parallel distributed processing)的运动而兴起(Rumelhart et al., 1986c; McClelland et al., 1995)。联结主义出现在认知科学的语境中。认知科学是结合多个分析层次理解心智的跨学科方法。1980 年代早期,多数认知科学家研究符号推理模型。尽管符号模型流行,却难以解释大脑如何实际用神经元实现它们。联结主义者开始研究那些确实可以植根于神经实现中的认知模型(Touretzky and Minton, 1985),并复兴了可追溯到心理学家 Donald Hebb 在 1940 年代工作的许多思想(Hebb, 1949)。

联结主义的核心思想是:大量简单计算单元联网后可以实现智能行为。这一洞见同样适用于生物神经系统中的神经元与计算模型中的隐藏单元。

1980 年代的联结主义运动中浮现了几个对今天深度学习仍至关重要的关键概念。

第一个是分布式表征(distributed representation, Hinton et al., 1986)——系统的每个输入应由许多特征表示,每个特征应参与许多可能输入的表示。举例:假设一个视觉系统能识别卡车、汽车与鸟,且这些物体各有红、绿、蓝三色。一种表征输入的方式是为九种可能组合(红色卡车、红色汽车、红色鸟、绿色卡车……)各设一个独立神经元或隐藏单元——这需要九个不同神经元,每个神经元都必须独立学习颜色与物体身份两个概念。改进方式是使用分布式表征:用三个神经元描述颜色、三个神经元描述物体身份,只需总共六个神经元而非九个;描述"红色"的神经元能从汽车、卡车、鸟的图像中学习红色,而不仅从某一种物体类别的图像中学习。分布式表征的概念是本书的核心,将在第 15 章详细讨论。

联结主义运动的另一大成就,是成功使用反向传播训练带内部表征的深度神经网络并使反向传播算法广为流行(Rumelhart et al., 1986a; LeCun, 1987)。该算法的流行度起起伏伏,但截至撰写本书时仍是训练深度模型的主导方法。

1990 年代,研究者在用神经网络建模序列方面取得重要进展。Hochreiter(1991)和 Bengio et al.(1994)识别了建模长序列的一些基本数学困难,详见第 10.7 节。Hochreiter and Schmidhuber(1997)引入了长短期记忆(long short-term memory, LSTM)网络以解决其中部分困难。今天 LSTM 广泛用于许多序列建模任务,包括 Google 的许多自然语言处理任务。

神经网络研究的第二波持续到 1990 年代中期。基于神经网络和其他 AI 技术的风险投资开始做出不切实际的雄心勃勃的承诺;当 AI 研究未能满足这些不合理预期时,投资者感到失望。同时,其他机器学习领域取得进展——核方法(Boser et al., 1992; Cortes and Vapnik, 1995; Schölkopf et al., 1999)和图模型(Jordan, 1998)在许多重要任务上都取得了良好效果。这两个因素导致了神经网络流行度的下降,一直持续到 2007 年。

在此期间,神经网络在某些任务上仍不断取得令人瞩目的性能(LeCun et al., 1998b; Bengio et al., 2001)。加拿大高级研究所(CIFAR)通过其神经计算与自适应感知(NCAP)研究计划帮助神经网络研究延续。该项目联合了多伦多大学 Geoffrey Hinton、蒙特利尔大学 Yoshua Bengio 与纽约大学 Yann LeCun 领导的机器学习研究组。CIFAR NCAP 研究计划具有跨学科性质,还包括神经科学家与人/计算机视觉专家。

在那个时期,深度网络被普遍认为极难训练。我们现在知道,自 1980 年代以来就存在的算法其实工作得相当好,但这一点在 2006 年前后并不明显。问题或许仅在于这些算法在当时可用的硬件上计算代价过高,难以进行大量实验。

神经网络研究的第三波始于 2006 年的一项突破。Geoffrey Hinton 展示了一种称为深度信念网络的神经网络可通过一种称为贪心逐层预训练(greedy layer-wise pre-training)的策略高效训练(Hinton et al., 2006),详见第 15.1 节。其他 CIFAR 关联的研究组迅速展示了同一策略可用于训练许多其他种类的深度网络(Bengio et al., 2007; Ranzato et al., 2007a),并系统地帮助改善了测试样本上的泛化性能。这波神经网络研究推广了"深度学习"一词的使用,以强调研究者们现在能够训练比以往更深的神经网络,并把注意力集中在深度的理论重要性上(Bengio and LeCun, 2007; Delalleau and Bengio, 2011; Pascanu et al., 2014a; Montufar et al., 2014)。此时深度神经网络在性能上开始超越基于其他机器学习技术以及手工设计功能的竞争 AI 系统。神经网络的第三波流行持续到本书撰写时,尽管深度学习研究的焦点在这波内部已发生巨大变化——第三波起初聚焦于新的无监督学习技术与深度模型从小数据集良好泛化的能力,而今天则有更多兴趣投向更古老的监督学习算法和深度模型利用大规模标注数据集的能力。

1.2.2 数据集规模不断增长(Increasing Dataset Sizes)

作者提出一个疑问:既然 1950 年代就进行了最早的人工神经网络实验,为何深度学习直到最近才被公认为关键技术?深度学习自 1990 年代以来就已在商业应用中取得成功,但常被视为某种"艺术"而非技术,且被认为是只有专家才能使用的东西,直到近期才改观。诚然,要让深度学习算法取得良好性能确实需要一些技巧。幸运的是,所需的技巧量随着训练数据量的增加而减少。今天在复杂任务上达到人类水平的学习算法,与 1980 年代还在为玩具问题挣扎的算法几乎相同,只是用这些算法训练的模型经历了若干简化非常深架构训练的改动。最重要的新进展是:今天我们能为这些算法提供成功所需的资源。图 1.8 显示基准数据集的规模随时间显著增长。这一趋势由社会的日益数字化驱动——随着越来越多的活动在计算机上进行,我们的所作所为越来越多地被记录下来;计算机日益互联互通,把这些记录集中并整理成适合机器学习应用的数据集变得更容易。"大数据"时代让机器学习容易得多,因为统计估计的关键负担——只观察到少量数据后仍能良好泛化到新数据——已被大大减轻。截至 2016 年的一条粗略经验法则:监督式深度学习算法在每个类别约 5,000 个标注样本时通常能取得可接受的性能;当训练数据集至少包含 1,000 万个标注样本时,模型能匹敌或超越人类水平。在比这更小的数据集上成功工作是重要的研究方向,尤其关注如何利用大量无标注样本——通过无监督或半监督学习。

1.2.3 模型规模不断增长(Increasing Model Sizes)

神经网络今天之所以大获成功、而自 1980 年代以来只享有相对有限的成就,另一个关键原因是我们今天具备运行大得多的模型的计算资源。联结主义的主要洞见之一是:动物许多神经元一起工作时变得智能;单个神经元或少量神经元并无特别用处。

生物神经元的连接密度并不特别高。如图 1.10 所示,我们的机器学习模型几十年来每个神经元的连接数一直与哺乳动物大脑处于同一数量级以内。就神经元总数而言,神经网络直到最近都异常小,如图 1.11 所示。自从引入隐藏单元以来,人工神经网络的规模大约每 2.4 年翻一番。这一增长由更快的计算机、更大的内存以及更大的数据集的可用性所驱动。更大的网络能在更复杂的任务上取得更高的精度。这一趋势预计将持续数十年。除非新技术允许更快地扩展,否则人工神经网络至少要到 2050 年代才能达到与人脑相同的神经元数量。生物神经元可能比当前的人工神经元表示更复杂的函数,因此生物神经网络可能比该图所示的还要大。

回顾历史,神经元数量少于水蛭的神经网络无法解决复杂的人工智能问题其实并不奇怪。即使是今天的网络——从计算机系统角度看已相当庞大——仍小于像青蛙这种相对低等脊椎动物的神经系统。

模型规模随时间的增长——得益于更快 CPU 的可用性、通用 GPU 的出现(详见第 12.1.2 节)、更快的网络互联以及更好的分布式计算软件基础设施——是深度学习史上最重要的趋势之一。这一趋势普遍预计将在未来持续。

1.2.4 精度、复杂度与现实世界影响不断提升(Increasing Accuracy, Complexity and Real-World Impact)

自 1980 年代以来,深度学习持续提升其提供准确识别或预测的能力。此外,深度学习已被持续成功地应用于越来越广泛的应用集合。最早的深度模型被用于识别裁剪紧密、极小图像中的单个物体(Rumelhart et al., 1986a)。此后神经网络能处理的图像尺寸逐渐增大。现代物体识别网络能处理丰富的高分辨率照片,不要求照片在待识别物体附近裁剪(Krizhevsky et al., 2012)。同样地,最早的网络只能识别两种物体(在某些情况下是有无某一种物体),而现代网络通常能识别至少 1,000 种不同类别的物体。物体识别领域规模最大的比赛是每年举办的 ImageNet 大规模视觉识别挑战赛(ILSVRC)。深度学习飞速崛起中的一个戏剧性时刻是:一个卷积网络首次并以巨大优势赢得这场比赛,把当时最先进的前 5 错误率从 26.1% 降到 15.3%(Krizhevsky et al., 2012)——也就是说,卷积网络对每张图像产生一个可能类别的排名列表,对所有测试样本中除 15.3% 外的样本,正确类别都出现在该列表的前 5 项中。自那以后,这些比赛一直由深度卷积网络胜出,截至撰写本书时,深度学习的进展已把该比赛的前 5 错误率降至 3.6%,如图 1.12 所示。

深度学习也对语音识别产生了戏剧性影响。1990 年代语音识别的错误率持续改进,但约从 2000 年起陷入停滞。深度学习被引入语音识别后(Dahl et al., 2010; Deng et al., 2010b; Seide et al., 2011; Hinton et al., 2012a)带来了错误率的骤然下降,部分错误率被砍掉一半。第 12.3 节将进一步详细讨论这一历史。深度网络还在行人检测与图像分割方面取得了惊艳的成功(Sermanet et al., 2013; Farabet et al., 2013; Couprie et al., 2013),并在交通标志分类中达到超越人类的性能(Ciresan et al., 2012)。

随着深度网络规模与精度的提升,它们能解决的任务的复杂度也随之提升。Goodfellow et al.(2014d)展示了神经网络能学会输出从图像转录出的整个字符序列,而不仅是识别单个物体。此前人们普遍认为这种学习需要标注序列中的每个元素(Gülçehre and Bengio, 2013)。循环神经网络(如上文提到的 LSTM 序列模型)现在被用来建模序列到序列的关系,而非仅仅是固定输入的关系。这种序列到序列的学习似乎正处于变革另一个应用的临界点:机器翻译(Sutskever et al., 2014; Bahdanau et al., 2015)。

这一趋势已被推到其逻辑终点,引入了神经图灵机(neural Turing machines, Graves et al., 2014a)——它能学习从记忆单元读取并向记忆单元写入任意内容。这类神经网络能从期望行为的样例中学习简单的程序。例如,它们能从被打乱与排序的序列样例中学会对数字列表排序。这种自编程技术尚处早期,但未来原则上可应用于几乎任何任务。

深度学习的另一项登峰造极的成就是它被扩展到了强化学习领域。在强化学习的语境下,自主智能体必须通过试错来学习完成任务,不接受人类操作员的任何指导。DeepMind 展示了基于深度学习的强化学习系统能学会玩 Atari 视频游戏,并在许多任务上达到人类水平(Mnih et al., 2015)。深度学习也显著提升了机器人学中的强化学习性能(Finn et al., 2015)。

深度学习的许多应用盈利能力极强。如今许多顶级科技公司都在使用深度学习,包括 Google、Microsoft、Facebook、IBM、Baidu、Apple、Adobe、Netflix、NVIDIA 与 NEC。深度学习的进步也严重依赖于软件基础设施的进步。软件库如 Theano(Bergstra et al., 2010; Bastien et al., 2012)、PyLearn2(Goodfellow et al., 2013c)、Torch(Collobert et al., 2011b)、DistBelief(Dean et al., 2012)、Caffe(Jia, 2013)、MXNet(Chen et al., 2015)与 TensorFlow(Abadi et al., 2015)都支撑了重要的研究项目或商业产品。

深度学习也回馈了其他科学领域。现代用于物体识别的卷积网络为神经科学家研究视觉处理提供了一种模型(DiCarlo, 2013)。深度学习还提供了处理海量数据并做出有用预测的有用工具,已被成功用于预测分子间的相互作用以帮助制药公司设计新药(Dahl et al., 2014),搜索亚原子粒子(Baldi et al., 2014),以及自动解析用于构建人脑三维地图的显微镜图像(Knowles-Barley et al., 2014)。作者预期未来深度学习将出现在越来越多的科学领域。

作为本节总结:深度学习是一种在过去几十年间从我们对人脑、统计学与应用数学的了解中大量汲取灵感的机器学习方法。近年来由于更强大的计算机、更大的数据集与训练更深网络的技术,它的流行度与实用性都出现了巨大增长。未来的岁月充满进一步改进深度学习并将其带到新前沿的挑战与机会。

本章个人批注

本章作为整本书的导论,承担着"为什么深度学习值得学"与"深度学习是什么"的双重任务。从结构上看,作者的论证线索极其清晰:AI 历史动机 → 知识库失败 → 机器学习 → 表征问题 → 表征学习 → 深度学习 → 两条深度视角 → 历史脉络 → 数据/模型/精度三大趋势。我读完最深的印象是,作者反复回到"形式化难/直觉化易"这对对立——这是全书反复出现的主题。Cyc 故事的细节特别值得记住:Fred 刮脸时究竟还是不是"人",这是知识库范式的死结,恰恰成为机器学习范式的入场券。

个人比较感兴趣但作者并未展开的两点是:(1) 表征与算法的等价性——分布式表征部分提到颜色与物体身份可以独立编码,但作者没有强调"特征解耦"与"因子解耦"在数学上的联系;(2) 深度作为程序长度的视角(图 1.3)与神经科学视角的张力,作者承认两者"哪个更相关并不清晰",这种不确定性其实贯穿全书后续章节——比如 RNN 的"记忆"到底属于计算图深度还是状态信息,CNN 的层次到底是特征层级还是程序步骤。这是我后续阅读时想持续追踪的隐线。

读完 1.2 节的几条历史线,我对深度学习的"成功史"有了更冷静的视角:1980 年代的联结主义复兴几乎完全靠反向传播与分布式表征两条腿走路,1990 年代被核方法与图模型打退的十年里其实是 CIFAR NCAP 这种机构性资助保住了火种,2006 年的贪心逐层预训练其实是算力不足时的妥协方案——后来算力上来了,这些花活反而被端到端反向传播取代。这个"算力决定上限、数据决定下限"的双因素解释力很强,但作者没有点明"算法上的纯进步(如 ReLU、Dropout、BN)在历史叙事中其实是被低估的"。

与上下章的衔接(一段话)

作为全书第一章,本章同时承担两件事:把深度学习定位为 AI 中的一种特定范式(与知识库、经典机器学习、仅一层隐藏层的浅层模型并置),并给出理解后续章节必备的概念语汇——表征、隐藏层、深度(双重含义)、分布式表征、神经网络三波浪潮。第二章紧接本章"我们需要基本数学工具"的暗示,转入线性代数;第三章处理概率与信息论;第四章处理数值计算;第五章合上机器学习基础的概念框架,读者至此才有足够工具来读第二部分的现代深度学习实践(第六章深度前馈网络起)。换言之,第一章是动机与坐标系,之后四章是工具箱,再之后才是动手造轮子。