们激动地预测着人工智能的未来。马文
•
闵斯基是符号主义人工智能方法最有名的先驱和支持
者之一,他在
1967
年宣称:“在一代人的时间内……将基本解决创造‘人工智能’的问题。”三
年后的
1970
年,他做出了更为精确的定量预测:“在三到八年的时间里,我们将拥有一台具有
人类平均智能的机器。”在
2016
年,这一目标看起来仍然十分遥远,遥远到我们无法预测需要
多长时间才能实现。但在
20
世纪
60
年代和
70
年代初,一些专家却相信这一目标近在咫尺(正
如今天许多人所认为的那样)。几年之后,由于这些过高的期望未能实现,研究人员和政府资金
均转向其他领域,这标志着第一次
人工智能冬天
(
AI winter
)的开始(这一说法来自“核冬天”,
因为当时是冷战高峰之后不久)。
这并不是人工智能的最后一个冬天。
20
世纪
80
年代,一种新的符号主义人工智能——
专
家系统
(
expert system
)——开始在大公司中受到追捧。最初的几个成功案例引发了一轮投资热
潮,进而全球企业都开始设立人工智能部门来开发专家系统。
1985
年前后,各家公司每年在这
项技术上的花费超过
10
亿美元。但到了
20
世纪
90
年代初,这些系统的维护费用变得很高,难
以扩展,并且应用范围有限,人们逐渐对其失去兴趣。于是开始了第二次人工智能冬天。
我们可能正在见证人工智能炒作与让人失望的第三次循环,而且我们仍处于极度乐观的阶
段。最好的做法是降低我们的短期期望,确保对这一技术领域不太了解的人能够清楚地知道深
度学习能做什么、不能做什么。
1.1.8
人工智能的未来
虽然我们对人工智能的短期期望可能不切实际,但长远来看前景是光明的。我们才刚刚开
始将深度学习应用于许多重要的问题,从医疗诊断到数字助手,在这些问题上深度学习都发挥
了变革性作用。过去五年里,人工智能研究一直在以惊人的速度发展,这在很大程度上是由于
人工智能短短的历史中前所未见的资金投入,但到目前为止,这些进展却很少能够转化为改变
世界的产品和流程。深度学习的大多数研究成果尚未得到应用,至少尚未应用到它在各行各业
中能够解决的所有问题上。你的医生和会计师都还没有使用人工智能。你在日常生活中可能也
不会用到人工智能。当然,你可以向智能手机提出简单的问题并得到合理的回答,也可以在亚
马逊网站上得到相当有用的产品推荐,还可以在谷歌相册(
Google Photos
)网站搜索“生日”
并立刻找到上个月你女儿生日聚会的照片。与过去相比,这些技术已大不相同,但这些工具仍
然只是日常生活的陪衬。人工智能仍需进一步转变为我们工作、思考和生活的核心。
眼下,我们似乎很难相信人工智能会对世界产生巨大影响,因为它还没有被广泛地部署应
用——正如
1995
年,我们也难以相信互联网在未来会产生的影响。当时,大多数人都没有认识
到互联网与他们的关系,以及互联网将如何改变他们的生活。今天的深度学习和人工智能也是
如此。但不要怀疑:人工智能即将到来。在不远的未来,人工智能将会成为你的助手,甚至成
为你的朋友。它会回答你的问题,帮助你教育孩子,并关注你的健康。它还会将生活用品送到
你家门口,并开车将你从
A
地送到
B
地。它还会是你与日益复杂的、信息密集的世界之间的接口。
更为重要的是,人工智能将会帮助科学家在所有科学领域(从基因学到数学)取得突破性进展,
从而帮助人类整体向前发展。
在这个过程中,我们可能会经历一些挫折,也可能会遇到新的人工智能冬天,正如互联网
行业那样,在
1998
—
1999
年被过度炒作,进而在
21
世纪初遭遇破产,并导致投资停止。但我
们最终会实现上述目标。人工智能最终将应用到我们社会和日常生活的几乎所有方面,正如今
天的互联网一样。
不要相信短期的炒作,但一定要相信长期的愿景。人工智能可能需要一段时间才能充分发
挥其潜力。这一潜力的范围大到难以想象,但人工智能终将到来,它将以一种奇妙的方式改变
我们的世界。
1.2
深度学习之前:机器学习简史
深度学习已经得到了人工智能历史上前所未有的公众关注度和产业投资,但这并不是机器
学习的第一次成功。可以这样说,当前工业界所使用的绝大部分机器学习算法都不是深度学习
算法。深度学习不一定总是解决问题的正确工具:有时没有足够的数据,深度学习不适用;有
时用其他算法可以更好地解决问题。如果你第一次接触的机器学习就是深度学习,那你可能会
发现手中握着一把深度学习“锤子”,而所有机器学习问题看起来都像是“钉子”。为了避免陷
入这个误区,唯一的方法就是熟悉其他机器学习方法并在适当的时候进行实践。
关于经典机器学习方法的详细讨论已经超出了本书范围,但我们将简要回顾这些方法,并
介绍这些方法的历史背景。这样我们可以将深度学习放入机器学习的大背景中,并更好地理解
深度学习的起源以及它为什么如此重要。
1.2.1
概率建模
概率建模(probabilistic modeling)是统计学原理在数据分析中的应用。它是最早的机器学
习形式之一,至今仍在广泛使用。其中最有名的算法之一就是朴素贝叶斯算法。
朴素贝叶斯是一类基于应用贝叶斯定理的机器学习分类器,它假设输入数据的特征都是独
立的。这是一个很强的假设,或者说“朴素的”假设,其名称正来源于此。这种数据分析方法
比计算机出现得还要早,在其第一次被计算机实现(很可能追溯到
20
世纪
50
年代)的几十年
前就已经靠人工计算来应用了。贝叶斯定理和统计学基础可以追溯到
18
世纪,你学会了这两点
就可以开始使用朴素贝叶斯分类器了。
另一个密切相关的模型是 logistic 回归
(
logistic regression
,简称
logreg
),它有时被认为是
现代机器学习的“
hello world
”。不要被它的名称所误导——
logreg 是一种分类算法,而不是回
归算法。与朴素贝叶斯类似,
logreg
的出现也比计算机早很长时间,但由于它既简单又通用,
至今仍然很有用。面对一个数据集,数据科学家通常会首先尝试使用这个算法,以便初步熟悉
手头的分类任务。
1.2.2
早期神经网络
神经网络早期的迭代方法已经完全被本章所介绍的现代方法所取代,但仍有助于我们了解
深度学习的起源。虽然人们早在
20
世纪
50
年代就将神经网络作为玩具项目,并对其核心思想
进行研究,但这一方法在数十年后才被人们所使用。在很长一段时间内,一直没有训练大型神
经网络的有效方法。这一点在
20
世纪
80
年代中期发生了变化,当时很多人都独立地重新发现
了反向传播算法——一种利用梯度下降优化来训练一系列参数化运算链的方法(本书后面将给
出这些概念的具体定义),并开始将其应用于神经网络。
贝尔实验室于
1989
年第一次成功实现了神经网络的实践应用,当时
Yann LeCun
将卷积
神经网络的早期思想与反向传播算法相结合,并将其应用于手写数字分类问题,由此得到名为
LeNet
的网络,在
20
世纪
90
年代被美国邮政署采用,用于自动读取信封上的邮政编码。
1.2.3
核方法
上节所述神经网络取得了第一次成功,并在
20
世纪
90
年代开始在研究人员中受到一定的
重视,但一种新的机器学习方法在这时声名鹊起,很快就使人们将神经网络抛诸脑后。这种方
法就是
核方法
(
kernel method
)。核方法是一组分类算法,其中最有名的就是
支持向量机
(
SVM
,
support vector machine
)。虽然
Vladimir Vapnik
和
Alexey Chervonenkis
早在
1963
年就发表了较
早版本的线性公式
a
,但
SVM
的现代公式由
Vladimir Vapnik
和
Corinna Cortes
于
20
世纪
90
年代
初在贝尔实验室提出,并发表于
1995
年
b
。
SVM
的目标是通过在属于两个不同类别的两组数据点之间找到良好
决策边界
(
decision
boundary
,见图
1-10
)来解决分类问题。决策边界可以看作一条直线或一个平面,将训练数据
划分为两块空间,分别对应于两个类别。对于新数据点的分类,你只需判断它位于决策边界的
哪一侧。
SVM
通过两步来寻找决策边界。
(1)
将数据映射到一个新的高维表示,这时决策边界可以用一个超平面来表示(如果数据像
图
1-10
那样是二维的,那么超平面就是一条直线)。
(2)
尽量让超平面与每个类别最近的数据点之间的距离最大化,从而计算出良好决策边界(分
割超平面),这一步叫作
间隔最大化
(
maximizing the margin
)。这样决策边界可以很好
地推广到训练数据集之外的新样本。
将数据映射到高维表示从而使分类问题简化,这一技巧可能听起来很不错,但在实践中通
常是难以计算的。这时就需要用到
核技巧
(
kernel trick
,核方法正是因这一核心思想而得名)。
其基本思想是:要想在新的表示空间中找到良好的决策超平面,你不需要在新空间中直接计算
点的坐标,只需要在新空间中计算点对之间的距离,而利用核函数(kernel function)可以高效
地完成这种计算。核函数是一个在计算上能够实现的操作,将原始空间中的任意两点映射为这
两点在目标表示空间中的距离,完全避免了对新表示进行直接计算。核函数通常是人为选择的,
而不是从数据中学到的——对于 SVM 来说,只有分割超平面是通过学习得到的。
SVM
刚刚出现时,在简单的分类问题上表现出了最好的性能。当时只有少数机器学习方法
得到大量的理论支持,并且适合用于严肃的数学分析,因而非常易于理解和解释,
SVM
就是其
中之一。由于
SVM
具有这些有用的性质,很长一段时间里它在实践中非常流行。
但是,
SVM
很难扩展到大型数据集,并且在图像分类等感知问题上的效果也不好。
SVM
是一种比较浅层的方法,因此要想将其应用于感知问题,首先需要手动提取出有用的表示(这
叫作
特征工程
),这一步骤很难,而且不稳定。
1.2.4
决策树、随机森林与梯度提升机
决策树
(
decision tree
)是类似于流程图的结构,可以对输入数据点进行分类或根据给定输
入来预测输出值(见图
1-11
)。决策树的可视化和解释都很简单。在
21
世纪前十年,从数据中
学习得到的决策树开始引起研究人员的广泛关注。到了
2010
年,决策树经常比核方法更受欢迎。
特别是
随机森林
(
random forest
)算法,它引入了一种健壮且实用的决策树学习方法,即
首先构建许多决策树,然后将它们的输出集成在一起。随机森林适用于各种各样的问题——
对于任何浅层的机器学习任务来说,它几乎总是第二好的算法。广受欢迎的机器学习竞赛网站
Kaggle
在
2010
年上线后,随机森林迅速成为平台上人们的最爱,直到
2014
年才被梯度提升机
所取代。与随机森林类似,
梯度提升机
(
gradient boosting machine)也是将弱预测模型(通常
是决策树)集成的机器学习技术。它使用了
梯度提升方法
,通过迭代地训练新模型来专门解决
之前模型的弱点,从而改进任何机器学习模型的效果。将梯度提升技术应用于决策树时,得到
的模型与随机森林具有相似的性质,但在绝大多数情况下效果都比随机森林要好。它可能是目
前处理非感知数据最好的算法之一(如果非要加个“之一”的话)。和深度学习一样,它也是
Kaggle
竞赛中最常用的技术之一。
1.2.5
回到神经网络
虽然神经网络几乎被整个科学界完全忽略,但仍有一些人在继续研究神经网络,并在
2010
年左右开始取得重大突破。这些人包括:多伦多大学
Geoffrey Hinton
的小组、蒙特利尔大学的
Yoshua Bengio
、纽约大学的
Yann LeCun
和瑞士的
IDSIA
。
2011
年,来自
IDSIA
的
Dan Ciresan
开始利用
GPU
训练的深度神经网络赢得学术性的图像
分类竞赛,这是现代深度学习第一次在实践中获得成功。但真正的转折性时刻出现在
2012
年,
当年
Hinton
小组参加了每年一次的大规模图像分类挑战赛
ImageNet
。
ImageNet
挑战赛在当时
以困难著称,参赛者需要对
140
万张高分辨率彩色图像进行训练,然后将其划分到
1000
个不同
的类别中。
2011
年,获胜的模型基于经典的计算机视觉方法,其
top-5
精度
a
只有
74.3%
。到了
2012
年,由
Alex Krizhevsky
带领并由
Geoffrey Hinton
提供建议的小组,实现了
83.6%
的
top-5
精度——这是一项重大突破。此后,这项竞赛每年都由深度卷积神经网络所主导。到了
2015
年,
获胜者的精度达到了
96.4%
,此时
ImageNet
的分类任务被认为是一个已经完全解决的问题。
自
2012
年以来,深度卷积神经网络(
convnet
)已成为所有计算机视觉任务的首选算法。更
一般地说,它在所有感知任务上都有效。在
2015
年和
2016
年的主要计算机视觉会议上,几乎
所有演讲都与
convnet
有关。与此同时,深度学习也在许多其他类型的问题上得到应用,比如自
然语言处理。它已经在大量应用中完全取代了
SVM
与决策树。举个例子,欧洲核子研究中心
(
CERN
)多年来一直使用基于决策树的方法来分析来自大型强子对撞机(
LHC
)
ATLAS
探测器
的粒子数据,但
CERN
最终转向基于
Keras
的深度神经网络,因为它的性能更好,而且在大型
数据集上易于训练。
1.2.6
深度学习有何不同
深度学习发展得如此迅速,主要原因在于它在很多问题上都表现出更好的性能。但这并不
是唯一的原因。深度学习还让解决问题变得更加简单,因为它将特征工程完全自动化,而这曾
经是机器学习工作流程中最关键的一步。
先前的机器学习技术(浅层学习)仅包含将输入数据变换到一两个连续的表示空间,通常
使用简单的变换,比如高维非线性投影(
SVM
)或决策树。但这些技术通常无法得到复杂问题
所需要的精确表示。因此,人们必须竭尽全力让初始输入数据更适合用这些方法处理,也必须
手动为数据设计好的表示层。这叫作
特征工程。
与此相反,深度学习完全将这个步骤自动化:
利用深度学习,你可以一次性学习所有特征,而无须自己手动设计。
这极大地简化了机器学习
工作流程,通常将复杂的多阶段流程替换为一个简单的、端到端的深度学习模型。
你可能会问,如果问题的关键在于有多个连续表示层,那么能否重复应用浅层方法,以实
现和深度学习类似的效果?在实践中,如果连续应用浅层学习方法,其收益会随着层数增加迅
速降低,因为
三层模型中最优的第一表示层并不是单层或双层模型中最优的第一表示层
。深度
学习的变革性在于,模型可以在同一时间
共同学习所有表示层,而不是依次连续学习(这被称
为贪婪
学习)。通过共同的特征学习,一旦模型修改某个内部特征,所有依赖于该特征的其他特
征都会相应地自动调节适应,无须人为干预。一切都由单一反馈信号来监督:模型中的每一处
变化都是为了最终目标服务。这种方法比贪婪地叠加浅层模型更加强大,因为它可以通过将复杂、
抽象的表示拆解为很多个中间空间(层)来学习这些表示,每个中间空间仅仅是前一个空间的
简单变换。
深度学习从数据中进行学习时有两个基本特征:第一,通过渐进的、逐层的方式形成越来
越复杂的表示;第二,对中间这些渐进的表示共同进行学习,每一层的变化都需要同时考虑上
下两层的需要。总之,这两个特征使得深度学习比先前的机器学习方法更加成功。
1.2.7
机器学习现状
要想了解机器学习算法和工具的现状,一个好方法是看一下
Kaggle
上的机器学习竞赛。
Kaggle
上的竞争非常激烈(有些比赛有数千名参赛者,并提供数百万美元的奖金),而且涵盖
了各种类型的机器学习问题,所以它提供了一种现实方法来评判哪种方法有效、哪种方法无效。
那么哪种算法能够可靠地赢得竞赛呢?顶级参赛者都使用哪些工具?
在
2016
年和
2017
年,
Kaggle
上主要有两大方法:梯度提升机和深度学习。具体而言,梯
度提升机用于处理结构化数据的问题,而深度学习则用于图像分类等感知问题。使用前一种方
法的人几乎都使用优秀的
XGBoost
库,它同时支持数据科学最流行的两种语言:
Python
和
R
。
使用深度学习的
Kaggle
参赛者则大多使用
Keras
库,因为它易于使用,非常灵活,并且支持
Python
。
要想在如今的应用机器学习中取得成功,你应该熟悉这两种技术:梯度提升机,用于浅层
学习问题;深度学习,用于感知问题。用术语来说,你需要熟悉
XGBoost
和
Keras
,它们是目
前主宰
Kaggle
竞赛的两个库。有了本书,你已经向这个目标迈出了一大步。
1.3
为什么是深度学习,为什么是现在
深度学习用于计算机视觉的两个关键思想,即卷积神经网络和反向传播,在
1989
年就已经
为人们所知。长短期记忆(
LSTM,long short-term memory)算法是深度学习处理时间序列的
基础,它在 1997
年就被开发出来了,而且此后几乎没有发生变化。那么为什么深度学习在
2012
年之后才开始取得成功?这二十年间发生了什么变化?
总的来说,三种技术力量在推动着机器学习的进步:
硬件
数据集和基准
算法上的改进
由于这一领域是靠实验结果而不是理论指导的,所以只有当合适的数据和硬件可用于尝试
新想法时(或者将旧想法的规模扩大,事实往往也是如此),才可能出现算法上的改进。机器学
习不是数学或物理学,靠一支笔和一张纸就能实现重大进展。它是一门工程科学。
在
20
世纪
90
年代和
21
世纪前十年,真正的瓶颈在于数据和硬件。但在这段时间内发生了
下面这些事情:互联网高速发展,并且针对游戏市场的需求开发出了高性能图形芯片。
1.3.1
硬件
从
1990
年到
2010
年,非定制
CPU
的速度提高了约
5000
倍。因此,现在可以在笔记本电
脑上运行小型深度学习模型,但在
25
年前是无法实现的。
但是,对于计算机视觉或语音识别所使用的典型深度学习模型,所需要的计算能力要比笔
记本电脑的计算能力高几个数量级。在
20
世纪前十年里,
NVIDIA
和
AMD
等公司投资数十亿
美元来开发快速的大规模并行芯片(图形处理器,
GPU
),以便为越来越逼真的视频游戏提供图
形显示支持。这些芯片是廉价的、单一用途的超级计算机,用于在屏幕上实时渲染复杂的
3D
场景。
这些投资为科学界带来了好处。
2007
年,
NVIDIA
推出了
CUDA
,作为其
GPU
系列的编程接口。
少量
GPU
开始在各种高度并行化的应用中替代大量
CPU
集群,并且最早应用于物理建模。深
度神经网络主要由许多小矩阵乘法组成,它也是高度并行化的。
2011
年前后,一些研究人员开
始编写神经网络的
CUDA
实现,而
Dan Ciresan
a
和
Alex Krizhevsky
b
属于第一批人。
这样,游戏市场资助了用于下一代人工智能应用的超级计算。有时候,大事件都是从游戏
开始的。今天,
NVIDIA TITAN X
(一款游戏
GPU
,在
2015
年底售价
1000
美元)可以实现单
精度
6.6 TFLOPS
的峰值,即每秒进行
6.6
万亿次
float32
运算。这比一台现代笔记本电脑的
速度要快约
350
倍。使用一块
TITAN X
显卡,只需几天就可以训练出几年前赢得
ILSVRC
竞赛
的
ImageNet
模型。与此同时,大公司还在包含数百个
GPU
的集群上训练深度学习模型,这种
类型的
GPU
是专门针对深度学习的需求开发的,比如
NVIDIA Tesla K80
。如果没有现代
GPU
,
这种集群的超级计算能力是不可能实现的。
此外,深度学习行业已经开始超越
GPU
,开始投资于日益专业化的高效芯片来进行深度学
习。
2016
年,
Google
在其年度
I/O
大会上展示了张量处理器(
TPU
)项目,它是一种新的芯片
设计,其开发目的完全是为了运行深度神经网络。据报道,它的速度比最好的
GPU
还要快
10
倍,
而且能效更高。
1.3.2
数据
人工智能有时被称为新的工业革命。如果深度学习是这场革命的蒸汽机,那么数据就是煤炭,
即驱动智能机器的原材料,没有煤炭一切皆不可能。就数据而言,除了过去
20
年里存储硬件的
指数级增长(遵循摩尔定律),最大的变革来自于互联网的兴起,它使得收集与分发用于机器学
习的超大型数据集变得可行。如今,大公司使用的图像数据集、视频数据集和自然语言数据集,
如果没有互联网的话根本无法收集。例如,
Flickr
网站上用户生成的图像标签一直是计算机视觉
的数据宝库。
YouTube
视频也是一座宝库。维基百科则是自然语言处理的关键数据集。
如果有一个数据集是深度学习兴起的催化剂的话,那么一定是
ImageNet
数据集。它包含
140
万张图像,这些图像已经被人工划分为
1000
个图像类别(每张图像对应
1
个类别)。但
ImageNet
的特殊之处不仅在于其数量之大,还在于与它相关的年度竞赛
a
。
正如
Kaggle
自
2010
年以来所展示的那样,公开竞赛是激励研究人员和工程师挑战极限的
极好方法。研究人员通过竞争来挑战共同基准,这极大地促进了近期深度学习的兴起。
1.3.3
算法
除了硬件和数据之外,直到
20
世纪前十年的末期,我们仍没有可靠的方法来训练非常深
的神经网络。因此,神经网络仍然很浅,仅使用一两个表示层,无法超越更为精确的浅层方法,
比如
SVM
和随机森林。关键问题在于通过多层叠加的
梯度传播
。随着层数的增加,用于训练神
经网络的反馈信号会逐渐消失。
这一情况在
2009
—
2010
年左右发生了变化,当时出现了几个很简单但很重要的算法改进,
可以实现更好的梯度传播。
更好的神经层
激活函数
(
activation function
)。
更好的
权重初始化方案
(
weight-initialization scheme
),一开始使用逐层预训练的方法,
不过这种方法很快就被放弃了。
更好的
优化方案
(
optimization scheme
),比如
RMSProp
和
Adam
。
只有这些改进可以训练
10
层以上的模型时,深度学习才开始大放异彩。
最后,在
2014
年、
2015
年和
2016
年,人们发现了更先进的有助于梯度传播的方法,比如
批标准化、残差连接和深度可分离卷积。今天,我们可以从头开始训练上千层的模型。
1.3.4
新的投资热潮
随着深度学习于
2012
—
2013
年在计算机视觉领域成为新的最优算法,并最终在所有感知任
务上都成为最优算法,业界领导者开始注意到它。接下来就是逐步升温的业界投资热潮,远远
超出了人工智能历史上曾经出现过的任何投资。
2011
年,就在深度学习大放异彩之前,在人工智能方面的风险投资总额大约为
1900
万美元,
几乎全都投给了浅层机器学习方法的实际应用。到了
2014
年,这一数字已经涨到了惊人的
3.94
亿美元。这三年里创办了数十家创业公司,试图从深度学习炒作中获利。与此同时,
Google
、
Facebook
、百度、微软等大型科技公司已经在内部研究部门进行投资,其金额很可能已经超过
了风险投资的现金流。其中只有少数金额被公之于众:
2013
年,
Google
收购了深度学习创业公
司
DeepMind
,报道称收购价格为
5
亿美元,这是历史上对人工智能公司的最高收购价格。
2014
年,百度在硅谷启动了深度学习研究中心,为该项目投资
3
亿美元。
2016
年,深度学习硬件创
业公司
Nervana Systems
被英特尔收购,收购价格逾
4
亿美元。
机器学习,特别是深度学习,已成为这些科技巨头产品战略的核心。
2015
年末,
Google
首
席执行官
Sundar Pichai
表示:“机器学习这一具有变革意义的核心技术将促使我们重新思考做所
有事情的方式。我们用心将其应用于所有产品,无论是搜索、广告、
YouTube
还是
Google Play
。
我们尚处于早期阶段,但你将会看到我们系统性地将机器学习应用于所有这些领域。”
a
由于这波投资热潮,短短五年间从事深度学习的人数从几千人涨到数万人,研究进展也达
到了惊人的速度。目前没有迹象表明这种趋势会在短期内放缓。
1.3.5
深度学习的大众化
有许多新面孔进入深度学习领域,而主要的驱动因素之一是该领域所使用工具集的大众
化。在早期,从事深度学习需要精通
C++
和
CUDA
,而它们只有少数人才能掌握。如今,具
有基本的 Python
脚本技能,就可以从事高级的深度学习研究。这主要得益于
Theano
及随后的
TensorFlow
的开发,以及
Keras
等用户友好型库的兴起。
Theano
和
TensorFlow
是两个符号式的
张量运算的
Python
框架,都支持自动求微分,这极大地简化了新模型的实现过程。
Keras 等用
户友好型库则使深度学习变得像操纵乐高积木一样简单。Keras 在 2015 年初发布,并且很快就
成为大量创业公司、研究生和研究人员转向该领域的首选深度学习解决方案。
1.3.6
这种趋势会持续吗
深度神经网络成为企业投资和研究人员纷纷选择的正确方法,它究竟有何特别之处?换句
话说,深度学习是否只是难以持续的昙花一现?
20
年后我们是否仍在使用深度神经网络?
深度学习有几个重要的性质,证明了它确实是人工智能的革命,并且能长盛不衰。
20
年后
我们可能不再使用神经网络,但我们那时所使用的工具都是直接来自于现代深度学习及其核心
概念。这些重要的性质可大致分为以下三类。
简单。深度学习不需要特征工程,它将复杂的、不稳定的、工程量很大的流程替换为简
单的、端到端的可训练模型,这些模型通常只用到五六种不同的张量运算。
可扩展。深度学习非常适合在GPU或TPU上并行计算,因此可以充分利用摩尔定律。此外,
深度学习模型通过对小批量数据进行迭代来训练,因此可以在任意大小的数据集上进行
训练。(唯一的瓶颈是可用的并行计算能力,而由于摩尔定律,这一限制会越来越小。)
多功能与可复用。与之前的许多机器学习方法不同,深度学习模型无须从头开始就可以
在附加数据上进行训练,因此可用于连续在线学习,这对于大型生产模型而言是非常重
要的特性。此外,训练好的深度学习模型可用于其他用途,因此是可以重复使用的。举
个例子,可以将一个对图像分类进行训练的深度学习模型应用于视频处理流程。这样我
们可以将以前的工作重新投入到日益复杂和强大的模型中。这也使得深度学习可以适用
于较小的数据集。
深度学习数年来一直备受关注,我们还没有发现其能力的界限。每过一个月,我们都会学
到新的用例和工程改进,从而突破先前的局限。在一次科学革命之后,科学发展的速度通常会
遵循一条
S
形曲线:首先是一个快速发展时期,接着随着研究人员受到严重限制而逐渐稳定下来,
然后进一步的改进又逐渐增多。深度学习在
2017
年似乎处于这条
S
形曲线的前半部分,在未来
几年将会取得更多进展。