你可能已经接触过编程,并开发过⼀两款程序。同时你可能读过关于深度学习或者机器学习的铺 天盖地的报道,尽管很多时候它们被赋予了更⼴义的名字:⼈⼯智能。实际上,或者说幸运的是, ⼤部分程序并不需要深度学习或者是更⼴义上的⼈⼯智能技术。例如,如果我们要为⼀台微波炉 编写⼀个⽤⼾界⾯,只需要⼀点⼉⼯夫我们便能设计出⼗⼏个按钮以及⼀系列能精确描述微波炉 在各种情况下的表现的规则。再⽐如,假设我们要编写⼀个电⼦邮件客⼾端。这样的程序⽐微波 炉要复杂⼀些,但我们还是可以沉下⼼来⼀步⼀步思考:客⼾端的⽤⼾界⾯将需要⼏个输⼊框来接受收件⼈、主题、邮件正⽂等,程序将监听键盘输⼊并写⼊⼀个缓冲区,然后将它们显⽰在相 应的输⼊框中。当⽤⼾点击“发送”按钮时,我们需要检查收件⼈邮箱地址的格式是否正确,并 检查邮件主题是否为空,或在主题为空时警告⽤⼾,而后⽤相应的协议传送邮件。
值得注意的是,在以上两个例⼦中,我们都不需要收集真实世界中的数据,也不需要系统地提取这些数据的特征。只要有充⾜的时间,我们的常识与编程技巧已经⾜够让我们完成任务。
与此同时,我们很容易就能找到⼀些连世界上最好的程序员也⽆法仅⽤编程技巧解决的简单问题。例如,假设我们想要编写⼀个判定⼀张图像中有没有猫的程序。这件事听起来好像很简单, 对不对?程序只需要对每张输⼊图像输出“真”(表⽰有猫)或者“假”(表⽰⽆猫)即可。但令⼈惊讶的是,即使是世界上最优秀的计算机科学家和程序员也不懂如何编写这样的程序。
我们该从哪⾥⼊⼿呢?我们先进⼀步简化这个问题:若假设所有图像的⾼和宽都是同样的
400
像素⼤小,⼀个像素由红绿蓝三个值构成,那么⼀张图像就由近50
万个数值表⽰。那么哪些数值隐藏着我们需要的信息呢?是所有数值的平均数,还是四个⻆的数值,抑或是图像中的某⼀个特别的点?事实上,要想解读图像中的内容,需要寻找仅仅在结合成千上万的数值时才会出现的特征,如边缘、质地、形状、眼睛、⿐⼦等,最终才能判断图像中是否有猫。
⼀种解决以上问题的思路是逆向思考。与其设计⼀个解决问题的程序,不如从最终的需求⼊⼿来寻找⼀个解决⽅案。事实上,这也是⽬前的机器学习和深度学习应⽤共同的核⼼思想:我们可以称其为“⽤数据编程”。与其枯坐在房间⾥思考怎么设计⼀个识别猫的程序,不如利⽤⼈类⾁眼在图像中识别猫的能⼒。我们可以收集⼀些已知包含猫与不包含猫的真实图像,然后我们的⽬标就转化成如何从这些图像⼊⼿得到⼀个可以推断出图像中是否有猫的函数。这个函数的形式通常通过我们的知识来针对特定问题选定。例如,我们使⽤⼀个⼆次函数来判断图像中是否有猫,但是像⼆次函数系数值这样的函数参数的具体值则是通过数据来确定。
通俗来说,机器学习是⼀⻔讨论各式各样的适⽤于不同问题的函数形式,以及如何使⽤数据来有效地获取函数参数具体值的学科。深度学习是指机器学习中的⼀类函数,它们的形式通常为多层神经⽹络。近年来,仰仗着⼤数据集和强⼤的硬件,深度学习已逐渐成为处理图像、⽂本语料和声⾳信号等复杂⾼维度数据的主要⽅法。
我们现在正处于⼀个程序设计得到深度学习的帮助越来越多的时代。这可以说是计算机科学历史上的⼀个分⽔岭。举个例⼦,深度学习已经在你的⼿机⾥:拼写校正、语⾳识别、认出社交媒体照⽚⾥的好友们等。得益于优秀的算法、快速而廉价的算⼒、前所未有的⼤量数据以及强⼤的软件⼯具,如今⼤多数软件⼯程师都有能⼒建⽴复杂的模型来解决⼗年前连最优秀的科学家都觉得棘⼿的问题。
本系列文章希望能帮助读者进⼊深度学习的浪潮中。我们希望结合数学、代码和样例让深度学习变得触⼿可及。
我们希望系列能帮助和启发新⼀代的程序员、创业者、统计学家、⽣物学家, 以及所有对深度学习感兴趣的⼈。
1.1 起源
虽然深度学习似乎是最近⼏年刚兴起的名词,但它所基于的神经⽹络模型和⽤数据编程的核⼼思想已经被研究了数百年。⾃古以来,⼈类就⼀直渴望能从数据中分析出预知未来的窍⻔。实际上数据分析正是⼤部分⾃然科学的本质,我们希望从⽇常的观测中提取规则,并找寻不确定性。
早在
17
世纪,
雅各⽐·伯努利(
1655–1705
)
提出了描述只有两种结果的随机过程(如抛掷⼀枚硬币)的伯努利分布。⼤约⼀个世纪之后,
卡尔·弗⾥德⾥希·⾼斯(
1777–1855
)
发明了今⽇仍⼴泛⽤在从保险计算到医学诊断等领域的最小⼆乘法。概率论、统计学和模式识别等⼯具帮助⾃然科学的实验学家们从数据回归到⾃然定律,从而发现了如欧姆定律(描述电阻两端电压和流经电阻电流关系的定律)这类可以⽤线性模型完美表达的⼀系列⾃然法则。
即使是在中世纪,数学家也热衷于利⽤统计学来做出估计。例如,在
雅各⽐·科⻉尔(
1460-1533
)
的⼏何书中记载了使⽤16
名男⼦的平均脚⻓来估计男⼦的平均脚⻓。
图
1.1:
在中世纪,
16
名男⼦的平均脚⻓被⽤来估计男⼦的平均脚⻓
如图
1.1
所⽰,在这个研究中,
16位成年男⼦被要求在离开教堂时站成⼀排并把脚贴在⼀起,而后
他们脚的总⻓度除以
16
得到了⼀个估计:这个数字⼤约相当于今⽇的⼀英尺。这个算法之后⼜被
改进,以应对特异形状的脚:最⻓和最短的脚不计⼊,只对剩余的脚⻓取平均值,即裁剪平均值
的雏形。
现代统计学在
20
世纪的真正起⻜要归功于数据的收集和发布。统计学巨匠之⼀
罗纳德·费(
1890– 1962)
对统计学理论和统计学在基因学中的应⽤功不可没。他发明的许多算法和公式,例如线性 判别分析和费雪信息,仍经常被使⽤。即使是他在1936
年发布的
Iris
数据集,仍然偶尔被⽤于演 ⽰机器学习算法。
克劳德·⾹农(
1916–2001
)
的信息论以及
阿兰·图灵(
1912–1954
)
的计算理论也对机器学习有深
远影响。图灵在他著名的论⽂
《计算机器与智能》
中提出了“机器可以思考吗?”这样⼀个问题
[1]
。在他描述的“图灵测试”中,如果⼀个⼈在使⽤⽂本交互时不能区分他的对话对象到底是⼈
类还是机器的话,那么即可认为这台机器是有智能的。时⾄今⽇,智能机器的发展可谓⽇新⽉异。
另⼀个对深度学习有重⼤影响的领域是神经科学与⼼理学。既然⼈类显然能够展现出智能,那么
对于解释并逆向⼯程⼈类智能机理的探究也在情理之中。最早的算法之⼀是由
唐纳德·赫布(
1904–
1985
)
正式提出的。在他开创性的著作
《⾏为的组织》
中,他提出神经是通过正向强化来学习的, 即赫布理论 [2]。赫布理论是感知机学习算法的原型,并成为⽀撑今⽇深度学习的随机梯度下降 算法的基⽯:强化合意的⾏为、惩罚不合意的⾏为,最终获得优良的神经⽹络参数。
来源于⽣物学的灵感是神经⽹络名字的由来。这类研究者可以追溯到⼀个多世纪前的
亚历⼭⼤·
⻉恩(
1818–1903
)
和
查尔斯·斯科特·谢灵顿(
1857–1952
)
。研究者们尝试组建模仿神经元互动的 计算电路。随着时间发展,神经⽹络的⽣物学解释被稀释,但仍保留了这个名字。时⾄今⽇,绝 ⼤多数神经⽹络都包含以下的核⼼原则。
•
交替使⽤线性处理单元与⾮线性处理单元,它们经常被称为“层”。
•
使⽤链式法则(即反向传播)来更新⽹络的参数。
在最初的快速发展之后,⾃约
1995
年起⾄
2005
年,⼤部分机器学习研究者的视线从神经⽹络上移
开了。这是由于多种原因。⾸先,训练神经⽹络需要极强的计算⼒。尽管
20
世纪末内存已经⾜够,
计算⼒却不够充⾜。其次,当时使⽤的数据集也相对小得多。费雪在
1936
年发布的的
Iris
数据集
仅有
150
个样本,并被⼴泛⽤于测试算法的性能。具有
6
万个样本的
MNIST
数据集在当时已经被认
为是⾮常庞⼤了,尽管它如今已被认为是典型的简单数据集。由于数据和计算⼒的稀缺,从经验
上来说,如核⽅法、决策树和概率图模型等统计⼯具更优。它们不像神经⽹络⼀样需要⻓时间的
训练,并且在强⼤的理论保证下提供可以预测的结果。
1.2 发展
互联⽹的崛起、价廉物美的传感器和低价的存储器令我们越来越容易获取⼤量数据。加之便宜的
计算⼒,尤其是原本为电脑游戏设计的
GPU
的出现,上⽂描述的情况改变了许多。⼀瞬间,原本
被认为不可能的算法和模型变得触⼿可及。这样的发展趋势从如下表格中可⻅⼀斑。
很显然,存储容量没能跟上数据量增⻓的步伐。与此同时,计算⼒的增⻓⼜盖过了数据量的增⻓。
这样的趋势使得统计模型可以在优化参数上投⼊更多的计算⼒,但同时需要提⾼存储的利⽤效
率,例如使⽤⾮线性处理单元。这也相应导致了机器学习和统计学的最优选择从⼴义线性模型及
核⽅法变化为深度多层神经⽹络。这样的变化正是诸如多层感知机、卷积神经⽹络、⻓短期记忆
循环神经⽹络和
Q
学习等深度学习的⽀柱模型在过去
10
年从坐了数⼗年的冷板凳上站起来被“重
新发现”的原因。
近年来在统计模型、应⽤和算法上的进展常被拿来与寒武纪⼤爆发(历史上物种数量⼤爆发的⼀
个时期)做⽐较。但这些进展不仅仅是因为可⽤资源变多了而让我们得以⽤新瓶装旧酒。下⾯的
列表仅仅涵盖了近⼗年来深度学习⻓⾜发展的部分原因。
•
优秀的容量控制⽅法,如丢弃法,使⼤型⽹络的训练不再受制于过拟合(⼤型神经⽹络学
会记忆⼤部分训练数据的⾏为)
[3]
。这是靠在整个⽹络中注⼊噪声而达到的,如训练时随
机将权重替换为随机的数字
[4]
。
•
注意⼒机制解决了另⼀个困扰统计学超过⼀个世纪的问题:如何在不增加参数的情况下扩
展⼀个系统的记忆容量和复杂度。注意⼒机制使⽤了⼀个可学习的指针结构来构建出⼀个
精妙的解决⽅法
[5]
。也就是说,与其在像机器翻译这样的任务中记忆整个句⼦,不如记忆
指向翻译的中间状态的指针。由于⽣成译⽂前不需要再存储整句原⽂的信息,这样的结构
使准确翻译⻓句变得可能。
•
记忆⽹络
[6]
和神经编码器—解释器
[7]这样的多阶设计使得针对推理过程的迭代建模⽅法
变得可能。这些模型允许重复修改深度⽹络的内部状态,这样就能模拟出推理链条上的各
个步骤,就好像处理器在计算过程中修改内存⼀样。
•
另⼀个重⼤发展是⽣成对抗⽹络的发明
[8]
。传统上,⽤在概率分布估计和⽣成模型上的统
计⽅法更多地关注于找寻正确的概率分布,以及正确的采样算法。⽣成对抗⽹络的关键创
新在于将采样部分替换成了任意的含有可微分参数的算法。这些参数将被训练到使辨别器
不能再分辨真实的和⽣成的样本。⽣成对抗⽹络可使⽤任意算法来⽣成输出的这⼀特性为
许多技巧打开了新的⼤⻔。例如⽣成奔跑的斑⻢
[9]
和⽣成名流的照⽚
[10]
都是⽣成对抗⽹
络发展的⻅证。
•
许多情况下单个
GPU
已经不能满⾜在⼤型数据集上进⾏训练的需要。过去
10
年内我们构建
分布式并⾏训练算法的能⼒已经有了极⼤的提升。设计可扩展算法的最⼤瓶颈在于深度
学习优化算法的核⼼:随机梯度下降需要相对更小的批量。与此同时,更小的批量也会降
低
GPU
的效率。如果使⽤
1,024
个
GPU
,每个
GPU
的批量⼤小为
32
个样本,那么单步训练的批
量⼤小将是
32,000
个以上。近年来李沐
[11]
、
Yang You
等⼈
[12]
以及
Xianyan Jia
等⼈
[13]
的
⼯作将批量⼤小增⾄多达
64,000
个样例,并把在
ImageNet
数据集上训练
ResNet-50
模型的时
间降到了
7
分钟。与之对⽐,最初的训练时间需要以天来计算。
•
并⾏计算的能⼒也为⾄少在可以采⽤模拟情况下的强化学习的发展贡献了⼒量。并⾏计算
帮助计算机在围棋、雅达利游戏、星际争霸和物理模拟上达到了超过⼈类的⽔准。
•
深度学习框架也在传播深度学习思想的过程中扮演了重要⻆⾊。
Caffe
、
Torch
和
Theano
这
样的第⼀代框架使建模变得更简单。许多开创性的论⽂都⽤到了这些框架。如今它们已经
被
TensorFlow
(经常是以⾼层
API
Keras
的形式被使⽤)、
CNTK
、
Caffe 2
和
Apache MXNet
所
取代。第三代,即命令式深度学习框架,是由⽤类似
NumPy
的语法来定义模型的
Chainer
所
开创的。这样的思想后来被
PyTorch
和
MXNet
的
Gluon API
采⽤,后者也正是本书⽤来教学
深度学习的⼯具。
系统研究者负责构建更好的⼯具,统计学家建⽴更好的模型。这样的分⼯使⼯作⼤⼤简化。举例
来说,在
2014
年时,训练⼀个逻辑回归模型曾是卡内基梅隆⼤学布置给机器学习⽅向的新⼊学博
⼠⽣的作业问题。时⾄今⽇,这个问题只需要少于
10
⾏的代码便可以完成,普通的程序员都可以
做到。
1.3 成功案例
⻓期以来机器学习总能完成其他⽅法难以完成的⽬标。例如,⾃
20
世纪
90
年代起,邮件的分拣就
开始使⽤光学字符识别。实际上这正是知名的
MNIST
和
USPS⼿写数字数据集的来源。机器学习
也是电⼦⽀付系统的⽀柱,可以⽤于读取银⾏⽀票、进⾏授信评分以及防⽌⾦融欺诈。机器学习
算法在⽹络上被⽤来提供搜索结果、个性化推荐和⽹⻚排序。虽然⻓期处于公众视野之外,但是
机器学习已经渗透到了我们⼯作和⽣活的⽅⽅⾯⾯。直到近年来,在此前认为⽆法被解决的问题
以及直接关系到消费者的问题上取得突破性进展后,机器学习才逐渐变成公众的焦点。这些进展
基本归功于深度学习。
•
苹果公司的
Siri
、亚⻢逊的
Alexa
和⾕歌助⼿⼀类的智能助⼿能以可观的准确率回答口头提
出的问题,甚⾄包括从简单的开关灯具(对残疾群体帮助很⼤)到提供语⾳对话帮助。智
能助⼿的出现或许可以作为⼈⼯智能开始影响我们⽣活的标志。
•
智能助⼿的关键是需要能够精确识别语⾳,而这类系统在某些应⽤上的精确度已经渐渐增
⻓到可以与⼈类⽐肩
[14]
。
•
物体识别也经历了漫⻓的发展过程。在
2010
年从图像中识别出物体的类别仍是⼀个相当有
挑战性的任务。当年⽇本电⽓、伊利诺伊⼤学⾹槟分校和罗格斯⼤学团队在
ImageNet
基准
测试上取得了
28%
的前五错误率
[15]
。到
2017
年,这个数字降低到了
2.25% [16]
。研究⼈员
在⻦类识别和⽪肤癌诊断上,也取得了同样惊世骇俗的成绩。
•
博弈曾被认为是⼈类智能最后的堡垒。⾃使⽤时间差分强化学习玩双陆棋的
TD-Gammon
开
始,算法和算⼒的发展催⽣了⼀系列在博弈上使⽤的新算法。与双陆棋不同,国际象棋
有更复杂的状态空间和更多的可选动作。“深蓝”⽤⼤量的并⾏、专⽤硬件和博弈树的⾼
效搜索打败了加⾥·卡斯帕罗夫
[17]
。围棋因其庞⼤的状态空间被认为是更难的游戏,
Al
phaGo
在
2016
年⽤结合深度学习与蒙特卡罗树采样的⽅法达到了⼈类⽔准
[18]
。对德州扑
克游戏而⾔,除了巨⼤的状态空间之外,更⼤的挑战是博弈的信息并不完全可⻅,例如看
不到对⼿的牌。而“冷扑⼤师”⽤⾼效的策略体系超越了⼈类玩家的表现
[19]
。以上的例⼦
都体现出了先进的算法是⼈⼯智能在博弈上的表现提升的重要原因。
•
机器学习进步的另⼀个标志是⾃动驾驶汽⻋的发展。尽管距离完全的⾃主驾驶还有很⻓的
路要走,但诸如
Tesla
、
NVIDIA
、
MobilEye
和
Waymo
这样的公司发布的具有部分⾃主驾驶
功能的产品展⽰出了这个领域巨⼤的进步。完全⾃主驾驶的难点在于它需要将感知、思考
和规则整合在同⼀个系统中。⽬前,深度学习主要被应⽤在计算机视觉的部分,剩余的部
分还是需要⼯程师们的⼤量调试。
以上列出的仅仅是近年来深度学习所取得的成果的冰⼭⼀⻆。机器⼈学、物流管理、计算⽣物学、
粒⼦物理学和天⽂学近年来的发展也有⼀部分要归功于深度学习。可以看到,深度学习已经逐渐
演变成⼀个⼯程师和科学家皆可使⽤的普适⼯具。
1.4 特点
在描述深度学习的特点之前,我们先回顾并概括⼀下机器学习和深度学习的关系。机器学习研究
如何使计算机系统利⽤经验改善性能。它是⼈⼯智能领域的分⽀,也是实现⼈⼯智能的⼀种⼿段。
在机器学习的众多研究⽅向中,表征学习关注如何⾃动找出表⽰数据的合适⽅式,以便更好地将
输⼊变换为正确的输出,而本书要重点探讨的深度学习是具有多级表⽰的表征学习⽅法。在每⼀
级(从原始数据开始),深度学习通过简单的函数将该级的表⽰变换为更⾼级的表⽰。因此,深
度学习模型也可以看作是由许多简单函数复合而成的函数。当这些复合的函数⾜够多时,深度学
习模型就可以表达⾮常复杂的变换。
深度学习可以逐级表⽰越来越抽象的概念或模式。以图像为例,它的输⼊是⼀堆原始像素值。深
度学习模型中,图像可以逐级表⽰为特定位置和⻆度的边缘、由边缘组合得出的花纹、由多种花
纹进⼀步汇合得到的特定部位的模式等。最终,模型能够较容易根据更⾼级的表⽰完成给定的任
务,如识别图像中的物体。值得⼀提的是,作为表征学习的⼀种,深度学习将⾃动找出每⼀级表
⽰数据的合适⽅式。
因此,深度学习的⼀个外在特点是端到端的训练。也就是说,并不是将单独调试的部分拼凑起来
组成⼀个系统,而是将整个系统组建好之后⼀起训练。⽐如说,计算机视觉科学家之前曾⼀度将
特征抽取与机器学习模型的构建分开处理,像是
Canny
边缘探测
[20]
和
SIFT
特征提取
[21]
曾占据
统治性地位达
10
年以上,但这也就是⼈类能找到的最好⽅法了。当深度学习进⼊这个领域后,这
些特征提取⽅法就被性能更强的⾃动优化的逐级过滤器替代了。
相似地,在⾃然语⾔处理领域,词袋模型多年来都被认为是不⼆之选
[22]
。词袋模型是将⼀个句
⼦映射到⼀个词频向量的模型,但这样的做法完全忽视了单词的排列顺序或者句中的标点符号。
不幸的是,我们也没有能⼒来⼿⼯抽取更好的特征。但是⾃动化的算法反而可以从所有可能的特
征中搜寻最好的那个,这也带来了极⼤的进步。例如,语义相关的词嵌⼊能够在向量空间中完成
如下推理:“柏林
-
德国
+
中国
=
北京”。可以看出,这些都是端到端训练整个系统带来的效果。
除端到端的训练以外,我们也正在经历从含参数统计模型转向完全⽆参数的模型。当数据⾮常稀
缺时,我们需要通过简化对现实的假设来得到实⽤的模型。当数据充⾜时,我们就可以⽤能更好
地拟合现实的⽆参数模型来替代这些含参数模型。这也使我们可以得到更精确的模型,尽管需要
牺牲⼀些可解释性。
相对其它经典的机器学习⽅法而⾔,深度学习的不同在于:对⾮最优解的包容、对⾮凸⾮线性优
化的使⽤,以及勇于尝试没有被证明过的⽅法。这种在处理统计问题上的新经验主义吸引了⼤量
⼈才的涌⼊,使得⼤量实际问题有了更好的解决⽅案。尽管⼤部分情况下需要为深度学习修改甚
⾄重新发明已经存在数⼗年的⼯具,但是这绝对是⼀件⾮常有意义并令⼈兴奋的事。
最后,深度学习社区⻓期以来以在学术界和企业之间分享⼯具而⾃豪,并开源了许多优秀的软件
库、统计模型和预训练⽹络。正是本着开放开源的精神,本书的内容和基于它的教学视频可以⾃
由下载和随意分享。我们致⼒于为所有⼈降低学习深度学习的⻔槛,并希望⼤家从中获益。
⼩结
- • 机器学习研究如何使计算机系统利⽤经验改善性能。它是⼈⼯智能领域的分⽀,也是实现 ⼈⼯智能的⼀种⼿段。
- • 作为机器学习的⼀类,表征学习关注如何⾃动找出表⽰数据的合适⽅式。
- • 深度学习是具有多级表⽰的表征学习⽅法。它可以逐级表⽰越来越抽象的概念或模式。
- • 深度学习所基于的神经⽹络模型和⽤数据编程的核⼼思想实际上已经被研究了数百年。
- • 深度学习已经逐渐演变成⼀个⼯程师和科学家皆可使⽤的普适⼯具。
练习
- • 你现在正在编写的代码有没有可以被“学习”的部分,也就是说,是否有可以被机器学习 改进的部分?
- • 你在⽣活中有没有这样的场景:虽有许多展⽰如何解决问题的样例,但缺少⾃动解决问题 的算法?它们也许是深度学习的最好猎物。
- • 如果把⼈⼯智能的发展看作是新⼀次⼯业⾰命,那么深度学习和数据的关系是否像是蒸汽 机与煤炭的关系呢?为什么?
- • 端到端的训练⽅法还可以⽤在哪⾥?物理学,⼯程学还是经济学?
- • 为什么应该让深度⽹络模仿⼈脑结构?为什么不该让深度⽹络模仿⼈脑结构?
参考⽂献
[1] Machinery, C. (1950). Computing machinery and intelligence-AM Turing. Mind, 59(236),
433.
[2] Hebb, D. O. (1949). The organization of behavior; a neuropsycholocigal theory. A Wiley Book
in Clinical Psychology., 62-78.
[3] Srivastava, N., Hinton, G., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. (2014). Dropout:
a simple way to prevent neural networks from overfitting. The Journal of Machine Learning
Research, 15(1), 1929-1958.
[4] Bishop, C. M. (1995). Training with noise is equivalent to Tikhonov regularization. Neural
computation, 7(1), 108-116.
[5] Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural machine translation by jointly learning
to align and translate. arXiv preprint arXiv:1409.0473.
[6] Sukhbaatar, S., Weston, J., & Fergus, R. (2015). End-to-end memory networks. In Advances
in neural information processing systems (pp. 2440-2448).
[7] Reed, S., & De Freitas, N. (2015). Neural programmer-interpreters. arXiv preprint
arXiv:1511.06279.
[8] Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S.,
…
& Bengio,
Y. (2014). Generative adversarial nets. In Advances in neural information processing systems
(pp. 2672-2680).
[9] Zhu, J. Y., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired image-to-image translation using
cycle-consistent adversarial networks. arXiv preprint.
[10] Karras, T., Aila, T., Laine, S., & Lehtinen, J. (2017). Progressive growing of gans for improved
quality, stability, and variation. arXiv preprint arXiv:1710.10196.
[11] Li, M. (2017). Scaling Distributed Machine Learning with System and Algorithm Co-design
(Doctoral dissertation, PhD thesis, Intel).
[12] You, Y., Gitman, I., & Ginsburg, B. Large batch training of convolutional networks. ArXiv
e-prints.
[13] Jia, X., Song, S., He, W., Wang, Y., Rong, H., Zhou, F.,
…
& Chen, T. (2018). Highly Scal
able Deep Learning Training System with Mixed-Precision: Training ImageNet in Four Minutes.
arXiv preprint arXiv:1807.11205.
[14] Xiong, W., Droppo, J., Huang, X., Seide, F., Seltzer, M., Stolcke, A.,
…
& Zweig, G. (2017,
March). The Microsoft 2016 conversational speech recognition system. In Acoustics, Speech
and Signal Processing (ICASSP), 2017 IEEE International Conference on (pp. 5255-5259). IEEE
[15] Lin, Y., Lv, F., Zhu, S., Yang, M., Cour, T., Yu, K.,
…
& Huang, T. (2010). Imagenet clas
sification: fast descriptor coding and large-scale svm training. Large scale visual recognition
challenge.
[16] Hu, J., Shen, L., & Sun, G. (2017). Squeeze-and-excitation networks. arXiv preprint
arXiv:1709.01507, 7.
[17] Campbell, M., Hoane Jr, A. J., & Hsu, F. H. (2002). Deep blue. Artificial intelligence, 134(1-2),
57-83.
[18] Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G.,
…
& Diele
man, S. (2016). Mastering the game of Go with deep neural networks and tree search. nature,
529(7587), 484.
[19] Brown, N., & Sandholm, T. (2017, August). Libratus: The superhuman ai for no-limit poker.
In Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence.
[20] Canny, J. (1986). A computational approach to edge detection. IEEE Transactions on pattern
analysis and machine intelligence, (6), 679-698.
[21] Lowe, D. G. (2004). Distinctive image features from scale-invariant keypoints. International
journal of computer vision, 60(2), 91-110.
[22] Salton, G., & McGill, M. J. (1986). Introduction to modern information retrieval.