PDF 物理页索引 340
文件中的第 341 页 · 印刷页码:未识别
PDF 物理页索引 341
文件中的第 342 页 · 印刷页码:未识别
附录D 从经验中学习
学习意味着基于经验改进性能。对视觉感知系统而言,这可能意味着基于看到的对象类别的例子,来学习识别更多的对象类别;对基于知识的系统而言,获取更多的知识是一种学习形式,因为这意味着系统可以回答更多的问题;对AlphaGo这样的前瞻性决策系统而言,学习可能意味着提高评估棋局的能力,或提高其探索可能性之树中有用部分的能力。
从样本中学习
机器学习最常见的形式是监督学习。让监督学习算法从一组训练样本中学习,每个样本都标有正确的输出,并且必须产生关于什么是正确规则的假设。通常,监督学习系统寻求优化假设和训练样本之间的一致性。正如奥卡姆剃刀原理所提议的那样,如果假设比实际情况更复杂,系统通常也会受到惩罚。
让我们以学习围棋中的合法着法问题来说明这一点。(如果你已经知道围棋的规则,那么你会很容易理解;如果不知道,那么你会更加同情这个算法的学习计划。)我们假设算法从如下假设开始。
对于所有棋步t、所有位置l,
第t步棋在位置l处落子是合法的。
PDF 物理页索引 342
文件中的第 343 页 · 印刷页码:未识别
如图22所示,现在轮到黑方行棋。算法尝试A点,这是合法的。B点和C点也是合法的。然后算法尝试D点,这里有白棋的棋子,因此是非法的。(在国际象棋或西洋双陆棋中,这是合法的,因为吃掉棋子就是这种情况。)算法尝试E点,这里有黑棋的棋子,因此也是非法的。(在国际象棋中这也是非法的,但在西洋双陆棋中是合法的。)现在,从这5个训练样本中,该算法可能提出以下假设:
对于所有棋步t、所有位置l,
如果l在下第t步棋时未被占据,
那么第t步棋在位置l处落子是合法的。
然后算法尝试F点,并惊讶地发现F点是非法的。在几次失败的尝试之后,它最终判定了以下几点:
对于所有棋步t、所有位置l,
如果l在下第t步棋时未被占据,
并且l没有被对手棋子包围,
那么第t步棋在位置l处落子是合法的。
这有时被称为“禁止自杀”规则。最后,算法尝试了G点,在这个例子中G点是合法的。算法苦苦思索了一会儿,或许又尝试了几次之后,最终确定了一个假设——G点是合法的,虽然它被对手包围了,但是因为它吃掉了D处的白子,因此立刻就变得不被包围了。
PDF 物理页索引 343
文件中的第 344 页 · 印刷页码:未识别
PDF 物理页索引 344
文件中的第 345 页 · 印刷页码:未识别
从规则的逐步发展中可以看出,学习是通过对假设进行一系列修改来适应观察到的例子而实现的。这是学习算法可以很容易做到的事情,也是第一个要点。机器学习研究人员设计了各种巧妙的算法来快速找到好的假设。在上述例子中,算法在表示围棋规则的逻辑表达式中进行搜索,但是假设也可以是表示物理定律的代数表达式,表示疾病和症状的概率贝叶斯网络,甚至可以是表示某些其他机器的复杂行为的计算机程序。
第二个要点是,即使好的假设也可能是错误的。事实上,即使在为了确保G点合法而进行了修正之后,上面给出的“G点是合法的”假设也是错误的。这需要涉及“劫”或“同形重复”<sup>[1]</sup>——如果白棋刚刚走在D点吃掉了黑棋在G点的棋子,那么黑棋不能立即走在G点重新吃掉白子,因为这会形成重复局面。请注意,这条规则与程序目前学到的完全不同,因为这意味着合法性无法从当前局面确定。相反,程序还必须记住先前的局面。
苏格兰哲学家大卫·休谟在1748年指出:归纳推理,即从“特定观察结果”到“一般原则”的推理,永远无法得到保证。<sup>[2]</sup>在现代统计学理论中,我们要求的不是保证完全正确,而是保证发现的假设大致正确。<sup>[3]</sup>学习算法可能“不走运”,它看到的是不具有代表性的样本,例如,它可能永远不会尝试像G点那样的着法,认为那类着法是非法的。它也可能无法预测一些奇怪的边缘情况,比如不重复规则中一些更复杂的、很少出现的局面所涵盖的情况。<sup>[4]</sup>但是,只要世界表现出一定程度的规律性,这个算法就不太可能产生非常糟糕的假设,因为这样的假设很可能已经被某个尝试“发现”了。
深度学习技术在媒体上引起了所有关于人工智能的喧嚣。它主要是一种监督学习的形式,代表了近几十年来人工智能领域最重要的进步之一,所以值得我们了解它的工作原理。此外,一些研究人员认为,深度学习技术将在几年内催生出人类水平的人工智能系统,因此,评估深度学习技术是否名副其实是个好主意。
图22 围棋中的合法着法和非法着法
PDF 物理页索引 345
文件中的第 346 页 · 印刷页码:未识别
在特定任务的背景下理解深度学习是最容易的,例如学习区分长颈鹿和骆驼。给定二者的一些已标注的图像,学习算法必须形成一个假设,让它可以对未标记的图像进行分类。从计算机的角度看,一幅图像只不过是一个巨大的数字表,每个数字对应一个图像像素的三个RGB值中的一个。因此,我们需要一个以数字表作为输入,预测类别(长颈鹿或骆驼)的“长颈鹿—骆驼假设”,而不是以棋盘局面和走子着法作为输入,确定该着法是否合法的“围棋假设”。
现在的问题是,这种假设是什么样的?在过去50多年的计算机视觉研究中,人们尝试了许多方法。目前最受欢迎的是深度卷积网络。让我来解释一下它的原理:它之所以被称为网络,是因为它代表了一个复杂的数学表达式,这个表达式由许多更小的子表达式以规则的方式组合而成,并且组成具有网络结构的形式。(这种网络通常被称为神经网络,因为它们的设计者从大脑中的神经元网络获得了灵感。)它之所以被称为卷积,是因为这是一种奇特的数学方法,奇特之处在于,网络结构在图像的整个输入过程中以固定的模式自我重复。它之所以被称为“深度”网络,是因为这样的网络通常有很多层,也因为这个名字听起来令人赞叹,而且有些诡异。
图23展示了一个简化的示例(之所以简化,是因为真实的网络可能有数百层和数百万个节点)。网络实际上是一幅复杂的、可调的数学表达式的图画。如图所示,网络中的每个节点对应一个简单的可调表达式。左边输入图像像素值,网络在最右边的两个节点输出数值,表明图像是骆驼和长颈鹿的可能性有多大。请注意第一层的黑线,它表示局部连接的模式是如何在整个层级中重复的。每个输入值都有一个可调整的权重,就像图中的“量度控制旋钮”一样。然后,输入通过加权和一个门函数,然后到达节点的输出端。通常,门函数会抑制较小的数值,而允许较大的数值通过。
PDF 物理页索引 346
文件中的第 347 页 · 印刷页码:未识别
我们只需要调节这些量度控制旋钮,减少对标记样例的预测误差,即可通过网络进行学习。原理就是这么简单,没有魔法,也没有特别巧妙的算法。找出如何调整旋钮以减小误差的方法,是对微积分的一种直接应用,用来计算改变每个权重将会如何影响输出层的误差。这就产生了一个简单的公式,用于将误差从输出层反向传播到输入层,同时调整旋钮。
这个过程奇迹般地奏效了。对于识别照片中的物体这项任务,深度学习算法表现出卓越的性能。这种概念首次出现在2012年的ImageNet竞赛中,该竞赛提供了由1 000个类别的120万张标记图像组成的训练数据,然后要求算法标记10万张新图像。<sup>[5]</sup>英国计算心理学家杰弗里·辛顿(Geoffrey Hinton)是20世纪80年代第一次神经网络革命的先驱,他一直在试验一个非常庞大的深度卷积网络,该网络有65万个节点和6 000万个参数。他和他在多伦多大学的团队实现了15%的ImageNet错误率,比之前的最佳成绩——26%的错误率,有了显著提高。<sup>[6]</sup>到2015年,数十个团队都在使用深度学习方法,他们将错误率降到了5%,与人类花费几周时间学习识别测试中的1 000个类别的错误率相当。<sup>[7]</sup>到2017年,机器的错误率降到了2%。
PDF 物理页索引 347
文件中的第 348 页 · 印刷页码:未识别
大约在同一时期,基于类似方法的语音识别和机器翻译的水平也有了相应的提高。总体来看,这是人工智能最重要的三个应用领域。深度学习在强化学习的应用中也发挥了重要作用,例如,学习AlphaGo用于评估未来可能局面的可取性的评价函数,以及学习复杂机器人行为的控制器。
到目前为止,我们对深度学习如此有效的原因还知之甚少。最好的解释可能是深度网络很深:因为它们有很多层,所以每一层都可以学习从输入到输出的一个很简单的转换,而许多这样的简单转换加起来,就是从照片到类别标签所需的复杂转换。此外,深度视觉网络具有内置的结构,可以强制实现平移不变性和尺度不变性,这意味着,无论狗出现在图像中的哪个位置,无论它在图像中看上去体型有多大,它都是一只狗。
深度网络的另一个重要特性是,它们经常能发现图像的内部表示形式,正是这些形式捕捉到了图像的基本特征,例如眼睛、条纹和其他简单形状。这些特征都不是内置的。我们知道它们在网络里,因为我们可以用训练有素的网络进行实验,看看是什么样的数据会使内部节点(通常是靠近输出层的节点)亮起。实际上,我们可以用不同的方式运行学习算法,以便调整图像本身,使之在选定的内部节点产生更强的响应。多次重复这个过程就会生成现在众所周知的DeepDream(“深梦”)或Inceptionism(“启发主义”)神经网络生成的那种图像,如图24所示。<sup>[8]</sup> Inceptionism本身已经成为一种艺术形式,它生成的图像不同于任何人类艺术。
PDF 物理页索引 348
文件中的第 349 页 · 印刷页码:未识别
PDF 物理页索引 349
文件中的第 350 页 · 印刷页码:未识别
虽然深度学习系统取得了令人瞩目的成就,但我们目前所理解的深度学习系统远不能为通用智能系统提供基础。其主要缺点是:它们是电路;它们是命题逻辑和贝叶斯网络的表亲,虽然它们有很多奇妙的特性,但它们也缺乏用简洁的方式表达复杂知识的能力。这意味着,在“原生模式”下运行的深度网络需要大量的电路来表示相当简单的常识。反过来,这又意味着要学习大量的权重,因此需要的样例数量多得离谱,比全宇宙所能提供的还要多。
有人认为,大脑也是由电路组成的,神经元相当于电路元件,因此电路可以支持人类水平的智能。的确如此,大脑是由原子构成的。原子确实可以支持人类水平的智能,但这并不意味着仅仅将大量的原子聚集在一起就能产生智能。原子必须以某种方式排列。同样的道理,电路也要按一定的方式排列。计算机也是由电路组成的,无论它们的存储器还是它们的处理单元都是如此,但是在计算机能够支持的高级编程语言和逻辑推理系统运行之前,这些电路必须以某种方式排列,并且必须添加软件层。然而,目前还没有迹象表明深度学习系统能够自己开发出这种能力,而且要求它们这样做也没有科学意义。
我们有更多的理由认为,深度学习可能会在远低于通用智能的水平上停滞不前,但我写这本书的目的不是诊断所有的问题:深度学习业内<sup>[9]</sup>以及业外<sup>[10]</sup>的其他人士已经注意到了其中的许多问题。关键是,仅仅靠构建更大更深的网络,靠更大的数据集和更大的机器,还不足以创建人类水平的人工智能。我们已经在附录B看到了DeepMind的CEO德米斯·哈萨比斯的观点,即“更高层次的思考和符号推理”对人工智能至关重要。另一位著名的深度学习专家弗朗索瓦·乔莱(Francois Chollet)说:<sup>[11]</sup>“即使有大量的人工标记数据,许多应用对于当前的深度学习技术而言也是完全无法实现的……我们需要从简单的输入到输出的映射转向推理和抽象。