1.2深度学习的历史趋势
通过历史背景了解深度学习是最简单的方式。这里我们仅指出深度学习的几个关键趋势,而不是提供其详细的历史:
• 深度学习有着悠久而丰富的历史,但随着许多不同哲学观点的渐渐消逝,与之对应的名称渐渐尘封。
• 随着可用的训练数据量不断增加,深度学习变得更加有用。
• 随着时间的推移,针对深度学习的计算机软硬件基础设施有所改善,深度学习模型规模也随之增长。
• 随着时间的推移,深度学习已经解决日益复杂的应用,并且精度不断提高。
1.2.1神经网络的众多名称和历史变迁
事实上,深度学习的历史可以追溯到20世纪40年代。深度学习看似是一个全新的领域,只不过因为在目前流行的前几年它还是相对冷门的,同时也因为它被赋予了许多不同的名称(其中大部分已经不再使用),最近才成为众所周知的“深度学习”。这个领域已经更换了很多名称,它反映了不同的研究人员和不同观点的影响。
一般认为,迄今为止深度学习已经经历了3次发展浪潮:
20世纪40年代到60年代,深度学习的雏形出现在控制论(cybernetics)中;
20世纪80年代到90年代,深度学习表现为联结主义(connectionism);
直到2006年,才真正以深度学习之名复兴。
我们今天知道的一些最早的学习算法,旨在模拟生物学习的计算模型,即大脑怎样学习或为什么能学习的模型。其结果是深度学习以人工神经网络(artificial neural network, ANN)之名而淡去。
现代术语“深度学习”超越了目前机器学习模型的神经科学观点。它诉诸于学习多层次组合这一更普遍的原理,这一原理也可以应用于那些并非受神经科学启发的机器学习框架。
1.简单线性模型与神经科学的第一次浪潮
现代深度学习最早的前身,是从神经科学的角度出发的简单线性模型。这些模型设计为使用一组
20世纪40年代,McCulloch-Pitts神经元是脑功能的早期模型。该线性模型通过检验函数
20世纪50年代,感知机成为第一个能根据每个类别的输入样本来学习权重的模型。大约在同一时期,自适应线性单元(adaptive linear element, ADALINE)简单地返回函数
这些简单的学习算法大大影响了机器学习的现代景象。用于调节ADALINE权重的训练算法是被称为随机梯度下降(stochastic gradient descent)的一种特例。稍加改进后的随机梯度下降算法仍然是当今深度学习的主要训练算法。
基于感知机和ADALINE中使用的函数
线性模型有很多局限性。最著名的是,它们无法学习异或(XOR)函数,即
2.神经科学与深度学习独立发展
现在,神经科学被视为深度学习研究的一个重要灵感来源,但它已不再是该领域的主要指导。
如今神经科学在深度学习研究中的作用被削弱,主要原因是我们根本没有足够的关于大脑的信息来作为指导去使用它。要获得对被大脑实际使用算法的深刻理解,我们需要有能力同时监测(至少是)数千相连神经元的活动。我们不能够做到这一点,所以我们甚至连大脑最简单、最深入研究的部分都还远远没有理解。
前大多数神经网络是基于一个称为整流线性单元(rectified linear unit)的神经单元模型。原始认知机受我们关于大脑功能知识的启发,引入了一个更复杂的版本。
虽然神经科学是灵感的重要来源,但它不需要被视为刚性指导。我们知道,真实的神经元计算着与现代整流线性单元非常不同的函数,但更接近真实神经网络的系统并没有导致机器学习性能的提升。此外,虽然神经科学已经成功地启发了一些神经网络架构,但我们对用于神经科学的生物学习还没有足够多的了解,因此也就不能为训练这些架构用的学习算法提供太多的借鉴。
媒体报道经常强调深度学习与大脑的相似性。的确,深度学习研究者比其他机器学习领域(如核方法或贝叶斯统计)的研究者更可能地引用大脑作为影响,但是大家不应该认为深度学习在尝试模拟大脑。现代深度学习从许多领域获取灵感,特别是应用数学的基本内容,如线性代数、概率论、信息论和数值优化。尽管一些深度学习的研究人员引用神经科学作为灵感的重要来源,然而其他学者完全不关心神经科学。
值得注意的是,了解大脑是如何在算法层面上工作的尝试确实存在且发展良好。这项尝试主要被称为“计算神经科学”,并且是独立于深度学习的领域。研究人员在两个领域之间来回研究是很常见的。深度学习领域主要关注如何构建计算机系统,从而成功解决需要智能才能解决的任务,而计算神经科学领域主要关注构建大脑如何真实工作的、比较精确的模型。
3.联结主义与并行分布处理的第二次浪潮
20世纪80年代,神经网络研究的第二次浪潮在很大程度上是伴随一个被称为联结主义(connectionism)或并行分布处理(parallel distributed processing)潮流而出现的。
联结主义是在认知科学的背景下出现的。认知科学是理解思维的跨学科途径,即它融合多个不同的分析层次。20世纪80年代初期,大多数认知科学家研究符号推理模型。尽管这很流行,但符号模型很难解释大脑如何真正使用神经元实现推理功能。联结主义者开始研究真正基于神经系统实现的认知模型,其中很多复苏的想法可以追溯到心理学家Donald Hebb在20世纪40年代的工作。
联结主义的中心思想是,当网络将大量简单的计算单元连接在一起时可以实现智能行为。这种见解同样适用于生物神经系统中的神经元,因为它和计算模型中隐藏单元起着类似的作用。
在20世纪80年代的联结主义期间形成的几个关键概念在今天的深度学习中仍然是非常重要的:
其中一个概念是分布式表示(distributed representation)。其思想是:系统的每一个输入都应该由多个特征表示,并且每一个特征都应该参与到多个可能输入的表示。
联结主义潮流的另一个重要成就是反向传播在训练具有内部表示的深度神经网络中的成功使用以及反向传播算法的普及。
4.机器学习其他领域的进步与神经网络研究的维持
20世纪90年代,研究人员在使用神经网络进行序列建模的方面取得了重要进展。
Hochreiter(1991b)和Bengio et al.(1994b)指出了对长序列进行建模的一些根本性数学难题。Hochreiter和Schmidhuber(1997)引入长短期记忆(longshort-term memory, LSTM)网络来解决这些难题。如今,LSTM在许多序列建模任务中广泛应用,包括Google的许多自然语言处理任务。
神经网络研究的第二次浪潮一直持续到20世纪90年代中期。基于神经网络和其他AI技术的创业公司开始寻求投资,其做法野心勃勃但不切实际。当AI研究不能实现这些不合理的期望时,投资者感到失望。
同时,机器学习的其他领域取得了进步。比如,核方法和图模型都在很多重要任务上实现了很好的效果。这两个因素导致了神经网络热潮的第二次衰退,并一直持续到2007年。
在此期间,神经网络继续在某些任务上获得令人印象深刻的表现。加拿大高级研究所(CIFAR)通过其神经计算和自适应感知(NCAP)研究计划帮助维持神经网络研究。该计划联合了分别由Geoffrey Hinton、Yoshua Bengio和YannLeCun领导的多伦多大学、蒙特利尔大学和纽约大学的机器学习研究小组。这个多学科的CIFARNCAP研究计划还包括了神经科学家、人类和计算机视觉专家。
在那个时候,人们普遍认为深度网络是难以训练的。现在我们知道,20世纪80年代就存在的算法能工作得非常好,但是直到2006年前后都没有体现出来。这可能仅仅由于其计算代价太高,而以当时可用的硬件难以进行足够的实验。
5.深度信念网络与贪婪逐层预训练的第三次浪潮
神经网络研究的第三次浪潮始于2006年的突破。
Geoffrey Hinton表明名为“深度信念网络”的神经网络可以使用一种称为“贪婪逐层预训练”的策略来有效地训练;其他CIFAR附属研究小组很快表明,同样的策略可以被用来训练许多其他类型的深度网络,并能系统地帮助提高在测试样例上的泛化能力。
神经网络研究的这一次浪潮普及了“深度学习”这一术语,强调研究者现在有能力训练以前不可能训练的比较深的神经网络,并着力于深度的理论重要性上。
此时,深度神经网络已经优于与之竞争的基于其他机器学习技术以及手工设计功能的AI系统。在写这本书的时候,神经网络的第三次发展浪潮仍在继续,尽管深度学习的研究重点在这一段时间内发生了巨大变化。第三次浪潮已开始着眼于新的无监督学习技术和深度模型在小数据集的泛化能力,但目前更多的兴趣点仍是比较传统的监督学习算法和深度模型充分利用大型标注数据集的能力。
1.2.2与日俱增的数据量
人们可能想问,既然人工神经网络的第一个实验在20世纪50年代就完成了,但为什么深度学习直到最近才被认为是关键技术?自20世纪90年代以来,深度学习就已经成功用于商业应用,但通常被视为一种只有专家才可以使用的艺术而不是一种技术,这种观点一直持续到最近。
确实,要从一个深度学习算法获得良好的性能需要一些技巧。幸运的是,随着训练数据的增加,所需的技巧正在减少。目前在复杂的任务中达到人类水平的学习算法,与20世纪80年代努力解决玩具问题(toy problem)的学习算法几乎是一样的,尽管我们使用这些算法训练的模型经历了变革,即简化了极深架构的训练。最重要的新进展是,现在我们有了这些算法得以成功训练所需的资源。
如图展示了基准数据集的大小如何随着时间的推移而显著增加,这种趋势是由社会日益数字化驱动的。由于我们的活动越来越多地发生在计算机上,我们做什么也越来越多地被记录。由于计算机越来越多地联网在一起,这些记录变得更容易集中管理,并更容易将它们整理成适于机器学习应用的数据集。因为统计估计的主要负担(观察少量数据以在新数据上泛化)已经减轻,“大数据”时代使机器学习更加容易。
截至2016年,一个粗略的经验法则是,监督深度学习算法在每类给定约5000个标注样本情况下一般将达到可以接受的性能,当至少有1000万个标注样本的数据集用于训练时,它将达到或超过人类表现。此外,在更小的数据集上获得成功是一个重要的研究领域,为此我们应特别侧重于如何通过无监督或半监督学习充分利用大量的未标注样本。
“NIST”代表国家标准和技术研究所(National Institute of Standards and Technology),是最初收集这些数据的机构。“M”代表“修改的(Modified)”,为更容易地与机器学习算法一起使用,数据已经过预处理。MNIST数据集包括手写数字的扫描和相关标签(描述每个图像中包含0~9中哪个数字)。
这个简单的分类问题是深度学习研究中最简单和最广泛使用的测试之一。尽管现代技术很容易解决这个问题,它仍然很受欢迎。Geoffrey Hinton将其描述为“机器学习的果蝇”,这意味着机器学习研究人员可以在受控的实验室条件下研究他们的算法,就像生物学家经常研究果蝇一样。
1.2.3与日俱增的模型规模
20世纪80年代,神经网络只能取得相对较小的成功,而现在神经网络非常成功的另一个重要原因是我们现在拥有的计算资源可以运行更大的模型。联结主义的主要见解之一是,当动物的许多神经元一起工作时会变得聪明。单独神经元或小集合的神经元不是特别有用。
生物神经元不是特别稠密地连接在一起。如图所示,几十年来,我们的机器学习模型中每个神经元的连接数量已经与哺乳动物的大脑在同一数量级上。
最初,人工神经网络中神经元之间的连接数受限于硬件能力。而现在,神经元之间的连接数大多是出于设计考虑。一些人工神经网络中每个神经元的连接数与猫一样多,并且对于其他神经网络来说,每个神经元的连接数与较小哺乳动物(如小鼠)一样多,这种情况是非常普遍的。甚至人类大脑每个神经元的连接数也没有过高的数量。
1.自适应线性单元(Widrow and Hoff,1960);
2.神经认知机(Fukushima,1980);
3.GPU-加速卷积网络(Chellapilla et al.,2006);
4.深度玻尔兹曼机(Salakhutdinov and Hinton,2009a);
5.无监督卷积网络(Jarrettet al.,2009b);
6.GPU-加速多层感知机(Ciresan et al., 2010);
7.分布式自编码器(Le et al., 2012);
8.Multi-GPU卷积网络(Krizhevsky et al., 2012a);
9.COTS HPC无监督卷积网络(Coates et al., 2013);
10.GoogLeNet(Szegedy et al., 2014a)
现在看来,神经元数量比一个水蛭还少的神经网络不能解决复杂的人工智能问题,这是不足为奇的。即使现在的网络,从计算系统角度来看它可能相当大,但实际上它比相对原始的脊椎动物(如青蛙)的神经系统还要小。
由于更快的CPU、通用GPU的出现、更快的网络连接和更好的分布式计算的软件基础设施,模型规模随着时间的推移不断增加是深度学习历史中最重要的趋势之一。人们普遍预计这种趋势将很好地持续到未来。
1.2.4与日俱增的精度、复杂度和对现实世界的冲击
20世纪80年代以来,深度学习提供精确识别和预测的能力一直在提高。而且,深度学习持续成功地应用于越来越广泛的实际问题中。
最早的深度模型被用来识别裁剪紧凑且非常小的图像中的单个对象。此后,神经网络可以处理的图像尺寸逐渐增加。现代对象识别网络能处理丰富的高分辨率照片,并且不需要在被识别的对象附近进行裁剪。
类似地,最早的网络只能识别两种对象(或在某些情况下,单类对象的存在与否),而这些现代网络通常能够识别至少1000个不同类别的对象。
对象识别中最大的比赛是每年举行的ImageNet大型视觉识别挑战(ILSVRC)。深度学习迅速崛起的激动人心的一幕是卷积网络第一次大幅赢得这一挑战,它将最高水准的前5错误率从26.1%降到15.3%),这意味着该卷积网络针对每个图像的可能类别生成一个顺序列表,除了15.3%的测试样本,其他测试样本的正确类标都出现在此列表中的前5项里。此后,深度卷积网络连续地赢得这些比赛,截至写作本书时,深度学习的最新结果将这个比赛中的前5错误率降到了3.6%,如图所示。
深度学习也对语音识别产生了巨大影响。语音识别在20世纪90年代得到提高后,直到约2000年都停滞不前。深度学习的引入,使得语音识别错误率陡然下降,有些错误率甚至降低了一半。
深度网络在行人检测和图像分割中取得了引人注目的成功,并且在交通标志分类上取得了超越人类的表现。
在深度网络的规模和精度有所提高的同时,它们可以解决的任务也日益复杂。Goodfellow etal.(2014d)表明,神经网络可以学习输出描述图像的整个字符序列,而不是仅仅识别单个对象。此前,人们普遍认为,这种学习需要对序列中的单个元素进行标注。循环神经网络,如之前提到的LSTM序列模型,现在用于对序列和其他序列之间的关系进行建模,而不是仅仅固定输入之间的关系。这种序列到序列的学习似乎引领着另一个应用的颠覆性发展,即机器翻译。
这种复杂性日益增加的趋势已将其推向逻辑结论,即神经图灵机的引入,它能学习读取存储单元和向存储单元写入任意内容。这样的神经网络可以从期望行为的样本中学习简单的程序。例如,从杂乱和排好序的样本中学习对一系列数进行排序。这种自我编程技术正处于起步阶段,但原则上未来可以适用于几乎所有的任务。
深度学习的另一个最大的成就是其在强化学习(reinforcement learning)领域的扩展。在强化学习中,一个自主的智能体必须在没有人类操作者指导的情况下,通过试错来学习执行任务。DeepMind表明,基于深度学习的强化学习系统能够学会玩Atari视频游戏,并在多种任务中可与人类匹敌。深度学习也显著改善了机器人强化学习的性能。
总之,深度学习是机器学习的一种方法。在过去几十年的发展中,它大量借鉴了我们关于人脑、统计学和应用数学的知识。近年来,得益于更强大的计算机、更大的数据集和能够训练更深网络的技术,深度学习的普及性和实用性都有了极大的发展。未来几年,深度学习更是充满了进一步提高并应用到新领域的挑战和机遇。