3.3 论指令(二)
关于指令系统的另一个假定是:指令的数目有限,可以明确列举,但我们却不确知其详情。有人必然要问:既然“不确知其详情”,那么我们如何运用指令来模拟思维并构造理论呢?
首先,“不确知其详情”是逻辑学、生命科学、智能科学和人工智能技术之现状的要求,我们不能超越具体学科的知识限制而提出过于武断的假设;其次,反过来,假如我们提出一份指令清单,而且硬要宣称这份指令清单就是“真实的”人脑指令的“完整集合”,这又有什么意义呢?算法理论的成立并不一定非得要求明确的指令清单,一个未包含明确指令清单的理论并非就是无用的理论。应当把所假定的指令系统与我们眼下实际上能够具体展示出来的指令系统相区别。理论本质上是一种不能完全得到验证的假说,而理论的应用过程就是不断检验理论的过程;理论的检验虽然没有尽头,却可以无限逼近。在这一点上,算法理论与其他的科学理论都是一样的。
关于人脑存在一个指令系统的假定,首先是为了借用计算机的结构体系和工作原理,以便引入迂回生产方式、知识、知识发展以及种种动态现象,从而构造社会科学原理。需要认识到的是,如果我们认为沿着这条路线来构造理论原理是正确的,那么,不假定人脑存在一个指令系统,一切都将无从谈起。没有指令系统,就没有指令与信息之别,也就没有迂回式生产,就没有“计算速度”之说。即使我们认为人的思维很重要,我们也将不知道如何对之进行描述,也就更谈不上对思维进行理解和分析,一系列重要的原理与方法问题(例如创新)也就将继续保持含混不清的状态。所以,指令系统是算法理论的基石,也是算法理论区别于其他形形色色的理论的一个重要特点。
具体指令清单的提出途径有两条。第一条途径是把它完全等同于计算机的指令清单。这样一来,计算机便是社会生活的虚拟的“当事人”,计算机所能做到的事情在原则上和性质上便是人脑可以完成的,同时,人工智能当前所面临的局限性也便构成了算法框架的局限性。在《算法》中,我们表明了这样的观点:鉴于主流经济学所演示的计算原则上大都可以在计算机上完成注46,据此我们有理由认为算法框架至少不劣于主流新古典框架。
对于算法进路注47的社会科学研究而言,基于计算机模拟的、高度技术化的方法目前并不是本书关注的重点。在原理问题得以解决以前,直接进入技术性研究毕竟是不适宜的,因此,本书将不在这条路线上展开详细论述。
厘清指令清单的第二条途径,便是尝试建立“人工的指令清单”。由于我们所使用的自然语言远不如计算机语言精确,实际上我们很难直接在计算机语言所定义的“指令”级别上来讨论问题,因此,严格地讲,我们所讲的“指令”其实都只能作为一种“高级语言”来理解,它们大体上相当于高级语言中的“命令”或“运算符”。这是“人工的指令清单”的第一层含义。“人工指令”与机器指令首先具有这样一个区别:对于某些人工指令,在稍加分析之后,我们便会发现它可能是由一些更基本的元素构成的(在《算法》中我们举过“联想”的例子),而构成不同人工指令的基本元素可能会有相互重合之处,因此,人工指令势必不如机器指令那样地具有“基本性”。显然,只要那些元素并不是完全重合的,“基本性”的这种减弱暂且也是可以接受的。为了避免术语上的烦顼性,我们暂且也不对“指令”与“命令”做原则性的区分。另外,在本书中,除非特别指明,“指令”一般都是指人工指令。
我们说“不确知指令清单的详情”,主要是指我们眼下无力去穷尽所有的指令,因而,我们在任何级别的语言环境中暂时均不能做到建立一份“完整的”指令清单。当然,这句话的另一个含义是说我们没有把握做到把我们认为应当作为指令的任何东西即刻变成“算法可计算的”,即可在计算机上实际运行的。假如我们有把握做到这一点的话,机器指令清单便可以与人工指令清单相等同了。“人工的算法进路”首先系指这样一种方法,即我们先建立一份“人工的指令清单”(无论它是否完整),然后假想人脑中有一台虚拟的计算机(可称为“虚拟机”)来运行这些指令进行信息加工,由此形成了通常所谓的“思维活动”。个人的任何思维活动都只由他脑中的这台虚拟机产生。由“人工的指令清单”所组成的语言是人脑中的“底层语言”或“基本语言”,自然语言是这种“基本语言”的高级形式,就好比计算机算法语言是机器语言的高级形式一样;因而,我们必须认为,自然语言在原则上可以“还原”为这种“基本语言”。
我们假定计算机指令清单是人脑指令清单的一个子集,这意味着我们承认人的智力系统中可能存在着计算机所不具备的指令。这些独特的人工指令是什么?我们在下一节将有所探讨。这一假定的目的在于保证理论模型中的当事人(算法人)在实质特征上就是真实的人,两种人在思考时所采用的基本资源是相同的;于是,我们对于计算机原理的采用不必依赖于“人工智能是否可行”这个问题的“最终答案”。假如两种人之间还存在什么差异的话,这种差异也将是次要性质的(比如采用了串行作业方式)。因此,研究者的思维与当事人的思维是可比较的。在近似的意义上,研究者可以采用“以己度人”的方式来推断当事人的思维活动,也可以分析、评价和预测它们。此外,既然真实的人采用了冯·诺依曼架构,由于我们研究者自己就是真实的人,那么我们的思维活动也就只能是采用冯·诺依曼架构的,进而,我们研究者的指令清单也就与当事人的相同。在此情况下,当我们研究者通过“人工的算法进路”来推测当事人的思想时,“指令清单”便成为了一个“中间环节”,通过相互“对冲”,结果是我们暂且就不必再使用“基本语言”了,也就是说我们不必在“人工的算法进路”的实行过程中一定要搞清楚“人工的指令清单”的具体内容了,我们只使用自然语言就可以了。
有了这个认识,我们现在对于传统的手工作坊式冥思苦想的研究方法也就获得了一种新的理解,即这种方法的实质就是一个算法人(研究者)在推测另一个算法人(当事人)。这个视角很重要。笔者认为,如果我们从这个角度出发,便很容易厘清理论研究工作的性质、意义、可能性及其限度:由于大脑基本结构和基本能力是相同的,因此人际比较与推测是可行的;同时,由于所采用信息与知识的差异,以及计算中难以避免的随机因素,人际的相互了解是有限度的,因而理论研究工作的效力也是有限度的。
通过以上论述,我们可以注意到,算法理论所借用的“计算机元素”实际上是相当少的,在很大程度上只是形式上的(如果读者同意冯·诺依曼架构只是一个“形式”的话)。社会科学是人与人之间的“游戏”,而工具终归是工具。我们并没有对人性施加过于武断的、以致特别不能让人接受的实质性限定。两份指令清单的差异也许不重要,也许很重要;即使对于持后一种观点的人而言,我认为他的观点并不能实质性地妨碍他接受算法理论。但愿读者能够得出跟我一样的结论。
算法进路的社会科学研究,至少在前期的“原理构造”阶段,仍将继续进行手工作坊式的冥思苦想,仍将只是探讨思想、原理和方法,只不过,讨论问题的方式这时已经发生改变了。在后期,当理论原理臻于成熟时,理论工作的重心将会不可避免地转移到计算机模拟上来;但是,基于“人工的算法进路”的理论原理与计算机模型应当在性质上区别开来。计算机对人的模拟所能达到的真实程度,取决于那时人工智能技术的发展水平,二者不可混为一谈。