陈小平
今天很高兴能够参加这样一个跨学科的讨论。前面两位老师都谈到了哥德尔不完全性定理,我觉得这个定理和人工智能是非常有关联的。我想借今天这个机会,谈谈这个话题和对哥德尔不完全性定理相关的人工智能的一些新思考。思考的出发点是什么呢?是人工智能第四次浪潮。如果我们还站在第三次浪潮的观点上,我们就不会想这么远的问题,不会去和哥德尔定理相关联。
和今天这个话题有关的人工智能的问题,我想有三个方面:第一,人工智能的基本假设。这个假设和哥德尔定理非常相关。第二,现有人工智能技术体系的简单回顾。在这个技术体系中,现在我们发现人工智能主要的挑战——根据我在2019年得到的一个结果——叫封闭性。封闭性又和今天这个主题——认知封闭性或者说局限性——有关系。第三,我再把对前两个方面的一些讨论提炼成几点有待探讨的问题。
关于人工智能,现在大家讨论得很多。人工智能的开创者,大家都知道是图灵。按照我们现在反思的结果,其实图灵的观点没有完全传达出来。图灵关于人工智能完整的观点,表达在他1948年的一篇手稿上。那篇手稿是没有发表的,但这个手稿在图灵图书馆是有保存的。他在其中提出了人工智能的两种观点,一种叫intelligent machinery,中文可能把它翻译成“智能机器”。什么是智能机器?答案在他的手稿里写得非常清楚:用机器代替人的每一个部分。但是图灵发现,在当时的技术条件下,我们无法研究这种智能机器。所以他建议首先研究没有感知能力和行动能力的机器,这种智能叫thinking machines,即思维机器。所以其实在图灵的术语里,这两个短语是有区别的,虽然有的时候它们是被混用的。
图2 哥廷根大学教职工明信片上的希尔伯特
1930年,数学大师希尔伯特80岁退休之际,留下了著名的“23个问题”,寄望后人解决,从而证明数学是一座逻辑严密、无懈可击的堡垒。可惜第二年,博士毕业才一年的哥德尔即提出“哥德尔不完全性定理”,证明数学意义上的“真”和“可证”是两个不重叠的概念,击碎了希尔伯特的完美数学理想。其所揭示的不完全性,不仅存在于数学或逻辑系统之中,而且普遍存在于人类所使用的语言符号之中。
后来他提出的图灵测试,只是针对思维机器。1950年的论文只针对思维机器,完全没有涉及智能机器,原因在他1948年的手稿里已经说了。后来人工智能的发展也完全验证了图灵的这种判断。他从20世纪50年代开始研究思维机器,70年代开始研究智能机器。智能机器人研究和智能机器就非常有关了。历史上还有很多关联,我就不说那么多了。但我不想忽略的一个非常重要的观点是,曾经提到过推理与计算可以相互转化,这在《利维坦》一书里有一段论证,但科学上是不会接受这种论证的。对于这方面,后来一直有相关研究。
1931年哥德尔证明不完全定理的时候,产生了很多中间的结果,其中有一些中间结果非常重要。比如他证明KN可表示和递归函数等价,其中KN可表示一个推理系统,递归函数是一个计算系统,这两个系统等价,就意味着推理和计算等价。但是这个结果也只是涵盖一个计算系统、一类函数,对计算可能不具有一般性。但是到1936—1937年,图灵提出了图灵机以及图灵论题——可计算的都是图灵可计算的。这时候计算机科学就诞生了。将上面这两个结果合在一起,我们可以得到一个推论,我叫它“哥德尔-图灵推论”。在文献里我没看到过这个词,但这个推论是存在的。它可以表达为——大量复杂推理是图灵可计算的,也就是说大量复杂推理可以转化为图灵机上的计算。图灵对这个推论当然太清楚了,以至于他都不会去说这件事,他觉得这样的一个结果太理所当然了。
那么,在这个推论的基础上,他提出了图灵假说,“图灵假说”这个词也是文献里没有的,但我现在认为我们应该提出这样一个术语。图灵假说的意思是,推理、决策、学习、理解、创造等人类智力活动都可以归结为图灵计算。非常明显,图灵假说是哥德尔-图灵推论的一个实质性推广。
哥德尔-图灵推论只是推理和计算的等价物,而图灵假说则将之推广到推理以外,包括决策、学习、理解、创造。图灵在1950年的论文中从头到尾都在讲图灵假说。但图灵假说至少有两千年的科学传统,至少从古希腊的欧式几何开始,一直到现在。
那么图灵测试是什么?图灵测试不是思维机器或者人工智能的定义,而是图灵假说的检验手段。这一点图灵好像没有说清楚,原因可能是他认为明显是这样,他就不需要再说了。所以按照图灵的观点,图灵测试并不是思维机器的定义。这就如同大学教育要通过一系列考试才能够给学生发毕业证书和学位证书,但是大学考试远远不是大学教育的定义。
从这方面来看,这已经和哥德尔的不完全性定理有深层的关系了。但是上面说的是思维机器。关于思维机器,现在我们可以有这么一套理论。有假说有检验,从科学研究规范来说,就有一套较完整的体系了。可是对于智能机器,基本假设是什么?图灵没有说。而其他人有没有说,我没有看到。智能机器的检验手段也不太清楚。所以现在回顾人工智能前三次浪潮,我们发现从基础研究角度,还有很多事情是不清楚的,所以空间非常大,我们能做的事情非常多。
图3 爱因斯坦的办公室,拍摄于他去世后几个小时
哥德尔是亚里士多德以来最伟大的逻辑家和数学家,他与爱因斯坦相见恨晚,二人成为忘年之交。晚年的爱因斯坦说过:“我自己的工作没什么意思,我来上班是为了能同哥德尔一起散步回家。”
我对两种机器再做一个说明。实际上,思维机器只涉及数据层和知识层,不涉及现实层。而智能机器是三层都涉及,它们之间的主要区别在于有没有行动。智能系统通过行动可以改变现实世界。这种行动是思维机器不考虑的。现在我们人工智能碰到的主要困难在什么地方?主要和现实层有关。如果和现实层无关,其实人工智能已经做得非常好了。图灵测试很明显只针对思维机器。我们对图灵测试有很多批评,一方面这些批评是对的,另一方面做这些批评又不公平,因为图灵测试只是针对思维机器,不是针对所有人工智能的。
人工智能技术体系大概有三次浪潮,其中大家了解比较多的是深度学习。深度学习的主要发展阶段是在1986—2006年。在2006年《科学》期刊上发表的一篇论文提出了深度学习完整的技术体系。可以说,深度学习在2006年已经被做完了,但是全世界都不接受,只有这篇文章的作者们相信。后来经高人指点,他们2012年参加ImageNet比赛时,在图像分类问题上将误识别率降低了一半。所以到了2013年,所有参赛队放弃了自己的方法,统统采用深度学习,到了这个时候,深度学习才被广泛接受。2017年AlphaGo Zero(阿尔法元)获胜,人工智能第三次浪潮结束,第四次浪潮已经开始。在三次浪潮中发展出的技术已经非常多,这里没办法全面概括。这其中比较主要的两大类是强力法和训练法。
下面我简单概括一下强力法。它首先要有模型,而这个模型是可解释的。另外它要有推理机或搜索算法。它的模型如果是针对思维机器,那么就是知识库;如果是针对智能机器,那么只有知识库就不够了,还需要模型降射。其实难就难在模型降射。例如,我们有个推理机,也就是一个做推理的程序,然后有个知识库,让它解决具体问题,比如让机器人帮我们就餐。有一些知识我写在了这张表里,用这些知识就可以做推理,比如碗能不能盛米饭,推理机进行推理以后说可以。注意“碗能盛米饭”这个结论在知识库里没有,是推出来的。碗能不能盛汤,经过推理也是可以的。还可以问其他问题,包括非常复杂的问题,都有可能被推出来。这些看上去做得挺好,但其属于思维机器。到了智能机器,还需要有降射,比如知识库有一个符号叫bowl,指的是碗。机器人不能只知道一个符号,它要能找到碗,所以就需要降射。一般情况下,降射问题不大,不同的碗都可以对应起来。
图4 碗还是盘子?
智能机器现在遇到的主要问题是什么?举个例子,破碗是不是碗呢?按照一般的观点,破碗也是碗,对吧?从概念分类来说,破碗也是碗。那么我们就在降射里把破碗也对应于bowl这个符号。于是就出问题了:破碗能不能盛汤?你原来推理出来碗可以盛汤,现在破碗也是碗,所以破碗也可以盛汤。好,破碗盛汤就有后果了,不仅任务不能完成,而且可能产生一些非常严重的后果,比如说汤洒到地上,让老人滑倒,出了生命危险了。
这说明现在整个知识库都有问题。这就很麻烦。好像有一个简单的办法,就是让破碗在降射里不对应于bowl。但其实没那么简单,人工智能比这个复杂得多。降射用什么实现?现在一般是通过图像识别算法来实现的,但是图像算法如果不专门处理,通常一定会把破碗识别为碗。
现在我们对破碗就不好处理了,这样的话破碗就变成一个丢失变元。而这个应用里还有多少丢失变元?这就是“语用的无尽性”问题。我们不知道有多少个类似破碗这样的例子。此外,它们是与环境和任务有关的。如果这个环境里没有破碗,那就无所谓;如果任务不需要用碗盛汤,那也无所谓。人工智能现在碰到的难点在于智能机器的语用挑战,具体地说,是语用无尽性挑战。同样,深度学习也是如此。
刚才说的降射中存在的语用无尽性,它的科学挑战是什么?就是可能存在一些丢失变元,而且不知道有没有。技术挑战是什么?就是有些变元我们即使知道了也处理不了——现实中存在很多这样的例子。
第三个挑战是:如果有丢失变元,或者有的变元处理不了,这两种情况会不会造成致命的后果?如果不会造成致命后果,那就简单了;如果会造成致命后果,那就麻烦了。现在的办法是采用封闭性准则,在满足封闭性准则的情况下排除丢失变元。还有一个办法是强封闭准则,根据强封闭准则,三个挑战都能够得到解决。
下面以AlphaGo(阿尔法围棋)为例。有人说AlphaGo做得那么好,好像没有你说得那么难。所以我分析了AlphaGo,结果发现AlphaGo符合封闭性准则。它的第三代战胜了人类所有围棋高手,第四代以100∶0的结果战胜了第三代。AlphaGo有四项核心技术——两项强力法和两项训练法,其中两项训练法有一项是深度学习,所以它的四项核心技术中只有一项是深度学习。可见现在对人工智能误解太多,认为人工智能就是深度学习——这个细节大家有兴趣的话可以讨论。
为什么AlphagGo满足封闭性准则?上次我在明德讲坛上讲过关于封闭性准则的六个条件,强力法、训练法各有三个条件。AlphaGo是封闭性准则的一个正面的例子。在实际应用当中,强力法、训练法只要是应用在封闭性场景,或者把实际问题封闭化,都没有困难。这种场景非常多。封闭化有全封闭化、半封闭化、柔性化等很多种。传统的工业自动化生产线也是封闭化的一种形式,现在我们把封闭性升级,就支持人工智能技术在自动化上的应用。还有一个半封闭化的例子:乌鸦如果打不开一些坚果,就会利用红绿灯。红灯的时候把坚果放在马路上,然后等汽车把坚果碾开了,下一个红灯时乌鸦就去把坚果捡起来。为什么乌鸦这么智能?分析一下就发现,这件事的本质是乌鸦发现并利用了人类创造的一个半封闭系统——交通信号灯系统。而人类则要创造封闭性,还要尝试超越封闭性,任务就更加艰巨了。
总结一下以上内容。首先关于人工智能中的“人工”,我们该怎么理解?过去我们只关注什么是智能,其实我们还应该关注什么是人工。根据我上面的回顾和反思,我们发现人工智能的“人工”有两项基本含义。第一个含义是:根据图灵假说和客观实际,人工智能软件的运行载体只有计算机,或者更准确地说,理论上只有图灵机,没有别的。所以人工智能软件本质上必须是计算机软件,或者说图灵机程序,没有别的可能。第二个含义是:人工智能是由人工建造的,它的建造原理和方法似乎是没有限制的,比如说不一定是由图灵机建造出来的。一个人工智能系统的软件是一个图灵机程序,但是建造这种软件的方法好像没有限制。
这给我们什么启示呢?我们还是要思考人工智能的硬件和软件的建造方法,它还是存在一些客观限制。因为最终你是要在计算机上去跑这个程序的。如果某些建造方法最终得到的人工智能软件不能变成计算机程序,那就对我们没有用。当然在硬件方面,我主要指的是机器人,那就没有这个限制了,这个空间就大了。之所以20世纪80年代至90年代末我们做人工智能的要做机器人,就是因为人工智能软件的局限性很大,但不清楚硬件有什么局限,可施展的空间非常大。
另外还有一些要考虑的问题,我还想不清楚,希望和大家讨论。比如人工智能和神经科学到底是什么关系?人工智能和计算机科学的关系,虽然上面提到一个限制,于是人工智能的软件部分只是计算机科学的一个分支,国际上很长时间确实是这么认为的,但是现在我们总结分析以后发现,计算机科学处理的是能够语法化的语义,而人工智能需要处理的是语用,所以第一个方面的挑战在于语用能不能语法化,这个问题现在还在研究。
第二个方面的挑战,认为专用人工智能已经成功,未来方向是通用人工智能,这是一个比较普遍的观点。我们分析以后发现,现有人工智能技术可以胜任的其实是封闭性问题,如果没有封闭化,专用也做不好,包括AlphaGo——它下围棋当然是专用的。
图5 1947年图灵在拉夫堡大学参加业余田径协会冠军赛
图灵喜欢用跑步来释放巨大的工作压力。1948年,他参加了英国选拔奥运国手的AAA马拉松比赛,并获得了2小时46分钟3秒名列第五的成绩。1948年的奥运冠军只比他快10分钟。
现在我们碰到了大量实际应用,原生形态是非封闭的,所以需要封闭化。只要封闭化,很多问题都能做好。那么现在就有一个问题:还有一些实际应用没办法封闭化,怎么办?是不是需要通用人工智能技术?这个问题我们一直都在想。最近十几年不仅想,还有大量实验。我们的结果和反思如下:人工智能第一次浪潮做的就是通用问题的处理机制,大家可能认为都失败了,其实没有完全失败。不管怎么说,前三次浪潮都没办法应对语用无尽性挑战,那么对于语用无尽性问题的解决,我们现在认为需要的是随机应变的机制,而“通用人工智能”却不能解决。所以现在看,随机应变比通用更重要。
第三个方面,就是不完全性挑战,刚才刘老师已经有比较详细的介绍。简单来说,任何足够丰富的形式化系统都是不可能完全形式化的。哥德尔也有一个说法,王浩写的那本书里转述了大致观点:人类的直觉,包括智能,是不断发展的。
再补充一个例子。“深度学习三剑客”之一的杨立昆明确说,人类不具备通用智能。人类到底有没有,大家可以讨论。但形式系统不可完全形式化与人类智能的持续发展,二者是一致的。这种一致性对人工智能有什么启发呢?我们对于“到底什么是人类智能”有一个猜想,用一句话来概括,就是相互逻辑不连贯的子系统的共生发育。其中一部分子系统是语用封闭的,通常我们做事做得有效的,都是用语用封闭的子系统;还有一些脑袋里面稀里糊涂一团糟的,都不是语用封闭的。这些人脑中的语用封闭子系统,我们通过实验观察发现,至少一部分是图灵可计算的,而且其中有一部分我们已经实现了图灵可计算。
剩下其余的部分,语用不封闭,我们用开放知识来做。关于开放知识,我今天不去详细展开,只讲大意。最初我们建一个初始模型只考虑一部分情况,还有大量情况我们没有考虑,也没有见过。然后在人工智能系统运行过程中,它碰到了新的情况,这个时候我们让它去识别新的变元。有些情况下我们已经证明这是可以做到的,有的情况下现在还做不到。识别以后,再去让机器人自主地建立一个增量模型,很多情况下是做不到的,但是有的情况下我们已经证明是可以实现的。接下来的挑战就是增量模型和初始模型的整合,这是最难的。我们现在也有一个办法让它们能够整合起来。所以整个开放知识技术体系,实际上就是一种随机应变机制,这在一些情况下已经证明是可以实现的。我就说这些,谢谢大家。