蒸汽机被看作近代社会开始的标志,或许也可以把计算机看作当代社会开始的一个标志。计算机正在成为一件视而不见的事物,比如我们不会把手机当作计算机,但它确实也是计算机,或许有人会说,手机是通讯工具,但就会有人给你解释,“网络交换机”就是相互联接的计算机,手机不过是一个终端。
当手机升级为智能手机后,问题也进了一层,手机是人工智能吗?或者稍专业一点,计算机是人工智能吗?这些看似简单的提问总是让人摸不着头脑,在硬的技术解释与软的常识的哲学性之间,人们往往没有共同的语言。
本文首先弄清楚这些似乎简单的问题为什么这么难,在这个基础上才可能去理解“算法”、“人工智能”等概念的性质和本质。
| 题解
按照丘奇-图灵论题,“计算机是人工智能吗?”这个问题与下例问题等价:
-
算法是人工智能吗?
-
图灵机是人工智能吗?
我们可以作“是”和“不是”的情况分别进行考虑:
-
计算机是人工智能吗?
如果回答“是”,就无法回答下一个必然问题:为什么会有与计算机不同的“人工智能”的广泛观念和事实 ?
如果机器回答“不是”,那末这个不同于计算机的人工智能又是什么?
这种提问和回答都要求对计算机和人工智能进行基本性质的比较和判别,这不是简单分类的问题,在商店、家中可以随习惯而定,但在生产、研究的前沿技术领域和战略决策的认知观念上,要求对问题的进行本质性的判断,这些问题的提出和回答牵涉到算法、计算机、图灵机、丘奇-图灵论题、“判定问题”、“图灵检验”等基本理论,实际上要求把可计算性理论,不确定性理论和人工智能统一在一个更大的平台上进行考察、研究,这种关于问题本质的研究是科学理论和哲学上的最困难问题。
比如著名的希尔伯特第十问题,图灵以“图灵机”的构造过程完满回答了,这个问题的提出和解决就是计算机时代进步的深层动力,现在,对计算机与人工智能的基本性质和关系的判断同样会有深刻的影响,在这种高度上理解,“图灵检验”就具有希尔伯特-图灵机的“判定问题”类似的意义和价值,本文以智能哲学的角度提出和分析这些问题。
| 计算机与算法:丘奇-图灵论题
计算工具是人类所有工具中最特别的一种,最古老又最新潮,它的物理工具性与抽象形式紧密缠绕,以前只有一个直觉的观念:计算是机械步骤,现在又有一个丘奇-图灵论题:计算机是“算法”。
当你儿时数手指头的时候,你就是在用算法了,虽然今天我们以电子计算机代替了手指头,算法的性质并未变,而且,我们却仍然难以回答“什么是算法?”这样的问题。人们认为数学家和科学家都是最聪明的人,更何况是伟大的数学家和科学家,他们之中对这个问题最聪明的回答就是那个丘奇-图灵论题,这似乎有些“皇帝的新衣”的感觉,我们都只看到计算机,我们不知道什么是算法,当你数手指头时,是在用算法,但手指头不是算法,现在我们可以说,软件是算法,但与机器何干?
因此面对“人工智能”时,我们只是同样在问,机器中的“智能”与人脑袋中的智能都是算法吗?这些问题的一个关键性质“算法和人工智能究竟是基于语法的还是基于语义的?”就是哲学、逻辑学、语言学、计算机和人工智能等不同领域中的共同的基本问题,这个问题最令人困惑在于物理形式与抽象形式相互紧密缠绕,层层交织。丘奇—图灵论题脱离不了这种直觉性质:我们知道皇帝穿了龙袍,但是我们看不见。
| 著名的“希尔伯特第十问题”
我们用概念去定义一个事物,可以用“外延”或“内涵”的方法,简单地说,前者就是举例:什么是“可计算的”东西?后者则是论理:什么是“可计算性”?前者容易,后者很难。数学家就是用前一种方法定义“算法”的,在数学中有一门经典的专门理论——递归函数论,递归函数就是“可计算的”函数类,这样就从外延上“精确地”定义了“算法”,就是说,“算法”就是“可计算的”。对此或许大家都不满,大数学家希尔伯特换一个角度提出问题:能否 “发明一种办法”(To devise a process)去判定,任何一个丢番图方程问题是可计算的?
这就是著名的“希尔伯特第十问题”。
图灵理解这个问题的真正要求,既然数学中的递归函数无法直接回答什么是算法这样的问题,那就得用非数学的方法去表现算法,图灵模仿人的算法过程,创造了“图灵机”,图灵机最大的意义就是展示了算法的机械过程性质,把数学意义上的“可计算的”表达为“可计算的”过程,揭示了算法的“能行性”本质,所以“丘奇-图灵论题”说,“能行可计算的”就是图灵机可计算的。
借助于图灵机,图灵回答了希尔伯特第十问题,但不是“回答”某个确定的答案,而是合理地拒绝:这个问题是不可判断的!希尔伯特第十问题的提出和图灵的拒绝式回答,现在统称为“判定问题”。
这个问题的提问和回答方式之间的关系太拐弯了,后来人们简化了对这个问题的理解,把“判定问题”(Entscheidungsproblem)换成了“停机问题”(the Halting problem),但这种解释却拐了另一个大弯,采用逻辑悖论的方式,设计一台计算机的自我指涉,即让一台计算机去计算自己,从直觉上就能理解,这是不可能的。
但这种对“判定问题”的“停机”解释方法却带来了另一个更大的麻烦,如果一台计算机不能判定自己是不是“可计算的”,就可能推翻了“可计算性”这个概念,“停机问题”意味着——“可计算的”机器不能肯定自己的“可计算性”。就是说,“停机问题”这种悖论式解释“判定问题”的代价只是将问题推进到一个更深的缠绕层次。
实际上,图灵对“判定问题”的拒绝式回答,是建立在“图灵机”的建造过程上,可计算的算法机器是可以建造的——这就是“图灵机”,但图灵说,具有一般性“判定”能力机器是造不出来的!所以希尔伯特第十问题无解,这是图灵对希尔伯特第十问题的判定,就是说,图灵对“判定问题”的拒绝是人的判断而不是机器得到的答案。
这种不同也正是“停机问题”与“判定问题”的分别。“停机问题”的解释方法则是设想用一台建造好的图灵机去判断自己,虽然得到了想要的结果,但却否定图灵机本身,虽然否定了“判定问题”也否定了算法本身。
对“判定问题”和对这个问题的解决的分析,给我们现在要回答的问题在认识论和方法论上以启示,这些都成了NP理论和智能哲学的基本案例。
| “图灵检验”(Turing Test TT)
从“判定问题”的历史发展中得到的启示,我们就可以把“什么是人工智能?”的问题转变成一个判断问题:有何方法去判断一台机器是不是人工智能?实际上这个问题也是图灵最先提出来的,是图灵设计的方法,现在称为“图灵检验”(Turing Test TT)。
但“图灵检验”与“判定问题”(Entscheidungsproblem EP)大有不同。EP实质是要求以算法判断算法,TT则是以人去判定算法能力与人的思考能否分别,实际是人工智能与人的智能的判别,但判断者是人,是人的标准,因此,如果为TT制定了一个具体的形式化的标准,这个标准就可以由另一台机器充当了,但这也就把TT变成了“判定问题”。这就是TT与ET的不同。
正因为TT是由人充当判定者的,所以TT是开放性的,就是说,TT是一个检验模式,人们可以在这个模式上设计具体的检验,设计相关的具体标准,去做不同水平的检验或试验,在这个意义上,“图灵检验”与“图灵机”具有相似性。所以TT不会有一个统一的具体化的标准。
TT的最大意义是通过人的判断模式去展示“什么是智能的?”,即以有判断能力的人去判断人的智能与机器智能的相同与不同。
TT建立在一个前提上,人是能够理解被判定的对象和这些对象包括判断者在内之间的符号交流能力的,这也意味着事先肯定了人的理解能力是人的基本智能,因此TT是建立在人的理解能力基础上的人的判断。
历史性地理解,就是把建立在算法能力基础上的EP推进到建立在人的理解能力基础上的判断,前者只是通过“什么是可计算的?”表现对算法本质的理解,后者则是通过“什么是可理解的?”表现对智能本质的理解,如果人与机器交流中能够相互“理解”,并且这种相互理解是人的标准,则机器才具有与人相同的“智能”。这种高度对人与人工智能的比较是至关重要的。
对TT的分析表明,人的智能不只是“理解”,而且是“理解‘理解’”,因此,虽然TT没有回答“什么是智能?”,但展示了“什么是智能的?”。实际上,现有的人工智能的成果表现了“什么是人工智能的?”,但回答不了“什么是人工智能?”,在这些比较的意义上,对TT的本身就是智能哲学的科学展开形式,比如赛尔的“中文屋子”就是这样的一个著名案例。
所以我们对TT的理解,并不是限于如何去进行实际的检测,一台实际机器是否达到了某个机器标准,这只是回答“什么是人工智能的?”问题。TT的价值在于提供了一种设计人工智能判断的一般性原则,正如图灵机是所有具体机器的模型,也可以说,TT是所有具体的检验人工智能标准的一般模型。对TT的研究实质上指出:我们对人工智能可以期望什么。因此TT是一个具有开放性检验模式,TT本身就具有“不确定性问题,NP”的性质,TT的具体标准类似最优近似的方法(NP-algorithm),通过不断地去研究、设计TT的具体标准,而推进对人工智能的理解。
对TT研究的启示是:人的智能和人工智能不可能存在一般性的比较标准。——这也可以理解为,对“智能是可以判断的吗?”这样的问题的一个拒绝式的回答。如果是这样,也就是把“判定问题”发展成人工智能领域中的一个高级版本。
更重要的是,我们可以在这些基础上,进一步去研究人的“智能”与“理解”的内涵关系,这也可能是智能哲学的一个最大的贡献。
| 五、“人工的”与“人工性”
对“人工智能”定义一部份在于“人工的”与“人工性”的区别,前者是事物的属性,后者是事物的本质,前者是概念的外延性枚举,后者是与“自然性”相对的本质性问题,只能在哲学的高度上讨论。
大体说来,非自然的创造物(不涉及宗教)就是“人工的”,机器当然是“人工的”,所以“人工智能”大体上就等于“机器的智能”,即机器智能具有人工性,这只是说,人工的机器是可以模仿人的智能的机器;但如果把“人工智能”理解成“人工的智能”,就是“承诺”了“人工性智能”与“自然性的智能”的某种同质性了,这种理解是导致“强人工智能”甚或“超人工智能”观念产生的基本原因。
比如“机器人”是“人工的人”还是“人的机器(工具)”?前者似乎是“人是机器”的反演,是本质性的;后者则只是同义反复:人的=人工的。
所以“人工智能”这术语不仅在“智能”这个概念上是不确定的,在“人工的”这个用语的修饰性上也是不确定的。“人工性”对立于“自然性”,不能由“人工的”综合得来,这些关系实质上是传统哲学中的“共相”、“唯名论”、“唯实论”、“怀疑论”等等解不开的结的再现。
因此当我们问和回答 “计算机是人工智能吗?” 远远不像表面看去那么简单,比如,可以理解为“计算机是一种机器智能吗?”这与“算法只是机器的‘思考’吗?”相同;但如果理解成“计算机是人工的智能吗?”意义就相当于“算法是人造的智能吗?”这些不同的理解有层次上的不同,往往导致互不针对、“鸡同鸭讲”的无谓论争,使问题变得更困难,这正是这些看似简单的问题却成为最无头绪的论争的原因。
正是“人工智能”这个概念本质上的不确定性,所以不存在一般意义上的“人工智能”的准确定义,所以TT标准也只能是一个开放的课题,在这些意义上,人工智能只是一个不断地接近人的本质的发展道路。
| 六、如何回答“计算机是人工智能吗?”
基于上述的思想,以机器的能力标准而言,算法只是机械步骤,不能以超过自身的能力“自发地”进行发明、创造或自己学习,具体的计算机最大能力最终是由厂家和程序员们决定。在这个标准上,计算机不是“人工智能的”,也不是“人工智能”。(根据我们的对Agent的解释,计算机不是Agent。)
注意,在计算机中建模进行的基于ANN的“机器学习”等方法,是将“人工神经网络”函数化、算法化的结果,这种研究方法具有两者的混合性质,在这种情况下,不能混淆地回答“计算机是人工智能吗?”这样的问题,理清这种情况,正是本文的目的之一。
现在也可以简单地回答“计算机可以思考吗?”的问题了:计算机可以“像人”一样进行思考——但这只是“像”人的“思考”而己,就是说,计算机(算法)不等于人的“思考”,也不等于“人工智能”,更不等于人的“思考”。
| 七、人工智能发展中的两个互补路线
“人工智能”这个术语最先是1956年达特茅斯会议上提出并被广泛接受的,此前图灵1950年论文题目是“计算机器与智能”(Computing Machinery and Intelligence),但文中提出的问题是“机器能够思考么?”(Can machines think?)如同他1936年论文中所做的那样,图灵避免了对“机器”和“思考”的直接定义,而是设计了“模仿游戏”,也就是TT,在人们的一般的观念中,“思考”就是智能过程,所以TT也可以称之为“智力检验”,因为TT是检验机器的“思考”能力,“思考”比“智能”一词更多地分离了“智能”这个概念中的不确定性的部份,类似的也有人用过“人工思维”(Artificial Thinking)这样的术语,所以计算机作为TT中“机器”一方,但这并不妨碍TT作为人工智能的评价方式,TT是一个开放性的模式。
人工智能研究领域一直存在“算法计算”与“Agent代理(计算)”两种路线,对这种现象的认识与争论已经成了人工智能的哲学问题[1],它们在相对的意义上有各种称呼,如符号主义、机能主义、逻辑或程序主义、联接主义等等,达特茅斯会议上提出的“人工智能”这个概念大体包括了这两个方面的工作而被大家接受,但如果区分了算法计算与人工智能,“人工智能”这个概念就更多地具有明斯基所说的Agent (代理)的意义,因此Agent 是狭义、严格的“人工智能”。
但正如计算机中建模的基于ANN的人工智能研究具有混合性质一样,芯片化和基于互联网的ANN研究也离不开算法,两者总是在混合中发展的,但从理论上分清两个方向的功能原理,对指导人工智能的发展是很重要的。
对那些不耐烦啰嗦形式的人来说,一个粗糙但不失本质的定义是可以接受的:计算机是人的思维的工具,人工智能是人的智能的代理(Agent)。
参阅:
[1] 人工智能哲学,玛格丽特·博登编,刘西瑞等译,上海译文出版社,2001.
[2] 周剑铭,智能哲学:人与人工智能, 网文
[3] 周剑铭 柳渝,机器与“学习”——寻找人工智能的幽灵,网文
[4] 周剑铭 柳渝,人与机器的“战争”与“学习”,网文
[5] 柳渝,不确定性的困惑与NP理论