康德的道德哲学乃是奠基于“理性存在”(rational being)的概念:“不仅全部道德规律,连同其原则……应用于人……是赋予其作为理性存在的先天的规律。”①无疑,“理性存在”较之于“人性存在”(human being)在方法论上有着巨大的优越性:它可以摆脱人性存在的人类学经验和实践知识的限制,从而能够很好地实现康德“制订出一个纯粹的、完全消除了一切经验、一切属于人(类)学的东西的道德哲学”②的意图。
然而,康德本人似乎并没有预先对“理性存在”的内在结构做出太多的描述,要获得关于这一核心概念的知识,只能艰难地从康德连环推进的论证去寻找, 这就难免歧义和纷争。
“理性存在”实际上可以看作一个方法论模型。在思想实验盛行于的哲学和伦理学研究中的今天(关于思想实验在伦理学研究中的作用和局限性,可参阅詹德勒③和哈兰德④的论著),康德的“理性存在”完全可以被看作是一个思想实验模型。现代人工智能和计算机理论的先驱者图林所构造的“图林机”在某种意义上就可以看作为“理性存在”,事实上,土林本人就不否认可能存在自由意志的计算机:“以数字计算机思想为基础,派生出了一种……‘带有随机元件的数字计算机’。它们包含涉及掷骰子或某种等价电子过程的指令……有时将这种机器描述为具有自由意志。” ⑤
本研究目的是试图通过构造带有自由意志的图林机——我们称之为“道德图林机”或“康德机”——来寻求道德哲学的一个新的方法论基础,在这里,我们着重探讨道德图林机的构造原则。
一 图林机的意志性说一台计算机具有自由意志,必定会遭到强烈的质疑。因此,我们首先面临的问题就是要为计算机可以具有自由意志提出一系列辩护。
反驳计算机可以有自由意志的理由常常被如此提出来:因为计算机是人设计的,它的意志事先已经包含在人的设计中了,因此,计算机不可能真正具有自由意志(德雷福斯曾经以相似的方式反驳人工智能可以具有心灵的论断,认为程序设计者为了进行认知匹配,必须事先确认整个可能的选择⑥但是,这样一个理由也可以用来反驳人具有自由意志:人是被人生出来的,被教育出来的,因此,人没有自由意志。
诚然,反驳者可能辩护说,虽然人是被人生出来的,教育出来的,但是,具体内容却不是被规定的,不像计算机的程序是早就被设计好的。可是,计算机的程序还并没有涉及具体的内容,程序还只是等同于语法规则、理性法则(塞尔就是这样看待计算机程序的①),不是具体的知识。对单个的具体的人而言,他所习得的人类语法规则或理性法则也可以看作是早就“设计”好了,不管它们是先天地存在的(如康德的认识论先天性、乔姆斯基的心理学先天性或进化生物学的生理先天性),还是历史地设定的(即在长期实践中形成的)。
因此,只要我们承认人具有意志性,我们就不能否定计算机也可以具有意志性。计算机的意志性是先天分析的,这取决于计算机的概念本身。计算机的意志性就是其指令性。计算机就是在程序指令下运行,如果没有指令,计算机就不成其为计算机。因而,计算机概念与指令性的关系是分析性的,我们从计算机的概念中就可以分析出指令性。
那么,这种意志(指令)何以是自由的,即是服从理性规则的并且是自律的呢?在作出这个说明之前,我们应该区分因果世界中的计算机和理性世界中的计算机,前者确实是人造的,无论其硬件还是软件;但是,后者却不是一台实际的计算机,而是指理性上的可能性。
我们可以设计这样一个思想实验来论证计算机如何作为理性存在并具有自由意志。假定我们碰巧得到了一台完美的计算机,它可以自主地运行,而不需要人的操纵,这台完美的计算机的结构及其运行是完全符合理性法则的。现在,我们将它的结构和运行情况拍摄或记录下来。这个被记录下来的独立于原来的创造者的计算机,我们称为一个计算机“概念”。很显然,一旦这个计算机的“概念”独立于原来的创造者之后,就在理性世界中获得了自己的自主性和客观性。一方面,即使再也没有人能够创造它的实际模型,我们也不能说它不能存在;另一方面,即使它曾经是被人创造出来的,我们也不能否认它——这个计算机“概念”的客观性。这个计算机概念就在理性世界中客观地存在着。更进一步地说,这样的一个计算机“概念”是自由的,因为它并不需要外部的力量介入就可以在理性世界中自主地运行。
又假如,碰巧有一天,这个计算机“概念”进入了某位工程师的脑海里,并被重新创造出来,那么,这个根据计算机概念创造的计算机实际模型是他律的吗?当然不是,虽然我们在实际的计算机模型中加进了物理的东西,比如硬件结构,但是因为这些结构是根据计算机“概念”产生出来的,是计算机概念自主地利用了物理客体,因此,这样的计算机模型仍然是自主的或自律的。
我们也不能因为这个物理模型是被人创造出来的,而认为它是他律的,因为工程师的工作不过是根据计算机概念的要求进行的。
更明确地说,一旦这些计算机指令可以独立于外界经验和对象而运行,它就具有自由意志,至于人对程序的设计,不过是满足计算机概念的要求而已——我们可以说,这并不是他律,而是“计算机概念”对人提出的要求,是计算机自由意志的实现。当人在设计程序时,是人为了程序而行动,而不是程序为了人而产生。在这里,人只是作为程序的“手段”,而不是相反。
对上述论证,人们还可以提出一个看似有力的反驳:计算机概念中并没有包含“制造”计算机的指令或目的,这个目的或指令只能由工程师本人来产生;而计算机作为这个目的或指令的产物(即被制造出来的)必然是他律的。
然而,我们之所以提出由工程师来制造这样一台计算机,无非是为了“迎合”我们的常识,我们完全可以设想计算机可以经由像人类进化那样上亿万年的过程而进化出来。在理性上,如果一些程序能够使得一台计算机自由地运行,那么,这些程序是由人设计产生,还是随机产生、进化产生或以出生的方式产生等,不过是个偶然的过程。计算机作为一个物理存在在理性世界中并不是重要的;或者我们可以说,在指令的王国中,是否有一个物质性存在(从而是对象的或他律性存在),并不是重要的——事实上,图林对计算机的在最初构想就完全是逻辑的,而不是物理的②。
二 图林机指令的逻辑类型在解决图林机可以有自由意志的问题之后,我们需要具体地关注图林机意志(即指令)的逻辑形式。我们在这里集中关注它内部存储的指令将如何导致行动,这个过程完全可以等同道德哲学关心的问题,即道德主体或理性存在如何在意志指引下产生行动。任何理性存在的意志都依据特定的准则(maxim)行动,而这些准则在计算机中就是操作程序或指令。
根据图林最初的构想和论证,一台通用图林机至少具备三个结构:一个读写头、一个存储带、一个控制器。根据通用图林机原理设计出来的程序,一个指令的逻辑结构可以像我们最基本的计算机语言那样,是“如果…那么…”(“if…then…”)的条件句模式。因为我们的目的是探讨道德图林机,所以,我们这里只考虑行动性的指令(条件)句,例如“如果饿了,那么去取面包!”显然,这个句式是“事实(条件)+指令”的结构。
现在,我们来考虑一种奇特的情形:在什么情况下一台正常的计算机无法产生行动。当然,一种简单的情形是,没有指令发出的时候计算机不产生行动。显然,这类没有意义的问题并不是我们所关心的,因为没有指令就不构成计算机。我们真正关心的是这样的情况,当接受两个相互冲突的指令时,计算机将会如何,例如,让计算机同时执行指令“消灭苍蝇!”(A)和“放生苍蝇!”(B)。显然,在这种情况下,计算机将不产生任何行动,无论是否存在苍蝇。
我们这里给出的是两个无条件的指令,可以称之为“定言指令”。那么,如果在指令是有条件的——我们可以称之为“条件性假言指令”——情况下,它们是否是冲突的呢?
例如,现在有“如果梅花开了,那么消灭苍蝇!”(A`)和“如果菊花开了,那么放生苍蝇!”(B`)两个指令,并要求同时执行。因为菊花和梅花不同时开放,所以,即使我们发出这两个指令,它们也不会冲突;可以想见,计算机会产生相应的行动——如果这两种花至少有一种开放并存在苍蝇的话。当然,如果在温室条件下这两种花恰好同时开放,那就另当别论了。
在这里,我们试图表明,A`/B`情形不同于A/B,表示的是不同的指令,而不是冲突的指令。
根据上面的论述,我们可以将指令关系区分为两类:冲突关系和非冲突关系。前者表示在任何情形下同时执行都无法产生行动的两个指令间的关系,而后者表示在同时被执行时并非总是无法产生行动的两个指令间的关系。因为冲突关系是“在任何情形中”都存在,所以,处于这种关系中指令只能是无条件的定言指令,而非冲突关系的指令则既可以是假言指令,也可以是定言指令。非冲突关系,我们也可以称之为相异关系。
指令之间的相异关系在逻辑上又可以区分为两类:(1)并非所有情况下冲突(或有些情况下冲突),(2)所有情况下都不冲突。所有情况下都不冲突的关系又可以包含两种情形:1)相同关系或同一关系,即两个指令具有同一替换关系,例如,“说真话”与“说一个真值为真的句子”;2)包含关系,例如“说真话”与“说该句真话”,按照弗雷格概念与对象关系的理论,“该句真话”是处于“真话”概念下的一个对象。所有情况下都不冲突的指令关系显然是一种相容关系。
我们前面的论证也表明,当A和B这两个处于冲突关系的定言指令在各自赋予假言条件后(即分别转化为A`和B`)可以转变为相异关系。
由于假言指令与定言指令可以相互转化,在道德图林机中,我们就不必考虑假言指令,而只需考虑定言指令了。如果指令就是计算机的“意志”的话,那么,定言指令则是一种康德意义上的“自由意志”。我们将这种图林机称为康德式的图林机(Kantian Turing Machine)、道德图林机或径直简称“康德机”。
对于康德机,我们可以提出这样的问题:没有事实作为条件,这样的指令时如何产生,以及,这样的指令如何启动计算机呢?图林机之所以能够运行,乃是因为它要依据读写头的输入,而这种输入就是条件指令句式中的事实性条件。康德机没有了事实性条件,那就意味着它没有读写头的输入;既然没有输入,那指令如何被激发呢?
解决这个问题就要求助于图林所说的“随机元件”了。我们可以在程序库中放入各种定言指令,然后在计算机内部安装一个元件,这个元件随机地激发指令库中的定言指令。当然,人们可能反驳说,这个随机过程仍然包含了一个事实性的假言条件,例如,我们可以说“如果随机结构为a,那么执行指令A”。
然而,这种困难是可以消除的。随机元件是物理性的(例如,可以是一个掷骰子的过程),而不是指令性,它的条件性并没有写入指令内容中,指令本身还是定言的。这个过程犹如人通过神经活动产生一个意图,但神经事件并不是意图的内容。
必须说明的是,我们并不赞同随机元件可以产生自由意志的说法,它至多只是产生自由意志的内容。随机事件并非依据理性规则行动,相反,它是自然律的一种极端形式,是他律的,不自由的。
三 消除指令的假言性:道德图林机的构建原则我们可以在逻辑上论证,除了相容关系,其他相异关系总可以在某种条件下相互冲突,因为我们总可以构造一个经验条件,使得“执行行动A”与“执行行动B”是相互冲突的。这就是康德道德哲学通常所面临的道德两难情形。例如,“不说谎”与“不杀人”这两个指令,在大部分情况下不会冲突,但是,在特殊情景之下,如康德已经辩护过的情形即“不说谎”就意味着“杀死邻居”的两难情景中,它们就是冲突的①。这相当于计算机有一个这样的指令“杀掉不说谎的人的邻居”。
由于所有相异关系都可能在特定经验中导致两难,如果要求一台道德图林机必须保持任何指令(包括假言指令)都不冲突,那么其中就只能有相容关系的指令。于是,一台道德图林机就至多只能产生一类行动(证明略)。这显然不符合我们常识中的道德主体的特征。
如何解决这个问题呢?一个可行的办法就是消除“杀掉不说谎的人的邻居”这类指令。
“杀掉不说谎的人的邻居”这样的指令虽然看起来是一个定言指令,但是,它实质上是一个伪装的假言指令:“如果一个人不说谎,就杀掉他的邻居”。逻辑上,假言指令总是可以还原到一个定言指令之下:要么,通过其对目的的实现来还原到定言指令之下,例如通过“说该句真话”的手段性指令来实现“说真话”的目的性指令,从而使得前者还原到后者之下——这种还原也将相容关系的后一种情形兼并了,即将“说该句真话”这个伪装的定言指令还原或兼并到“说真话”这个指令之下;要么,通过将对象还原到属于概念之下(或者一个概念包含于另一个概念)的关系,将条件性指令还原到无条件性指令之下,例如,“杀掉不说谎的人的邻居”这样的条件性指令可以还原到处于“杀人”这个无条件的定言指令之下。
因此,我们应该通过将假言指令还原到定言指令之下来消除假言指令。
然而,我们立即注意到,上述结论会导致这样的困难:“说真话!”也可以看作为一个假言指令。
我们可以将“说真话!”这个指令看作为“说话!”这个指令的技术指令,从而将前者还原到后者之下。例如,可以将“说真话”假言化为“如果一个句子是真的,那么说它”——因为“说真话”也可以条件化为“说具有真值为‘真’的句子”。因此,“说真话!”也是可以作为假言性指令来消除的,还原到“说话!”这个指令之下。
然而,即使如此,事情也并没有完结,我们仍然可以将“说话!”还原到“行动!”之下,即将“说话!”看作是“行动!”的假言指令。例如,“如果要行动,那么说话。”当然,这里的说话也是一类特定的行动。
我们似乎可以继续反问,“行动!”这个指令还含有经验内容可以消除吗?看上去,“行动!”这个指令也是有经验内容的。因为有行动和非行动的区分,所以,行动本身应该属于一个更广泛的概念如“存在”之下。然而,这种理解将会导致与“指令”概念的矛盾,因为非行动意味着非指令性,非行动已经超出了指令概念所要求的外延。“指令”这个概念中包含了“行动”成分,指令必定是一种行动的指令,也就是说,指令与行动的关系是分析性的,分析关系是纯粹形式的。我们不可能说“如果要存在,那么行动。”这个句子是没有意义的,因为“存在”与意愿无关,是一个事态。
因此,我们可以说,“行动!”作为一个指令已经完全消除了经验内容和手段内容,即,一个纯粹形式的指令就应该是“行动!”
根据我们前面的讨论,他律指令应该包括三种情形:包含在康德思想中的以经验知识为条件的指令和作为实现目的之手段的技术性指令,以及我们所说的冲突性指令。
我们上面的论证无疑已经排除了包含在康德思想中的两种情形,但是,“行动!”这个不含经验内容和手段内容的指令可以排除冲突的情形吗?
看起来似乎也是可以的排除,因为既然这个指令是纯粹形式的,也就不包含内容了,而一切冲突似乎都是在有内容的情形中才存在。但是,这个论证的依据是有问题的,冲突也可以是形式的,正如逻辑学中的矛盾也是纯粹形式的一样。例如,“不行动!”就与“行动!”冲突,而前者也是一种行动方式,它并不是“非行动”;也就是说“不行动!”和“行动!”都是“动作性的”或“行动性的”。因此,为了确保指令的非冲突性,我们就似乎应该在“行动!”这样的指令中加入一个条件:“在没有指令冲突的情形下”。
然而,这样一来,我们就又遇到了一个新的困难,“行动!”这个指令成为有条件的了,从而很可能是他律的。
如何解决这个问题呢?只要我们看到这样的现象,两个相互冲突的指令无法导致计算机产生行动,我们就会明白,“在没有指令冲突的情形下”这个条件并不包含在指令中,而是对能够运行的指令之间的关系的一个描述和说明。也就是说,这个条件是在指令之外的,而不是指令的一部分。况且,这个条件恰恰是用来排除冲突性他律指令的。因此,这个条件是非他律的。
我们可以说,这个条件是“设计”指令的原则,而不是指令本身的条件。但是,“设计”这个词容易引起误解,使人想到道德图林机是他律的,所以,我们宁愿使用“先天”这个词语。这个条件的先天性也表现在,如果没有这个条件,计算机就很可能死机,从而不成其为一台计算机;也就是说,这个条件是保证计算机成为计算机的条件。
因此,我们就获得了一个关于道德图林机指令性的“先天”原则:“如此行动,当且仅当没有指令冲突时!”这个原则就是道德图林机的构建原则。
四 结语本文构建道德图林机的目的是为了提供一个当代道德哲学可接受的方法论基础(尤其是在为辩护道义论时)。这一动机的出发点乃是基于当代道德哲学对形而上学的普遍拒斥。图林机作为计算科学的模型,无疑可以化解这种拒斥。我们这里所作的论述似乎并没有超出康德道德哲学的论证,而只是利用道德图林机的概念重新说明了康德的道德哲学的自律原则,即行动意志的一致性。然而,本文并不是直接从康德文本出发的说明或诠释——惟其如此(不从文本出发却可以得到康德结论的方式),才真正确证了这一方法论基础的可靠性。
然而,我们却可以发现我们的论证与康德文本论述的对应性或一致性。康德在《道德形而上学基础》中的论证是从大众道德(或普通道德理性知识)推进到道德形而上学,继而推进到实践理性批判的。在康德那里,大众道德是基于经验知识的道德,具有相关于外在目的的他律性,从逻辑形式上看,大众道德准则的表述形式是假言的或条件性的,这种准则事实上对应于通用图林机的指令。当康德将大众道德推进到道德形而上学时,要求一个可普遍化的道德准则,这样的准则应该是定言的,而这种道德准则对应于我们的道德图林机指令,即康德机。
康德的实践理性批判围绕这样的问题展开:纯粹理性何以是实践的?这个问题的回答要求理性具有一种原因性,即自由意志的因果作用,因此,实践理性中包含了自由意志的因果性问题。这个问题在康德看来是理性无法合理地回答的。事实上,道德图林机也包含了这样的问题或困境,这就是塞尔在“中文屋”思想实验中所展示的困境;结合康德道德哲学,我们可称之为“康德-图林困境”。我们将在别的地方详细探讨解决这一困境的方案,在那里我们意图通过图林机与动物的联结体(所谓“图林机动物”)来解决问题,这里要指出的只是,解决道德图林机困境的新型图林机将对应于康德实践理性主体,我们可以称之为“实践机”或“塞尔机”。
最后,还必须说明的是,自律原则还只是涉及单个道德主体自身的原则,还没有涉及道德主体之间的关系,一旦涉及这种相互关系,康德的定言命令公式就将从道德图林机之间的关系之中重新论述出来(详见另文)。
