第6章 人工智能:昨日成就与今日现状(2)
要克服“组合爆炸”带来的问题,就需要有能够开发目标领域结构的算法,并且要能通过启发式搜索、计划以及灵活的抽象信息处理方式有效利用已有知识,而这些都是早期人工智能系统所欠缺的地方。其早期系统性能还有一个缺陷,就是过多依赖脆弱且无根据的符号化的表达方式,再加上数据稀缺以及硬盘条件严重限制了计算机的存储容量和加工速度,这些都使早期系统没有很好的方法来控制不确定性。到了20世纪70年代中期,这些问题变得越发突出。在意识到多数人工智能项目无法成功实现我们最初的设想后,人工智能的研究迎来了第一个寒冬:项目被砍,资金缩水,怀疑论甚嚣尘上,人工智能备受冷落。
20世纪80年代早期,人工智能迎来了春天。当时日本发起了第5代计算机系统工程,并专门为该工程建立起良好的公私合作伙伴关系,以确保充足的项目资金。该工程的主要目的在于超越当时的技术发展水平,通过发展大规模并行计算结构为人工智能的实现搭建平台。该工程与日本的“战后经济奇迹”一起受到关注,这一时期,西方国家政府以及商业精英们焦急地寻找能够揭示日本经济成功的规律,以期在其国内复制日本的这种繁荣。当日本决定在人工智能领域大手笔投入时,其他国家都紧随其后。
接下来的几年见证了专家系统的繁荣。专家系统的设计理念是为决策者提供支持工具,该系统是一些基于从一系列由实际知识构建的知识库中得到简单推论的程序,而这些实际知识则是由某一领域的人类专家们提供并被精心编成以代码表达的形式语言。当时有大约几百个类似的专家系统被建立起来。然而专家系统也同样存在着缺陷:小规模系统没什么太大价值,大规模系统则需要在开发、确认和数据更新上耗费大量成本,在运用时往往也会非常麻烦。为了运行一个单一程序,就设置一台独立计算机,这不太现实。所以到了20世纪80年代末期,人工智能的这一繁荣时期也变得黯淡起来。
第5代计算机系统工程并没能实现它的目标,而在美国和欧洲开展的类似项目也面临着同样的尴尬局面。第二次人工智能寒潮不期而至。这时,批评家的悲叹甚嚣尘上:“人工智能研究发展到今天,呈现出来的状态往往是在特定领域取得了极其有限的成功之后,便立刻会在实现更宏大目标的过程中遭遇挫折,而这种挫折往往都是被早期的成功所揭示的。”私人投资者们开始回避任何与人工智能相关的风险。甚至对于学术界人士以及学术资助人来说,“人工智能”一词都让人感到厌烦。
但技术依旧飞快地向前发展,到了20世纪90年代,第二次人工智能寒冬的冰雪开始消融。乐观主义者重燃激情,因为新技术似乎提供了一种有别于传统逻辑范式(经常被称为GOFAI,意为“出色的老式人工智能”)的替代路径,它聚焦于高水平符号处理,并且被20世纪80年代的专家系统发挥到了极致。神经网络和遗传算法等新流行的技术有望在某种程度上克服GOFAI路径的缺陷,尤其有可能会在传统人工智能路径的脆弱性上实现突破。这种脆弱性的主要体现是,只要系统存在一个微小的错误假设,整个结果便会变得毫无意义。让新技术引以为傲的是,它具备了更多的生物有机体属性。以神经网络为例,它具备了“故障弱化”的特性:神经网络的微小损坏通常只会导致整体性能的微小弱化而不会造成系统完全崩溃。更重要的是,神经网络能够从经验中学习,也可以从样本中找到最自然的概括路径以及所输入数据隐含的统计规律。这使得神经网络能够有效解决模式识别和归类的问题。比如,经过声呐信号训练的神经网络能够学会分辨潜水艇、水雷、海洋生物等不同的声音特征,比人类专家还要精确。而神经网络在实现识别不同的声音特征前,也不需要人类事先对声音类别进行定义,或者事先总结出这些声音的不同特点。
简单的神经网络模型自20世纪50年代后期开始被人们熟知,在引入能够训练多层神经网络的反向传播算法之后,人工智能领域又迎来了一阵复苏。多层神经网络在输入层和输出层之间有一个或多个神经元隐含层,能够比之前的简单系统具备更强大的功能。辅之以日益强大的计算机,工程师们便可以用改进的算法建立起能够被很好地应用到许多领域中的神经系统网络。
基于传统算法规则的GOFAI系统虽然逻辑严密,但是性能很差,而神经网络具备类似于人类大脑的特质,比之前的GOFAI系统要好出许多。神经网络还催生出了新的“机制”论,即所谓的“连接机制”,这种连接机制聚焦于大规模平行的精粒度亚符号数据处理的重要性。自那时起,以人工神经系统为主题的学术文献已超过150000篇,并且人工神经系统目前依旧是机器学习的重要路径。
以进化为基础的算法,比如遗传算法和遗传编程,构建了另一条引领人们走出第二次人工智能寒冬的新路径。这类方法在学术领域产生的影响或许并没有神经网络系统那么大,却受到了广泛的欢迎。进化模型能够维系一个备选方案群(方案群本身可以通过数据结构和程序来实现),并通过改变或重组现有方案群中的变量来生成新的备选群。通过应用选择标准(适应度函数)可以让备选群周期性地减少,并且只让其中那些更好的方案群进入下一代。经过数千代重复之后,备选方案池中解决方案的平均素质就会慢慢提高。这种算法能够在运行中生成有效的解决方案来解决范围很广的问题,而这类解决方案可能是完全让人耳目一新且非直观的,比任何一个人类工程师设计出来的东西都更像自然结构。从原理上讲,这个过程可以在不太需要人工初始输入具体而简单的适应度函数的情况下发生。但在实际操作中,要让进化方法得以顺利运行,还是需要一定的技巧和独特设计的,特别是要能设计出一个优秀的表达形式。如果不能对可能的解决方案进行有效编码(也就是将其转换成一种基因语言以匹配目标领域的潜在结构),关于进化的研究道路就会变得蜿蜒曲折且没有尽头,它会迷失在一个宏大的研究空间中或者卡在某个局部环节上停滞不前。不过即便是有了好的表达格式,进化算法也需要极大的计算量,并且常常会被“组合爆炸”击垮。
20世纪90年代,神经网络和遗传算法等研究方法激起了人们广泛的兴趣,为GOFAI范式提供了可替代的路径。但本文在此并不是要为这两个方法唱赞歌,也不是要拔高这类方法在机器学习技术领域中的地位。实际上,过去20年间一个主要的理论进展便是人们更清醒地意识到,目前表面上完全不同的各类技术,是可以被理解为存在于一个共同数学框架中的特殊案例的。举个例子,许多类型的人工神经网络系统都可以被视为对特定类别统计计算的展示(是一种最大似然估计)。这其实是将神经系统视为从实例中学习分类的更大一类算法中的一种,比如:决策树、逻辑回归模型、支持向量机、朴素贝叶斯、KNN算法等。在一定程度上,遗传算法可以被视为一种随机爬山法的演示,是寻找最优化算法大类中的一种。每一类这种算法在建立分类和寻找解决空间上都有自己的优缺点,而这些优缺点都是能够借助计算揭示出来的。不同的算法对处理时间和存储空间的要求都有所不同,从而带来了两个问题:一个问题是算法的预先假设存在归纳偏置,不过这个问题可以通过纳入外部内容来得到缓解;另一个问题就是,如何把算法的内在运行机制向人类分析家们解释清楚。
在机器学习以及创造性的问题解决模式之喧嚣炫目的背后,是一系列特定的计算权衡。理想的状态是实现完美的贝叶斯代理程序(Bayesian agent),即在可获得的信息中寻找出概率最优。当然,这种理想状态是无法实现的,因为没有一台物理计算机能支持它所需要的宏大计算量(延伸阅读1)。但我们仍旧能够将人工智能视为寻找捷径的一种探索:借助人工智能手段,我们可以通过在将其引入特定现实领域并维持其性能的同时牺牲一些最优解或者普遍性,进而逐步靠近贝叶斯理想状态。
回顾一下我们在过去的20多年间,在像是贝叶斯网络这类概率模型的发展中取得了什么样的成果。贝叶斯网络提供了一个在特定领域中表达的概率以及独立条件之间关系的简洁方法。(探索这种关系对于我们克服“组合爆炸”带来的困难至关重要,因为“组合爆炸”本身从逻辑上看就是概率推理中遇到的一个问题。)贝叶斯网络还有助于我们更深刻地理解因果概念。
将特定领域的学习问题与贝叶斯推理中的普遍问题联系在一起的一个好处是,新的运算法则能够让贝叶斯推理变得更加有效,进而能够使许多不同领域实现快速进步。举例来说,蒙特卡洛法就直接被应用到计算机视觉、机器人技术以及基因计算上。它的另一个好处则是能够让不同学科的研究者更容易地汇集他们的研究成果。图表模型和贝叶斯统计学在许多领域都得到了关注,包括机器学习、统计物理学、生物信息学、组合优化以及交流理论。而在机器学习领域,相当多的近期成果都来源于对其他学术领域原创成果的吸收。(机器学习应用在很大程度上就受益于更快的计算机以及更大的数据库。)
延伸阅读1一个理想的贝叶斯代理程序
一个理想的贝叶斯代理程序最初都会设定“先验概率分布”(Prior Probability Distribution),即先把概率赋给各个“可能世界”。但这种先验概率存在着归纳偏置,即认为越是简单的可能世界,越具备较高的概率。
[我们可以将可能世界的简单性问题用一个正式的术语来进行描述,即“柯尔莫哥洛夫复杂性”(Kolmogorov complexity),也就是完整描述一个世界所需要的计算机程序的最短长度。]先验概率还包含了编程者希望赋予程序的所有背景知识。
当代理程序借助传感器接收到新的信息后,它会遵循贝叶斯法则对新信息的分布进行条件化,从而更新已有的概率分布。条件化是一种数学运算,如果先验概率与新的概率不一致,那么数学运算就会对原有的可能世界中的概率进行重新设置。运算的结果就是“后验概率分布”(Posterior Probability Distribution),当然在下一轮运算开始前,这种后验概率又会被视为先验概率。代理程序能够通过观察实现概率聚合,将概率集中在几个不断缩小的与证据相匹配的可能世界中,而在这几个领域中,越简单的那些便有着越高的概率。
打个比方,我们可以把概率视为一大张纸上面的沙子。我们在这张纸上画出大小不同的区域,每一个区域都对应一个可能世界,范围越大的区域对应越简单的可能世界。再想象一下铺在整张纸上的沙子厚度相同:这就是我们的先验概率分布。每当观察者划掉一个区域时,我们就把该区域内的沙子拿走,然后平均铺到其他剩余区域内。整张纸上的沙子总量并没有发生变化,只是随着观察证据的积累,沙子越来越集中到几个较少的区域内。这就是贝叶斯学习的最单纯的模式。(要想计算出一个假设的概率,我们只需要测量出纸上已有领域中的沙子的数量就可以了,这与该假设在其中成立的可能世界相应。)
至此,我们已经定义了一个学习规则。对于代理程序而言,我们还需要一个决策规则。为了实现这一目的,我们给代理程序赋予一个效用函数,即给每个可能世界分配一个数字。具体数字代表着根据代理程序基本偏好设定的可能世界中的渴望度。现在,代理程序在每一步运行中都会选择有着最高期望效用的操作。(要寻找出最高期望效用的操作,代理程序可以先把所有可能的操作都罗列出来,然后计算出特定操作的条件概率分布,这种概率分布是通过观察刚结束的操作结果来不断调整当前的概率分布的。最终,代理程序能够计算出操作的期望值,这个期望值是每个可能世界与被赋予操作程序之可能世界的条件化概率的乘积之和。)
学习规则和决策规则一起构成了代理程序的最优概念。最优概念已经被广泛应用到人工智能、认识论、科学哲学、经济学以及统计学上。但从现实层面上看,因为所需要执行的运算是难以实现的,因而很难设置这样的代理程序。所有的尝试都死在“组合爆炸”这个问题上,我们之前讨论的GOFAI便是如此。为什么会这样?只消考虑一下所有可能世界的任何一个微小子集即可:那些构成一个计算机显示器的子集都陷入无止境的真空状态。一个显示器有1000×1000个像素,每一个像素的状态都有开和关两种。即使是这种可能世界的子集,数量仍旧是巨大的:21000×1000种可能的显示状态,这个计算量比观察宇宙所需的计算量都大。我们连可能世界的子集都无法列举出来,更别说要去计算那些更精巧的独立世界了。
虽然在物理上难以实现,最优概念依旧在理论上备受关注。这个概念给我们提供了一种标准,使我们能够判断启发式的近似算法,也让我们可以在有些时候推理出特定条件下的最优代理程序会做些什么。我们会在第十二章谈到一些人工代理程序的最优概念的替代路径。