CHAPTER 09/1763〜2012

从数据中自己学习

花了200年凑齐的工具,和2006〜2012年一下子亮起的3盏灯

给机器看大量例子,让它自己找出规律。这套工具里的许多方法,诞生于统计学、蜜蜂分类、监狱假释、传输信号的研究和心理测验。从2006年起的7年里,深度神经网络(深度学习)突然变强,是因为这个工具箱里又有了GPU和海量数据。

012006・深度学习的开端

三个条件齐备了

2006年新出现的,是想法,还是条件?

层数很多的神经网络,光靠反向传播(第8章)学不好。2006年,辛顿等人提出了一种方法:先在没有标准答案的情况下,(译)地学习数据的特征(预训练),再用反向传播对整体做最后的调整。在手写数字数据集MNIST上,错误率为1.25%。

同一年发表在Science上的论文写道,深度网络(译)。论文列出了计算速度、数据量和权重初始值的好坏这几点,接着写道(译)。

在右边的图里,可以点亮或熄灭三个条件的灯,比较竖线和横线图像的还原效果。用预训练来确定权重初始值时,先在没有标准答案的情况下逐层学习,再用反向传播对整体做最后的调整(灯的效果是本站编的例子)。

Δwij =η(⟨vihj⟩数据 − ⟨vihj⟩还原)
v, h
可见层(像素)和隐藏层的神经元
w
权重
⟨ ⟩
平均值(用数据与还原之间的差来修正。这是受限玻尔兹曼机的方法)
常见说法常见说法:2006年,辛顿发明了深度学习这个全新的想法
原始资料里:论文自己就写着,新的主要是(译)。同一年,本吉奥等人也提出了类似的方法。

图所展示的:2006年的新变化并不是深层网络这个想法,而是计算速度、数据量和较好的初始权重这3个条件同时具备了。

还原误差(学得越多越小)
021763・1961・贝叶斯

从结果出发,追溯原因

只靠线索单词,就能把文档分到各个领域吗?

贝叶斯定理的想法是:得到证据之后,重新计算原因或假设的可信程度。这篇论文于1763年12月23日在英国皇家学会上宣读。作者贝叶斯当时已经去世,是他的朋友普莱斯在遗稿中发现并寄出了它。

1961年,兰德研究所(RAND)的马伦用这个想法做了一个实验:把论文摘要分到32个领域。他假定领域一旦确定,单词之间就互不相关地出现,只把各个单词的概率相乘(今天称为朴素贝叶斯)。在含有2个以上线索单词的85篇新摘要中,第1位领域正确的有44篇(51.8%),前3位之内包含正确领域的有68篇(80%)。

在右边的图里点击线索单词,领域的概率就会通过乘法发生变化(单词和概率是本站编的例子)。

P(领域 | 单词们) ∝ P(领域) × Π P(单词 | 领域)
P(A | B)
在条件B之下A发生的概率
Π
把各个单词的概率逐个相乘
∝
成正比(最后除一下,使总和为1)
常见说法常见说法:朴素(naive)贝叶斯,是天真地相信单词之间互不相关的方法
原始资料里:马伦本人写道,独立的假设显然不成立,只是为了简化计算才设的。论文里既没有naive这个词,也没有Bayes这个名字。

图所展示的:只需把各领域中词语出现的概率相乘,就能从线索词判断文档属于哪个领域。即使假定词语互不相关这一前提并不正确,也能取得还不错的结果。

031805・最小二乘法

把误差平方后相加,让它最小

测得的点有偏差时,哪条直线才是“最吻合”的?

1805年,巴黎的勒让德在一本计算彗星轨道的书的附录里发表了最小二乘法。当方程的个数多于要求的未知数时,误差无法全部变成0。于是他把误差逐个平方再相加,让这个总和最小,并写道这是最普遍、最精确、最方便的做法。他还解释说,这样误差之间能够互相平衡,防止结果被极端的误差拖着走。

在右边的图里,误差被画成真实的正方形面积。移动点、改变直线的斜率(截距会自动调整),试着让面积的总和变小。点“最小二乘(到谷底)”,就会画出由公式一次算出的直线。根据数据来确定式子里的数,本章的许多方法都从这个形式出发。

S=Σ(yi − (a xi +b))² 取最小
a=Σ(xi − x̄)(yi − ȳ) ÷ Σ(xi − x̄)²,b= ȳ − a x̄
(xi, yi)
观测数据的点
a, b
直线的斜率和截距
x̄, ȳ
x和y的平均值
常见说法常见说法:最小二乘法是高斯想出来的
原始资料里:最先印刷发表的是勒让德(1805年)。高斯在1809年的书里写道自己从1795年就在使用;斯蒂格勒(1981)认为高斯很可能更早,但并不能定论。美国的阿德莱恩也在1808〜1809年发表过。

图所展示的:拟合散乱数据点的直线,要使各点偏差的2次方之和最小。

改变斜率a时的误差平方和(谷底就是最小二乘)
041838・1958・S形曲线

从人口的公式,到概率的公式

如何做出一个总是落在0和1之间的预测?

1838年,比利时的韦吕尔斯特用数学公式表示了人口的增长方式。它是从成倍增长的势头mp中,减去人口越多刹车越强的np²。解的曲线呈S形,人口趋近上限m/n。1845年,他把这条曲线命名为logistique(没有说明理由)。

同一条S形曲线,后来被用来预测概率。当数据的答案是“是(1)”或“否(0)”时,用解释变量预测结果为1的概率,这种方法就是逻辑回归。用直线的话,预测值可能小于0或大于1,而S形曲线则永远落在0和1之间。1958年,伦敦大学的考克斯发表了关于0和1数据的回归的论文。

在右边的图里,“人口(1838年)”里可以拖动m和n;“是・否(1958年)”里点“学1步”,看S形如何一步步贴合各个点。

dp/dt=mp − np²
P(y=1)=1 ÷(1+e−(ax+b))
p, m, n
人口、增长的势头、刹车的强度
a, b
通过学习确定的数
e
约2.718(自然对数的底)
常见说法常见说法:逻辑回归是考克斯在1958年提出的
原始资料里:考克斯本人在1994年的访谈中说,谁是第一个,并不清楚,也许考恩菲尔德做过。1944年,伯克森就用过逻辑函数,并创造了这个词。

图所展示的:原本描述人口增长的S形曲线,后来被用作预测“是或否”概率的公式,把概率限制在0和1之间。

051901・1933・主成分分析

离这些点最近的直线是哪一条

x和y都有测量误差时,“吻合的直线”该怎么定?

最小二乘法的直线,认为只有y有误差,让纵向的偏差变小。所以以x为基准还是以y为基准,得到的直线会不同。1901年,伦敦的皮尔逊想到:只要让各点到直线的垂线长度的平方和最小就行。这条直线穿过点群的重心,方向是表示点的散布范围的椭圆的最长轴方向。

在右边的图里选择“皮尔逊的10个点”,这10个点就是皮尔逊论文里的数值例子。选择“垂线”,转动直线,找一找垂线平方的平均值最小的方向。论文给出的答案是斜率 −0.546。由x预测y的回归是 −0.5396,由y预测x则是 −0.5659,三条线各不相同。

1933年,哥伦比亚大学的霍特林提出,从许多相互关联的测验分数中,依次取出最能解释差异的成分,并把这种方法命名为(译)。

使Σ di² 最小的方向 = 点的散布最大的方向(第1主成分)
di
第i个点到直线的垂线长度
散布的椭圆
表示数据散布范围的椭圆
常见说法常见说法:主成分分析是霍特林在1933年想出来的
原始资料里:离点群最近的直线就是散布的最长轴,这一点皮尔逊在1901年就已经证明了。

图所展示的:离各点最近的直线(垂直距离的2次方之和最小),方向与点云延伸最长的方向相同。它不同于只考虑y方向偏差的回归直线。

直线的方向,与垂线平方的平均值
061950・日本・数量化

分数由数据来决定

对“很适应・一般・爱反抗”这样的回答,该打几分?

1948年日本人读写能力调查结束前后,统计数理研究所(日本研究统计的国家级研究所)的林知己夫,被一位刑法学者找去商量:能否用统计让“是否可以假释”的判断更可靠。在那之前,都是由人为每种回答定出−2到2之类的分数再相加。

林知己夫常去横滨监狱,看出了这样的倾向:很适应监狱的优等生和非常爱反抗的人都容易再犯,中间的人最不容易再犯。于是他想出了一种方法:为了让没再犯的组和再犯的组分得最开,由数据来决定赋予回答的数值本身(1950年的英文论文)。

在右边的图里,比较人定的分数和由数据定的分数(人数是本站编的例子)。

选取分数s,使相关比η² 最大
s
赋予回答(类别)的数值
η²
整体的差异中,能由组与组的不同来解释的比例(即今天数量化Ⅱ类的形式)
常见说法常见说法:数量化Ⅰ类〜Ⅳ类,是林按这个顺序做出来并命名的
原始资料里:最先完成的是假释的预测方法(即今天的Ⅱ类)。Ⅰ〜Ⅳ的编号,是1964年社会心理学家饱户弘起的名称,和制作的先后无关。

图所展示的:不给答案人为规定分数,而是根据数据决定,就能捕捉到“中等的人最不容易再犯”这样并非直线排列的关系。

071951・1967・k近邻算法

只照最近的例子来

只是模仿记住的例子里最近的那个,能答对多少?

k近邻算法,是在要分类的新点周围,按距离由近到远找k个数据,把它归入其中最多的那一类。它事先不假定数据分布的形状。1951年2月,费克斯和霍奇斯在美国空军航空医学院的报告里提出了这类规则。他们证明:随着数据量n增大,只要k也跟着增大(但k/n趋近于0),就会逼近最优的分类。

1967年,斯坦福的科弗和哈特证明,即使是只看最近1个点的最近邻法(k=1),当数据无限多时,错误率在理论上也不超过最小值(贝叶斯错误率)的2倍。论文指出,从这个意义上说,无限多数据所含的分类信息,有一半就在最近的那1个点里。

在右边的图里放几个点,再改变k看看。k=1时训练数据会全部答对,但噪声点的周围会出现小小的“孤岛”。

R* ≤ R ≤ R*(2 − M R* ÷(M − 1))≤ 2R*
R
最近邻法的错误率(数据无限多时)
R*
贝叶斯错误率(即使完全知道分布也仍会剩下的错误)
M
类别的个数
常见说法常见说法:k近邻算法是1967年科弗和哈特提出的
原始资料里:两人自己写道,最早把近邻规则形式化并研究其性质的,似乎是费克斯和霍奇斯等人。1951年的报告并没有成为学术期刊上的论文。

图所展示的:只是模仿最近的例子,也能答对。把k设为1,训练数据全部答对,但噪声点周围会形成小岛。

R*,与R的上限(类别为2个时)
081957・1967・k-means

先分组,再移到平均位置

不给标准答案,能把数据分成k个组吗?

k-means的步骤是交替重复两件事:(1)把每个点分给最近的代表;(2)把代表移到这一组的平均位置。这样组内的离散程度会逐渐变小。每重复一次,离散程度的总和要么减小,要么保持不变。

同样形式的步骤,有许多人各自独立地想到了。1957年,贝尔实验室的劳埃德在研究所内部传阅的稿子里写下了这样一个步骤:把信号的电压换成数量固定的代表值再传送时(PCM),求出误差最小的分界与代表值(过了约25年才登上学术期刊)。1967年,加州大学洛杉矶分校的麦奎因,给“把点一个个放进最近的组,并立刻修正平均位置”的步骤起名为k-means。

在右边的图里,交替点“分组”和“移动”试试。改变最初代表的摆放位置,有时会停在不同的答案上。

W=Σ组 Σ组内的点x ‖x − μ组‖²
x, μ
点,与组的代表(平均值)
‖ ‖²
距离的平方
W
组内离散程度的总和
常见说法常见说法:k-means是麦奎因在1967年发明的
原始资料里:他本人在同一篇论文里,就举出了先前的例子:塞贝斯蒂安(1962)、福吉与詹里奇、华莱士与鲍尔。1956年施泰因豪斯、1957年劳埃德也提出过同样的想法。

图所展示的:交替重复“分给最近的代表点”和“把代表点移到平均位置”,即使不提供正确答案,数据也会分成组。起点不同,有时会停在不同的结果。

091958・1963・层次聚类

从最相似的开始依次连接,长成一棵树

不预先定好组数,怎样找出数据的聚团?

1958年,堪萨斯大学的昆虫学家索卡尔和米切纳,用每种122个特征比较了97种蜜蜂。他们先把相似的种归成组,再把得到的组与组连起来,如此反复,把整体汇成了一幅树状的图(树状图)。

1963年,美国空军基地研究所的沃德把这种归并方法做成了通用的步骤。把现有的组两两搭配,逐一检查所有组合,把使表示聚团好坏的数(目标函数)最优的那两组合并。这样一直重复到整体成为一个组。

右边的图,正是沃德论文里的例子。把10个人的分数2, 6, 5, 6, 2, 2, 2, 0, 0, 0当作一个组,与平均值之差的平方和是50.5。分成 {0,0,0} {2,2,2,2} {5} {6,6} 四组,则为0。点“合并2组”,看树如何长大。

合并的2组 = 合并后ESS增加得最小的2组(这张图所用的目标函数)
ESS
各组中与平均值之差的平方和,再相加的总和
常见说法常见说法:沃德法是合并“差的平方和增加得最小的组”的方法
原始资料里:1963年的论文是把它作为通用的步骤来写的:目标函数可以是研究者按目的选的任何函数。差的平方和,只是说明用的例子之一。

图所展示的:从最相似的对象开始依次连接,不用预先决定组数,也能把所有数据连成1棵树(树状图)。

101966・1975・HMM(隐马尔可夫)

从符号反推看不见的状态

像声音这样,同一个词每次都有波动的信号,怎样识别?

1966年,美国国防分析研究所的鲍姆和佩特里建立了这样一个数学框架:从外面看不见的状态按概率不断转移,每个状态又按概率输出符号。只凭输出的符号序列,就能推算出状态转移的概率和符号出现的概率。这就是今天的HMM(隐马尔可夫)。

1975年,贝克在语音理解系统DRAGON中用上了这个机制,1976年,IBM的耶利内克把它引入连续语音识别。1989年,经AT&T贝尔实验室的拉宾纳的讲解,它广为人知。

在右边的图里,看不见的状态(有声・安静)不断转移,能观测到的只有声音的大小。由此推算概率最高的状态序列(维特比算法)。

寻找使P(状态序列 | 符号序列)最大的序列
状态与符号
状态不能直接看到(有声・安静),只能观测到符号(声音的大小)
维特比
只记录到目前为止概率最高的路径并向前推进的动态规划(与第5章的DP匹配是同样的想法)
常见说法常见说法:有了HMM,语音识别的性能一下子提高了
原始资料里:在拉宾纳(1989)的实验里,逐词识别数字时,HMM与此前的模式匹配(DTW)的错误率相差不多(1.3%对2.0%,1.8%对1.1%)。它的长处,在于能表达声音的构造,并且可以推广到词汇量大的识别。

图所展示的:看不见的状态(有声音、安静)按概率变化,外面只能看到音量。利用前后关系,能比每次只判断1帧更准确地找出状态序列。

111971〜2010・日本・式子的选择

如何识破拟合过度

可调的数越多,就越贴合数据。该在哪里停下?

可以调节的数(参数)越多,式子就越贴合手头的数据。但对新数据反而容易失准(过拟合)。1971年,统计数理研究所的赤池弘次发表了在“与数据的吻合度”上加上对参数个数的惩罚项的标准AIC。越小越好。

1974年,伦敦的斯通把数据分成学习用和验证用两部分,一边变换分法,一边按成绩的平均值来选式子,写成了交叉验证的论文。1977年,他又证明留一法交叉验证与AIC在数据很多时表现相同。2010年,东京工业大学的渡边澄夫提出了WAIC,它也能用于AIC前提不成立的神经网络等情形,并证明它会趋近于留一法交叉验证的值。

在右边的图里把多项式的次数调高。训练误差会一路下降,而交叉验证的误差和AIC到了中途就开始上升。

AIC= −2 log L̂ +2k
L̂
最大似然(在使这批数据最容易出现的取值下的可信程度)
k
参数的个数
常见说法常见说法:AIC的A是赤池(Akaike)的A
原始资料里:他本人在1974年的论文里写道,加A是为了让后面能接上BIC、DIC这样的类似标准;1981年的回忆里也写道,它是an information criterion的缩写。WAIC的W,在渡边的论文里也是widely applicable(广泛适用)的缩写。

图所展示的:公式越多,越能贴合已有数据,但对新数据越容易出错。AIC和交叉验证能帮助找到恰到好处的选择。

各个次数的训练误差、交叉验证的误差、AIC
121977・EM算法

填上看不见的部分,再重新计算

数据有一部分看不见时,怎样求出最合理的值?

1977年,哈佛大学等处的登普斯特、莱尔德和鲁宾给出了一个通用方法:当数据有一部分看不见时,求出最合理的参数。交替重复两步:用当前的值计算看不见部分的期望值,即E步(expectation);再用填好的数据重新计算取值,即M步(maximization)。每重复一次,数据的似然都不会下降。

最初的例子是这样的数据:197只动物按遗传的机制分成4类,分别是125, 18, 20, 34只。在右边的图里选择“197只的例子”,交替点“E:填上”和“M:重新计算”。π从0.5出发,8次后稳定在0.6268214…,与论文表1的数相同。在“两座山”里,把混在一起的点按山分开。

E:x₂ =125 ×(π/4)÷(1/2+π/4)
M:π=(x₂ +34)÷(x₂ +18+20+34)
π
想求的值(遗传机制中的概率)
x₂
125只中,属于看不见的第2组的数量的期望值
常见说法常见说法:EM算法是1977年登普斯特等人发明的
原始资料里:三人自己写道,在特殊场合下它以前就被多次提出过(哈特利1958、鲍姆等人)。三人的工作,是归纳成一般的形式并命名,还证明了似然不会下降。

图所展示的:交替重复“用当前值填补看不见的部分(E)”和“根据填补后的数据重新计算值(M)”,就能逐渐接近最合理的值。

每次迭代的π
131979・日本・大津二值化

自动确定黑白的分界

把灰度图像分成黑和白时,分界的亮度怎么定?

要把文字或物体和背景分开,就以某个亮度(阈值)为界,把像素分成两类。1979年,电子技术综合研究所(日本的国立研究机构)的大津展之,在英文论文里发表了自动确定这个阈值的方法。把亮度的频数分布(直方图)按阈值k分成两部分时,选取使组间离散程度(类间方差)最大的k。这和让每个组内的离散程度最小是一回事。

计算只用到不超过该亮度的像素所占的比例和亮度的总和,所以非常简单。它是不用标准答案的例子来决定的无监督方法。论文举的例子有:用新色带和旧色带打出的打字机字母A、布的花纹、细胞的图像。

在右边的图里移动阈值,找一找图表中山峰的顶点(图像是本站编的例子)。

σB²(k)=ω₀ ω₁(μ₀ − μ₁)² → 选取使σB² 最大的k
ω₀, ω₁
暗组、亮组的像素所占的比例
μ₀, μ₁
各组的平均亮度
常见说法常见说法:大津二值化是把图像变成黑白的小技巧
原始资料里:大津是从判别分析推导出它的,并把它当作模式识别的基本问题之一来处理。论文的结论还写道,只要有直方图,也能用于其他无监督的分类。

图所展示的:把图像分成黑白的亮度阈值,可以选在2组数据分离程度(类间方差)最大的地方。这样不用正确示例,也能自动确定阈值。

阈值k与类间方差σB²
141985・贝叶斯网络

一有证据,可信程度就沿着网传开

从许多线索出发,能不违背概率规则地进行推理吗?

20世纪80年代初的专家系统(第6章),许多在不确定的推理中用的是临时拼凑的计算规则。加州大学的珀尔在1982年写道,许多AI研究者接受了一种神话:概率的规则至少要有一部分被扭曲。于是他设想了这样的图:用点表示事物,用箭头连接直接的依赖关系,并用条件概率表示依赖的强弱。他证明,这样一来,各个点就能只与邻居交换简短的消息,而正确地更新整体的概率。1985年,他把这种形式称作贝叶斯网络。

右边的图是一个小网络:“下雨”和“洒水”都是“草坪湿了”的原因(概率是本站编的例子)。输入“草坪湿了”,下雨和洒水都变得可疑;如果再输入“下雨了”,洒水的概率就会下降。因为用其中一个原因已经能解释了。

P(下雨 | 湿了)=P(湿了 | 下雨) × P(下雨) ÷ P(湿了)
P(A | B)
已知B时A的概率
箭头
从直接的原因指向结果
常见说法常见说法:贝叶斯网络是作为从数据中学习的统计工具而诞生的
原始资料里:珀尔1985年的报告,题目是从证据推理的自我运转的记忆的结构,发表在认知科学的学会上。1982年的论文,则是作为对专家系统中临时拼凑的计算的回应而写的。

图所展示的:用箭头连接原因和结果,加入证据后,各种可能性的大小就会沿网络传播。如果一种原因已能解释结果,另一种原因就不再那么可疑。

151986・决策树

先问哪个问题

把问题排起来得出答案的“树”,该怎么构造?

决策树把“天气如何?”“湿度高吗?”这样的问题排成分枝的形状,按答案沿着枝走,走到叶子就得出答案。1986年,澳大利亚的昆兰把一种叫ID3的构造方法写成了论文。它先选择把数据分开之后得到的信息量(信息增益,以比特计)最大的问题,分出去之后在各个分支上重复同样的做法。

右边图里的14张卡片,对应论文表1的各行。卡片上列着行号和答案P或N。打开“详情:资料的14行、整棵树、信息量”,还能看到星期六早晨的天气、气温、湿度、风。按天气分,得到0.246比特的信息,最大,所以树根是天气。点点问题,自己把树养大吧。

信息增益 =I(整体) − Σ(分出的各组所占的比例 × I(该组))  I= −p log₂ p − n log₂ n
p, n
组内P和N所占的比例
I
知道答案所需的信息量(比特)
常见说法常见说法:决策树诞生于AI(机器学习)的研究
原始资料里:统计学这边也有另外的源流:1963年莫尔根与桑奎斯特的AID,1984年布赖曼等人的CART。1986年论文的参考文献里没有CART,这两条源流是各自成长的。课本里“天气与网球”的例子,在这篇论文里有同样形式的例子,但并没有出现网球这个词。

图所展示的:构建决策树时,先问能获得最多答案信息的问题,再在各个分支重复同样的过程。

161988・1989・1994・强化学习

从奖励中学习

没人告诉标准答案,只是偶尔有点“奖励”,也能学习吗?

强化学习是一种机器学习:以奖励(好处)为线索,一边试错,一边学会行动的方法。1988年,GTE研究所的萨顿把TD法写成了理论:不等最后的结果,用与明天预测之间的差,来修正今天的预测。1989年,沃特金斯在博士论文里提出了Q学习:在状态x采取行动a时的价值Q(x, a),每试一次就改一点点。他还证明,只要每个行动都试很多次,就会逼近最好的价值。

1994年,东京工业大学的宫崎和光、山村雅幸、小林重信研究了profit sharing法:得到奖励时,把此前的一连串行动一起加强。他们证明了避免学到只会绕远路的行动所需的条件,并获得了日本人工智能学会的论文奖。

在右边图里的迷宫中,让Q学习和profit sharing分别学出通往宝藏(奖励)的路。

Q(x, a) ← Q(x, a)+α(r+γ maxb Q(x′, b) − Q(x, a))
r, x′
得到的奖励和下一个状态
α, γ
学习率,与对将来的奖励打折的折扣率(0〜1)
常见说法常见说法:TD学习是萨顿在1988年发明的
原始资料里:萨顿本人写道,TD法在塞缪尔的跳棋程序(1959,第3章)等中早已用过,只是没有被很好地理解。Q学习也不是诞生于1992年的论文,而是1989年的博士论文。

图所展示的:即使没人告诉正确答案,只有到达宝藏时才能获得奖励,反复尝试也能学会通往宝藏的路线。

挑战的次数,与到达宝藏所需的步数
171990・1995・1999・提升法

按错误把弱学习器叠起来

把只比瞎猜好一点点的方法凑在一起,能变成强的方法吗?

一切始于一个理论问题:只比瞎猜稍好一点的弱学习,和可以无限精确的强学习,能力相同吗?1990年,MIT的沙皮尔证明了两者等价,并给出了把弱方法变成强方法的算法。1995年,弗罗因德和沙皮尔发表了AdaBoost。上一轮判错的数据,权重越大,让下一个分类器去学习,最后用加权的多数表决汇总出判断。

1999年,斯坦福的弗里德曼把梯度提升一般化为“下山”的优化计算:让下一棵小决策树去预测当前预测值与标准答案的误差(残差),一点一点相加。

在右边的图里点“增加1轮”,判错的数据会变大,下一条边界线就会来对付它们。

αt = ½ log((1 − εt) ÷ εt)  判错的例子的权重 ← 权重 × eαt
εt
第t轮分类器的加权错误率
αt
该分类器在多数表决中的权重
常见说法常见说法:提升法不会过拟合
原始资料里:沙皮尔本人在2013年的讲解中,给出了训练数据的错误降到0之后,测试数据的错误率仍在下降的例子(第5轮8.4% → 第1000轮3.1%),同时写道,提升法也是会过拟合的。

图所展示的:即使分类器只比随机猜测好一点,让后续学习更加重视先前答错的数据,再通过多数表决组合多个分类器,也能变强。

每一轮的训练数据错误数
181992・支持向量机

让边界两侧的余地最大

分开两组的线可以画出许多条。哪一条最好?

1992年7月,博泽、吉永和瓦普尼克三人(研究单位是AT&T贝尔实验室),在COLT '92会议上发表了一种新的学习方法。把分开两组的边界画得使它与最近的点之间的距离(间隔,即余地)最大。边界只由离它最近的少数几个点决定,移动其他点,它也不会变。

再把算式改写成只用衡量点与点相似程度的函数(核函数)的形式,就能用同样的计算,让弯曲的边界也做到余地最大。在邮件上的手写数字(训练数据7300张、测试数据2000张)上,用4次多项式核,错误率为4.9%。比同样数据上的5层神经网络(5.1%)略低一点。

在右边的图里拖动点试试。除了带圈的点(支撑边界的点)以外,只要不把其他点移进间隔带,移动它们,线都不会动。

使间隔最大 ⇔ 使 ‖w‖ 最小
K(x, x′)=exp(−γ‖x − x′‖²)
w, b
边界的方向和位置(所有的点都满足yi(w·xi+b) ≥ 1。y用 +1・−1表示所属的组)
K, γ
核函数(点与点的相似程度),与影响所及范围的窄度
常见说法常见说法:支持向量机是科尔特斯和瓦普尼克在1995年发明的
原始资料里:使间隔最大、并用核函数也能处理弯曲边界的学习方法,是三人在1992年就发表了的。那篇论文里没有support vector这个词,把支撑边界的点叫作supporting patterns。核函数的想法,论文也引用了1964年艾泽尔曼等人的势函数方法作为例子。

图所展示的:第8章的“最宽道路”只能画出直线,但保持“让分界与最近点的间隔最大”这一思路,用点之间的相似程度(核函数)改写计算,就能用相同计算为直线分不开的数据画出弯曲分界。决定分界的,仍然只是最靠近分界的少数点。

191995・2001・随机森林

随机长出来的树,多数表决

一棵树对训练数据拟合过度。集合很多棵会怎样?

把决策树养得很深,会和训练数据完全吻合,但连噪声也一并记住了。1995年,AT&T贝尔实验室的何天琴(Tin Kam Ho)证明,把许多棵只随机选用一部分特征的树合在一起,手写数字的识别精度会提高(random decision forests)。

2001年,加州大学伯克利分校的布赖曼把随机森林归纳成型。随机地重新选取数据来养树,每次分枝时都从随机选出的特征中选最好的分法。增加树的数量,错误率会稳定在某个值。用没被选中的约三分之一的数据(out-of-bag),不需要另外的测试数据就能估计错误率。

在右边的图里增加树的数量,锯齿状的边界就变得平滑。

森林的答案 = 多数表决(树₁ 的答案, 树₂ 的答案, …, 树B 的答案)
B
树的棵数
森林的错误
由每棵树的强度(准确度)和树与树之间的相关性(相似程度)决定
常见说法常见说法:随机森林是布赖曼一个人想出来的
原始资料里:名字很像的random decision forests,是何天琴在1995年发表的。布赖曼本人也把装袋法(1996)、何天琴的方法、阿米特与格曼(1997)列为先行研究,并把它们合起来称作random forests。

图所展示的:1棵很深的树会连噪声也记住,但把许多随机生成的树放在一起进行多数表决,分界就会变平滑,错误率也会更稳定。

树的棵数,与用out-of-bag估计的错误率
201873・1936・奇异值分解

任何表格都能分解成3个

怎样用很少的数,把一张数表(矩阵)表示好?

奇异值分解(SVD)说的是,任何矩阵,都可以分解成3个乘法:旋转 → 沿各轴伸缩 → 再旋转一次。伸缩的倍数叫奇异值。1873年,贝尔特拉米最先发表,登在意大利面向大学生的数学杂志上。第二年的1874年,若尔当也独立地给出了它。

只保留大的奇异值,就能用很少的数把原来的表格相当精确地近似出来。1936年,芝加哥大学的埃卡特和扬在与心理测验得分分析相关的研究中,解决了“求用低秩最好地近似的矩阵”的问题。答案就是把小的奇异值变成0。

在右边图的“圆(2×2)”里,圆通过“转・拉伸・转”变成椭圆。在“画(24×24)”里,把用24×24的数表画出来的画,只保留k个奇异值重新做出来(画是本站编的例子)。

A=U Σ VT  Ak =σ₁u₁v₁T + … +σkukvkT
U, V
旋转(改变方向)
Σ
沿各轴拉伸(把奇异值σ₁ ≥ σ₂ ≥ … 排在对角线上的表)
Ak
只保留最大的k个得到的近似
常见说法常见说法:近似定理是埃卡特和扬(1936)发现的
原始资料里:据斯图尔特(1992),1907年施密特就已证明,两人是重新发现。

图所展示的:任何矩阵都能拆成“旋转、伸缩、旋转”这3步,只保留较大的伸缩量(奇异值),就能用较少的数很好地近似原矩阵。

奇异值的大小(由大到小)
212006〜2009・Netflix Prize

从满是空格的表格中学习

能猜出一个人会给没看过的电影打几分吗?

2006年10月,Netflix开办了一场竞赛:谁能把人给电影打的分,预测得比公司自己的推荐准10%,就能拿到100万美元奖金。发放的数据,是约48万人给约1万8000部电影打的、超过1亿条评分。

2006年12月11日,参赛者芬克在博客上公开了全部方法。用各40个数来表示人的喜好和电影的特点,用它们乘积的总和来预测评分。表格约85亿个格子里,有84亿个是空的,所以不能用原本的奇异值分解。于是,只用已知的评分来计算误差,一点一点修正取值。他本人把它叫作改造过的SVD。

在右边的图里点“继续学习”,空格就会被一个个填上(表格是本站编的例子)。

预测r̂ =pu · qm
pu ← pu +η e qm(qm 也是同样的形式。e=r − r̂)
pu, qm
人u的喜好,与电影m的特点(一组数)
r, η
已知的评分,与学习率
常见说法常见说法:Netflix用竞赛里找到的方法改进了推荐
原始资料里:在该公司的博客(2012)里写道,获胜的方法与所花的功夫不相称,没有被采用。

图所展示的:用少量数字表示人的喜好和电影的特征,只根据已知评分逐渐修改,就能预测满是空栏的表中缺失的评分。

迭代的次数,与验证用数据的误差
221770・2005・2009・里面有人

正确的标签是谁贴的

当“AI看照片自己学会了”的时候,那个正确答案是从哪里来的?

2005年11月,亚马逊推出了机械土耳其人(Mechanical Turk)服务:程序可以请人完成一些小任务,再接收结果。发布文把这种让计算机叫大批人去做事、再利用其结果的做法,称作(译)。

2009年,普林斯顿大学的李飞飞等人发表了ImageNet(当时已有320万张):按WordNet(把词的意义按上下层级整理的词库)的名词类别分组收集照片。照片是用搜索引擎收集的,照片里是否真有那个东西,则由机械土耳其人上拿报酬干活的世界各地的人一张一张核对,再由多人投票决定(论文第4页)。“里面有人”,不只是1770年那台下棋机器(被称作土耳其人)的故事。

右边的图是投票的机制(每个人的正确率是本站暂定的数)。

多数表决的正确率 =Σk>n/2 C(n, k) pk(1 − p)n−k
n
核对1张照片的人数(奇数)
p
每个人的正确率
C(n, k)
从n个人中选出k个人的组合数
常见说法常见说法:亚马逊解释说,名字取自1770年那台下棋机器(土耳其人)
原始资料里:本站确认过的亚马逊2005年发布文和现在的首页,都没有写名字的由来。

图所展示的:“AI从照片中学习”所用的正确答案,是世界各地领取报酬的工作人员每次核查1张照片,再由多人多数表决决定的。

人数,与多数表决的正确率
232009・跟着数据走

分成训练和测试来检验

精巧的机制,和海量的数据。哪个会赢?

2009年,谷歌的哈勒维、诺维格和佩雷拉写了论文《数据的不合理有效性》(译)。文中说(译),并呼吁(译)。

不过,学出来的性能,不用没参与学习的数据去评估,是不知道的。在右边的图里改变训练数据的数量。数量少时,训练数据上100%答对,测试数据上的正确率却很低(过拟合)。

测试的正确率 = 没参与学习的例子中答对的个数 ÷ 这些例子的个数
练习用(训练数据)
用来学习的数据
测试用(测试数据)
只用来在学习之后检验性能的数据

图所展示的:学习后的性能,需要用没有参与学习的数据检验,才能知道。数据太少时,即使练习达到100%,正式测试也可能出错。

本章出现的数据的规模(每格10倍的刻度)
242006・2009・GPU

同一种计算,同时做很多

画游戏画面的部件,为什么让AI的学习变快了?

画游戏画面的部件GPU,有用许多小核心(芯)同时做同样计算的能力(2006年的GeForce 8800 GTX最多128个)。2006年11月,NVIDIA发布了CUDA:用普通的C语言,就能把这个部件用于图像以外的计算。

神经网络的学习,大半是反复的“乘了再加”。每一个都是形式相同的计算,所以可以分工同时进行。2009年,斯坦福的雷纳、马德万和吴恩达(Andrew Ng),在GeForce GTX 280上训练不用标准答案就能学习的深层网络,比2核CPU最多快了70倍。有1亿个参数的4层网络的训练,从(译)缩短为(译)。

右边的图是改变核心数、比赛填满乘法表格子的游戏(本站做的示意)。核心越多,同样时间内填满的格子越多。

所花时间 ≒ 计算的次数 ÷(核心数 × 一个核心的速度)
这张图的约定
每个格子的计算量相同,分工的开销算作0(真实情况下,搬运数据等要花时间)
常见说法常见说法:深度学习是靠GPU普及的
原始资料里:2012年谷歌的大尝试(猫的论文・DistBelief),用的不是GPU,而是几千台普通的计算机。论文写道,当时的GPU遇到装不进显存(不到6 GB)的大网络,很难变快。路并不只有一条。

图所展示的:神经网络学习需要大量形式相同的计算,因此让拥有许多小核心的GPU分工处理,就能快得多。

252009〜2012・声音

比图像更早,是声音

用深度学习的AI,第一次大成功是在图像上吗?

从2009年前后起,深度学习在语音识别上开始超过此前长期使用的统计方法(GMM)。2012年,多伦多大学、微软研究院、谷歌和IBM四个小组,以(译)为题合写了论文,给出的结果包括:在对话转写测试中,单词错误率从27.4%降到了18.5%。2012年8月,谷歌已将它用于Android的语音识别。这些都发生在2012年10月那场图像大赛之前。

差不多同一时期,用声音下指令的应用接连登场(2010年8月NICT的VoiceTra,2011年10月苹果的Siri,2012年3月1日NTT docomo的“说话管家”(しゃべってコンシェル)。日语版Siri晚1周)。

右边的图是语音识别错误的数法(单词错误率)。

错误率 =(替换 + 遗漏 + 多余)÷ 正确的单词数
数法
把两个句子用最少的修改对齐后再数(动态规划。与第5章的DP匹配是同样的想法)
常见说法常见说法:深度学习的第一次大成功,是2012年秋天的图像大赛
原始资料里:语音识别从2009年起就开始出成果,2012年8月谷歌已将其用于Android。谷歌的博客举出20世纪80年代末的一篇论文(两位大阪ATR的研究者合著),作为把神经网络用于语音的最初尝试。

图所展示的:深度学习最早的大成功,来自声音,早于图像。统计语音识别错误时,要用最少的修改让2个句子对齐,再计算错误。

262010〜2012・深层网络

即使叠得很深,也不让信号消失

把层叠到30层,会发生什么?

在深层神经网络里,反向传播误差的信号,每经过一层就会变弱,或者变得过大。2010〜2012年,防止这种情况的3个办法齐备了。

激活函数ReLU(输入为正就原样输出,为负则输出0。正的一侧斜率始终为1);按神经元个数来调整幅度的权重初始值(2010年格洛罗与本吉奥);还有每次学习时随机让一半隐藏层神经元休息的dropout(2012年)。

在右边的图里改变激活函数和初始值,看每层信号的大小。

ReLU(x)=max(0, x)
权重的幅度 ±√6 ÷ √(nin +nout),标准差 √(2 ÷ nin)
nin, nout
该层输入、输出的神经元个数(幅度是格洛罗与本吉奥的取法,标准差是何恺明等人的取法)
常见说法常见说法:ReLU是辛顿等人在2010年发明的
原始资料里:2010年的论文自己就举出了2009年贾勒特等人的尝试。同样形式的激活函数,在1968〜1969年福岛邦彦的网络里就有了(第4章),但2010〜2012年的3篇论文都没有引用福岛。

图所展示的:网络层数越深,反向传递的信号就越容易逐层减弱直至消失。通过ReLU和初始权重的改进,即使有30层,信号也能传到前面。

每层反向传播的信号大小(每格10倍的刻度)
272012・1年3件

交通标志,与谷歌的猫

2012年,深度学习取得了多少成果?

2月,瑞士研究所IDSIA的奇雷尚、迈尔和施米德胡贝尔,用GPU训练了一种方法:把多个深层卷积网络并排放着,再把结果取平均。在德国交通标志的识别(测试1万2569张)上,错误率达到0.54%。据论文,人的错误率是这个数的两倍。不过答案只有43种,难度和1000种照片不能相比。

6月,谷歌和斯坦福大学的勒、吴恩达等人,从YouTube的1000万段视频中各取一张图像,在没有正确标签的情况下,让一个有10亿个连接的9层网络去学习(1000台计算机、1万6000个核心,用了3天)。没有教它,却出现了对人脸有反应的神经元,也出现了对猫脸和人体有反应的神经元。谷歌的博客特别强调,这个网络(译)。

然后是10月的图像识别大赛(下一见开页)。在右边的图里,把猫神经元的成绩与“瞎答时”比一比。

论文的表1:人脸神经元81.7%,猫脸神经元74.8%,瞎答时64.8%(猫的测试)。成绩要和什么都不做也能拿到的分数对比着读。

常见说法常见说法:谷歌的AI能自己认出猫了
原始资料里:论文的重点是人脸神经元(81.7%),猫脸神经元是74.8%。这是个瞎答也能拿到64.8%的测试(论文的表1)。

图所展示的:2012年,深度学习接连取得成果,谷歌的猫神经元在随机作答也有64.8%的测试中得到74.8%。解读成绩时,要与不做任何学习也能得到的分数比较。

282012・图像大赛

大幅领先的第1名,第2名是东京大学

2012年10月的图像大赛上,什么事被说成(译)?

在从照片中识别1000种物体的大赛ILSVRC上,多伦多大学的克里热夫斯基、苏茨克维尔和辛顿的队伍SuperVision,在可以回答5次的规则下,把错误率做到了15.3%(只用大赛提供的数据则为16.4%)。第2名东京大学的队伍(ISI)是26.2%,差了约11个百分点。他们用2块游戏用的GPU,训练了拥有6000万个参数的8层卷积神经网络。大赛主办方写道,这一年(译)。

卷积是这样一种计算:让一个小窗口(滤波器)在图像上滑动,在与窗口形状相同的位置上产生强烈的反应。这个结构,是从1979年福岛邦彦的新认知机(第5章)和1989年杨立昆等人的网络一路传下来的。在右边的图里选一种窗口的形状,让它在图像上滑动。下面的图表是大赛第1名8年间的错误率。

输出(i, j)=Σa Σb 窗口(a, b) × 图像(i+a, j+b)
窗口
3×3的权重表(学习之后,会变成对竖线、横线等有反应的形状)
常见说法常见说法:2012年深度学习突然诞生了
原始资料里:获胜的机制,是1989年杨立昆等人的网络(源头是1979年福岛的新认知机)放大之后用GPU训练出来的。论文也写道(译)。

图所展示的:在2012年的图像比赛中,卷积网络以约11个百分点的巨大优势领先第2名。其内部使用的,仍是从1979年和1989年延续下来的“滑动小窗口”计算。

大赛第1名的错误率(2010〜2017年)
292005〜2012・日本・将棋与跳棋

从棋谱中学习,用多数表决来走棋

将棋软件的强弱,是由制作者的将棋水平决定的吗?

此前的许多将棋软件,对局面好坏的打分方式,是由制作者手工决定的。化学研究者保木邦仁做的Bonanza(2005年公开),让机器学习打分方式,使它走出和职业棋手相同的棋。2006年5月,它首次参加世界计算机将棋锦标赛就夺冠,2007年3月与渡边明龙王举行了公开对局(112手,龙王获胜)。

2010年10月,信息处理学会的“曙2010”(あから2010)战胜了清水市代女流王将。它让日本排名前4的软件思考同一个局面,走被选中次数最多的那一手,是一种多数表决的机制。2012年1月的第1届将棋电王战上,以Bonanza为基础的Bonkras在113手后战胜了已经退役、时任棋士联盟会长的米长邦雄永世棋圣。

右边的图是一种学习方法:不断更新权重,使职业棋手的那一手得到最高的分(本站的示意)。

w ← w+η(f(职业棋手的棋) − f(m))
m
比职业棋手的棋分数还高的那一手
w, η
打分方式的权重,与学习率
f
走棋之后的局面特征(子力得失・玉将的防守・棋子的作用)
常见说法常见说法:要做出强的将棋软件,制作者自己也必须将棋很强
原始资料里:Bonanza的作者是个几乎不懂将棋的化学研究者,但他用让机器从棋谱中学习打分方式的办法,首次参加世界大赛就夺冠了。

图所展示的:不再由开发者规定将棋软件的评分方式,而是让机器学习给职业棋手选择的走法最高分,即使开发者不精通将棋,软件也能变强。

学习次数,与选中和职业棋手相同走法的比例
302001・2011・日本・预言

定下期限的目标与市场预测

这个时代的日本,提出过哪些“到某年为止”的说法?

2011年11月,国立情报学研究所启动了(东机器人君,東ロボくん)。目的是整合1980年以后分得很细的AI研究,并给年轻人以梦想。作为具体的目标,它提出了定下期限的目标:,以及(答案在第10章揭晓)。

十年前的2001年,日本机械工业与机器人行业团体的报告预测,2010年机器人市场约3万亿日元(其中生活领域1.5万亿日元),2025年约8万亿日元。然而实际上,非制造业的下一代机器人市场,每年只有14〜68亿日元,连100亿日元都不到,反而在萎缩(2009年产业技术综合研究所的荒井裕彦的分析)。2015年政府的战略里,也把机器人整个市场写成。

右边的图,把预测和实际按每格10倍的刻度并排放着。

预测 ÷ 实际 = 偏离了多少倍
每格10倍的刻度
1 → 10 → 100等间距排列(两点之间的长度,表示偏离了多少倍)
常见说法常见说法:(机器人研究者之间的通行说法)
原始资料里:工业协会自己的实际调查显示,下一代机器人市场每年只有14〜68亿日元,反而在萎缩(年均 −10.2%)。

图所展示的:这一时期的日本,提出了带有“在这一年之前”期限的预测和目标。机器人市场的预测与实际规模,相差数百倍以上。

结语

工具很老,凑齐才是新的

从数据中学习的工具,许多比“AI”这个词还要老。贝叶斯(1763)、最小二乘法(1805)、S形曲线(1838)、奇异值分解(1873)、主成分(1901・1933)。之后的工具,也有许多诞生于AI之外的现场:蜜蜂分类、假释预测、传输信号的研究、心理测验、动物行为的问题等等。而且同一种方法,常常有许多人各自独立地想到。“谁是第一个”,往往无法确定是哪一个人。

2006〜2012年,新的与其说是想法,不如说是条件。GPU带来的快速计算,许多人贴上标签的海量数据,好的权重初始值和激活函数。这些齐备的2012年,在语音、交通标志、猫、图像大赛上,深度学习的成果接连出现。

还有许多尚不清楚的事。ImageNet的标签,是多少人、在哪些国家、拿多少报酬贴上的?学出来的网络内部发生了什么(从外部检查的尝试才刚刚开始)?把并不独立的东西当作独立的HMM和朴素贝叶斯,为什么仍然能运转得很好?在提升法里,训练数据的错误降到0之后,测试成绩为什么还会继续提高?为什么层数深一些更好?这些,在本章的资料中,都没有给出明确的答案。下一章里,2012年之后,AI在围棋和将棋上战胜职业棋手,东机器人君交出了答卷,“工作会消失”的预测成为全世界的话题。

本章的其他事件(1条。都附有原始资料和可信度)
2006年已核对原始资料说法有出入

让围棋软件变强的所依据的2篇论文

围棋1个局面可下的着法很多,局面的评估也困难,所以象棋那样的搜索方法没能让围棋变强。2006年,法国的库隆(Rémi Coulom)的论文提出了新的搜索方法(蒙特卡洛树搜索,MCTS)。它从某个局面出发,一直随机下到终局,多次重复(蒙特卡洛),按胜率比较着法,越有希望的分支查得越深。库隆用9路棋盘的围棋软件Crazy Stone,赢得了计算机围棋比赛(KGS)的冠军。同一年,匈牙利的Levente Kocsis和Csaba Szepesvári提出了决定该试哪些分支、各试多少次的方法UCT。10年后的AlphaGo论文(2016年)把这2篇作为MCTS的文献引用,并将MCTS与2个神经网络(预测下一手和评估局面)相结合。

原始资料3条,及核对之处

有出入:Kocsis和Szepesvári论文所在的会议是第几届:AlphaGo的参考文献表写着“15th European Conference on Machine Learning”,而Springer的书目则认为ECML 2006是第17届(仅在搜索结果中确认,没有打开原始文献)。哪个正确,本站没有定论。

  1. Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search (CG 2006。作者网站上的PDF)(Rémi Coulom・2006・PDF 1页Abstract / 5 Game Results(pdf…・原始资料)
  2. Bandit based Monte-Carlo Planning (ECML 2006。作者所在大学页面上的PDF)(Levente Kocsis, Csaba Szepesvári・2006・PDF 1页Abstract / 1 Introduction・原始资料)
  3. Mastering the game of Go with deep neural networks and tree search (Nature 529。DeepMind存放处的PDF)(David Silver, Aja Huang等(Google DeepMind・Google)・2016・PDF 1页 摘要・正文第1页,pdf第4至5页中比较的对…・原始资料)