西蒙的科学发现模拟工作是重新“发现”吗?——对几个主要质疑的剖析,本文主要内容关键词为:西蒙论文,几个论文,发现论文,科学论文,工作论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
中图分类号:B026 文献标识码:A文章编号:1003—5680(2008)01—0028—06
人工智能创始人之一,也是认知心理学创始人之一赫伯特·西蒙(Herbert A.Simon,1916—2001)领导的研究小组,在20世纪70年代至90年代进行的科学发现心理学(the Psychology of Scientifie Discovery)工作,在科学哲学、认知心理学、人工智能、科学史、社会学乃至认知科学等领域产生了极为广泛的影响。[1] 然而,他们开发的这些AI系统模拟历史上重要科学发现进行的重新“发现”工作,究竟能不能被视为是对历史上一些重要科学定律的再发现(Rediscovery)?所有关注该工作的人对此却有着截然对立的态度。这个问题对于我们理解西蒙小组研究的意义以及理解科学发现是至关重要的。
基于对其科学发现模拟工作的案例分析我们认为,一些学者是因为对西蒙的“发现就是解题”的发现观持有疑义,而认为BACON等程序只是完成了一个普普通通、类似学生在学习中解决数学题的任务。如果说这种质疑反映出一种与西蒙发现观迥异的发现观,那么说这些科学发现模拟工作根本就不是重新“发现”,则对西蒙他们的工作来说就是致命的反对。文章通过剖析针对BACON等科学发现模拟程序的几个最具代表性的反对意见,说明这些发现程序的工作实质,厘清西蒙小组的科学发现心理学工作对科学方法论研究的真正价值。
一 AI系统的再发现只是“金子进,金子出”吗?
许多人对所谓机器能做发现或重新发现持一种嗤之以鼻的态度。他们认为,既然程序的启发式和算法是由人来设计的,那么,设计者已经将自己的发现意图事先编好程序装入计算机中了。几位不同研究领域的学者对BACON系统就表明了这种批判态度。
康斯特布尔(George Constable)在他1986年主编的《人工智能》一书中,引用了莱奈特(D.B.Lenant,设计了AM)对BACON的否定:“你给BACON成对的无错数据,于是BACON就得出一个数学表达式将输入与输出联系起来,……你可以称之为发现了物理定律,如果你想这么叫的话,但你真的是很难那么叫它”。[2]
布兰尼根(Augustine Brannigan)则批评BACON程序说,“程序是在收集好的数据基础上进行操作的。……并且之所以选择那些数据是因为它们已经被证明是成功的。金子进,金子出(Gold in;goldout)”[3]。而且怀疑机器发现的人们还质询说:如果计算机真的能做发现,那么让它面对某个实验室记录中许多杂乱无章的、人们没有进行整理的数据,它就应该做出我们不知道的发现;如果计算机真的能进行重新发现,那么我们给它任意历史上科学家使用过的真实数据,它都应该能重复出实验的结果。
面对怀疑者们假设的这两种情况我们的回答是,不仅BACON、现在任何AI程序都不会得出令你满意的结果。
一方面,现有的机器发现程序都只是模拟了发现之复杂过程中的某一个方面的若干细节特征。BACON是模拟人类从数据中发现规律这方面的发现工作。要完成的这个总任务都包括哪些子任务呢?从BACON.1开始,使用了探测数据规律的启发式,它完成了找到数据模式的子任务,但是它重新发现的只是少数几个简单函数关系;到BACON.3,修改了启发式使其不区分数据和假设,于是BACON发现的定律在范围上变广、在复杂度上大大增加,重新发现了理想气体定律、库仑定律、开普勒行星运动第三定律、欧姆定律和伽利略的单摆和匀加速定律。当继续给BACON新版本增加新的启发式,如定义理论术语、寻找公因子等等,BACON系统能够重新发现18世纪末至19世纪初的许多化学定量定律,如普鲁斯特定比定律,道尔顿倍比定律,盖伊—吕萨克定律以及康尼查罗的原子量精确测定方法。
但是BACON只是一个重新发现经验规律的计算机系统,不能发现解释性定律、不能设计实验、不能完成许多发现任务。而且尽管BACON的启发式越来越丰富,BACON发现的经验定律也还是有限制的,它不能发现所有的经验定律。因为这中间有一个发现任务的确定性和一般性之间的矛盾。
计算生物学学者米洛萨夫列维奇(Aleksandar Milosavljevic)从他的专业信息理论领域给出对发现的理解,“发现过程可以看成是一个无限的搜索关于观察数据的更简明编码的过程”,所以选择的编码语言的优化就很重要。但是他从自己的实际工作中得出的体会是,“编码的最优选择总是在两个相互矛盾的准则之间的平衡:一个是实现假定最少(这样的编码语言有足够的一般性);一个是能够在合理的时间内计算出短的编码(这样的编码语言足够明确)”。[4] 米洛萨夫列维奇认为,由于在完成一个发现任务时不可避免确定性和一般性之间的矛盾,所以实际工作中“一种编码语言是根据数据中预期可能存在的模式来设计的”。
以BACON为例,其设计者之所以选择OPS(Official Production System,通用产生式系统)语言而不是其他的计算机人工智能语言,正是与BACON程序所要解决问题的模式有关的。BACON系统的启发式用OPS写成,其主要开发者兰利(Patrick W.Langley)认为该语言“为模拟人类行为提供了坚实的基础。”[5] 这是一种著名的知识表示系统,它依据人类大脑记忆模式中各种知识块之间普遍存在的因果关系或“条件—行动”式,用“IF THEN”型的产生式规则来表示知识,以此可以方便、灵活地建立人类问题求解的认知模型。
对于AI来说,解决不同的问题就要选择与问题相适应的不同的语言,这就向我们表明了AI发展的一个客观限制条件。米洛萨夫列维奇还根据算法信息理论(algorithmic information theory)第二条主要定理得出结论,不存在一个通用的发现算法,即由机器做通用性的推理是不可能的。
由此我们联想到为什么50年代AI起步时西蒙小组致力于通用问题求解,而80年代以来,西蒙却一再强调发现是一个复合的事业?强调“没有任何一个机器发现程序能包括发现的所有方面”?西蒙小组转而致力于开发多个程序分别完成发现的不同子任务,事实上正是发现的复杂性使然,以及人类的认识规律使然。细想一下,人类的科学事业不也正是循着同样的轨迹吗?学科划分越来越细,新学科越来越多。每一位研究者终其一生能在某一学科的某个研究领域内有所造就已经很不容易了。像西蒙这样的科学大师,研究横跨人工智能、认知心理学、经济管理学,但他的主要基础还是AI。他利用AI建模提出关于人类思维的理论,将这一理论用于解释科学领域中人的认知活动,这构成他的认知心理学成分;将这一理论用于解释经济领域中人在决策时的思维活动,这又构成了他的经济管理学研究。贯穿他研究生涯的还是一条主线,利用计算机模拟解释复杂认知活动中可能的规律。
回到BACON的发现问题的话题。事实上,虽然通用问题求解程序已经不可能实现,但是成功的机器发现程序在完成某一类发现任务时仍然是具有一般性特征的程序,BACON正是这样的程序。前面已经讨论过它在经验定律发现方面具有一般性。
另一方面,当西蒙面对这种批评时常常回应说:如果说BACON的工作是“金子进,金子出”,那么即使你、我、还有真正的科学家本人也一样如此。
西蒙认为,发现就是“目标状态不完全确定”的任务,“不完全确定”不是完全不确定,完全不确定的问题将不是科学研究的问题,因为我们还不知道应该从何着手来进行实验,而且观察渗透着理论,科学家本人在从事一项观察时总是有计划的、有目的的,所以任何发现任务中的数据都不可能是杂乱无章的。他在做实验时会对实验进行设计:从哪些方面研究当前的现象,做哪些实验,实验的具体步骤,每个步骤要测量哪些数据,每个步骤以什么属性为自变量等等。任何做过物理学、化学、生物学等实验的大学生都会对析因设计之类的策略有些感性认识。
所以为了使BACON模拟人的思维,同时也检验那些我们在人类发现过程中总结出的特征,像析因设计、探测常量、形成新概念、表示方式等等策略是不是真的对一个发现任务有效,就将这些人类思维中运用的策略设计成启发式装入AI系统中。这不能叫“金子进,金子出”,因为人类科学家也是这样做的。
但还是有一个问题,人类科学家具有这些研究策略是“自动”产生的,而AI系统的这些策略却是人类设计者从外面给它“装”进去的。人类是主动的,计算机是被动的。我们看看西蒙对这个问题是怎样回答的:
虽然科学发现是科学工作者的个别研究活动,但是科学工作者个体是处在一个更大的科学社会结构之中的,通过公开出版物这块“黑板(blackboard)”(以及直接的合作),大家相互联系在一起。假使一个人独自工作,他的研究过程也要受到作为先前的社会影响之结果储存在他的记忆中的那些知识和技能的强烈影响。在这种意义上,所有关于发现的研究都是社会心理学的或者甚至就是社会学的。[6]
社会与科学家个体产生冲撞,产生的影响留在科学家的记忆中,因此科学家的记忆就是知识储藏库。而记忆内容就是最初的并且是边界的条件,还是社会情境的替代品。我们研究科学家获取和应用的这一知识基础,这一知识基础是输入发现过程的一个基本部分,在研究这一知识基础时,我们考虑了社会情境。[7]
乍一看我们会以为西蒙在宣传SSK的社会因素决定论!但是接下来,西蒙批评当代一些科学社会学者将社会因素的作用夸大为科学知识的增长被“外部社会因素(extrinsic social factor)”所塑型,我们看出西蒙在这里的阐述是对1989—1991年的一场论战[8] 的延续。西蒙论述中强调的社会因素的作用实际上特指“内部社会因素(intrinsic social factor)”。从西蒙的分析中我们知道,所谓内部社会因素的含义是:有“黑板”中前人的思想、研究成果,也有同时代其他科学工作者的思想和研究成果。此外,科学工作者个体还要同别人相互协作,从而发生相互影响。
西蒙如此强调发现是社会性的事业,甚至是内部社会因素所塑型的“社会学的”事业,一方面是批评SSK,另一方面才是他在这里谈机器发现的真正用意:他对社会性的强调是在为BACON等AI发现程序辩护,是在回答人们对BACON的工作是所谓“金子进,金子出”的质疑。事实上,科学家本人也离不开他置身其中的那块黑板,他研究中运用的那些策略、他研究中运用的背景知识,不是都来自那块黑板吗?所以,我们给BACON或其他AI发现程序装入启发式和作为边界条件的知识背景,不正是恰恰体现出:BACON在模拟科学家个人的发现“情境”吗?人们可能还会说人类是主动吸取知识,而BACON等AI程序是被“喂给”的。这个问题西蒙和兰利他们都非常清楚,这也是他们对未来发现系统的期望——能够自动从“黑板”中获得知识。而人类心智具有的自动获取知识的那种天然的“禀赋”究竟是什么,计算机能否模拟的问题,则属于复杂的、一般性的人工智能哲学问题,在此我们暂不讨论。
二 AI系统只是“拖网捕捞数据”的机器?
还有一种否定BACON等机器发现系统的发现意义的意见。他们认为,BACON等程序的工作是靠无遗漏的“蛮力搜索”完成的,或者说BACON就是撒网式“捕捞数据”的机器。布兰尼根认为所谓人工智能的进展,就是计算机取代人的许多生产线式的单调劳动。[9] 他的这种观点几乎完全否定了计算机技术中人工智能这个领域的独特价值。科林斯(Harry M.Collins)也明确说“BACON等程序就是在撒网式地无遗漏地搜索数据”。[10] 此外,科学哲学研究者孔宪中(Edwin.H-C.Hung.)不像前面两位对BACON以至整个AI都持否定态度,他对AI热情肯定并关注AI的哲学问题。但是他在分析BACON时,也是错误地将BACON的发现方法等同于逐一试错。
孔宪中的分析失之偏颇,首先在于他仅以BACON.1为BACON系统的代表,而BACON.1是BACON系统最原始的版本,它的发现功能及它的启发式相比后来版本还很不成熟。BACON系统的开发者认为,较成熟、完整和具有逻辑一致性的是BACON.3,BACON.4和BACON.5,因此他们以及别的科学哲学研究者一般都以这三个版本的启发式和发现过程为代表来评价整个BACON系统。
其次我们的考察表明,即便是BACON.1也不是用孔宪中描述的方法搜索函数关系的。孔宪中分析,BACON.1在重新发现开普勒行星运动第三定律(表达式为D[3]/P[2]=c,即一个行星距太阳的距离D的立方被行星的周期P的平方所除,其值为一常数)时,面对所给D和P数值,试图发现任意的常数函数关系,在启发式指导下,从最简单的乘积函数关系开始,BACON.1被限制尝试一组D和P的关系,从简单到复杂依次是DP,D/P,P/D,D[2]/P,P/D[2],P[2]/D,D/P[2]……等,直到它试到第十四个假说即D[3]/P[2],发现它与数据吻合,于是停止试错,将D[3]/P[2]当作经受了检验的假说接受下来。
因为从BACON.1开始就具有最基本的三个探测数据规律的启发式:(1)递增,(2)递减和(3)常量,这在前面已经讨论过。所以,根据这三个基本启发式以及其他的丰富启发式的指引,BACON系统发现函数关系的过程是这样的:
以BACON.3再发现开普勒行星运动第三定律为例。在第一层数据中,BACON.3探测到随距离D增加,斜率S(即1/P)值减小,于是A递减启发式指引BACON.3定义乘积DS。BACON.3考察DS值,发现不是常量。这时,系统启动第二组发现规律启发式组中的一个产生式规则,将DS作为第二层数据中的一个变量,考察它与D的关系。于是,递归地运用A递减启发式及相应规则,定义新的理论术语D[2]S(即D[2]/P),考察D[2]S与DS的关系,由A递减启发式,定义D[3]S[2](即D[3]/P[2])这个理论术语,该术语被发现为常量,于是启动C常量启发式创建第三层次描述簇,在其中D[3]S[2]取定值。
由此可见,在发现D[3]S[2]=c这个关系过程中,BACON并不是如孔宪中认为的那样,盲目地从简单函数关系到复杂函数关系逐个实验。而是在启发式指引下,初步类似人的智力那样高度选择性地或者说“聪明地”快速逼近那个最终结果。BACON设计者兰利等人的原话说得更明确:“BACON不做那类不加任何限制的、尝试一切的归纳,因为我们的研究目标是理解在系统考察过人们通过智能选择了少量可能性之后,那些不容易做的归纳究竟是如何完成的。BACON的搜索是高度选择性的,受几个强有力的启发式的指引。”[11] 对于这种反对意见我们不需要再做详细分析了。其实在计算机科学领域大家已经公认,启发式搜索是AI程序区别于一般计算机算法程序的关键一点。[12] 另外,从机器发现研究发展的整体来看,现在已经开发出的具有多种功能的发现程序也是对上面认为计算机只会蛮力搜索的偏见的最好回应。
三 关于AI系统的“发现”的意向性问题
意向性(Intentionality)问题是人工智能哲学领域争议最多的问题之一。同样,这个老问题在BACON等AI系统的重新发现工作中又“老话重提”了。但是,从一个具体的AI实例来讨论比之纯哲学探讨更有助于厘清争议。
许多反对称BACON的工作是发现,或重新“发现”的意见集中在意向性问题上。博登(Margaret A.Boden)曾说:“计算机发现程序不会意识到它们的发现的重要性。科学史中,荣誉经常拒绝那些没有鉴别出发现重要性的人;同理,计算机程序也不应该得到对任何发现的荣誉”。[13] 吉尔(Ronald N.Giere)认为,BACON就是一个纯粹的语法机器,它所做的是根据符号的结构进行符号的操作,操作的符号就是0和1组成的字串。对BACON来说,这些符号的意义和所指它是不知道的。戈尔曼(Michael E.Gorman)同意吉尔的观点:计算机根本不知道自己在做什么。
的确,一个都不知道自己在做什么的机器怎么能说它是一个“发现者”呢?西蒙也说过,成功做出重大发现的人比一般人可能具有更持久的“解题”的热情。无数科学家的传记、科学史料也告诉我们,科学家为了找到答案甚至都到了近乎痴迷的状态了。可是像BACON这样一个没有意识的工作机器,即使它找到了数据关系,它也不知道这是一个开普勒定律或波义耳定律,能说它的工作是发现吗?
人们对计算机发现的这些疑虑,主要涉及体现意向性的一个常见意识状态,“知道”。什么叫“知道”,它既涉及语言学中的语义问题,也涉及认识论中的客体及其名称之间的关系问题。坚持强AI观点的人和坚持反AI观点的人在这方面分歧极大。分歧的关键是对所谓“知道”的不同理解。
西蒙认为计算机程序具有语义学特点。他说:意义[至少一个重要的意义形式]来自于这个事实,我们能给符号分配被编码的可感知的确定输入模式[即,我们能把“猫”指定给那种确定模式]。这样我们有两套模式——一套是名称,一套是被编码的知觉对象。二者的对应关系构成了语义学。[14] 我们认为西蒙为计算机程序所做的语义学特点的辩护是正确的。但是也应该看到,不是人类的所有语言或感知都能够转化为计算机程序能够体现的这种语义形式的。
我们以维特根斯坦(Ludwig Wittgenstein,1889—1951)的语言学研究为例进行说明。维特根斯坦的理论一方面为计算机程序的语义特征确立了基础。但在另一方面,又表明了计算机语言所不能呈现的语义范畴。维特根斯坦认为,语言的意义不在于指称事物,而在于行动。比如,“取三个红皮球”这句话,计算机可以执行,是因为我们可以把这句话中包括的三类动作:数数、识别各种颜色、识别皮球,都分别与一系列的规则、事物的属性及关系联系在一起,比如数字的规则、颜色的规则和形状的规则。有了确定的规则、属性还有联系,就可以编写指令。我们可以说,当计算机在执行这些指令的时候,它对这句话的理解与人类的理解没有什么差别。
但是,有一些语言无法将其意义转换成明确的、相应的规则、属性和关系。比如“嘲笑”、“抑郁”这类词。如果我们试图编写一些行动指令让计算机执行,那结果一定是让人泄气的。计算机也许会把一个正在静静体味内心喜悦的人的状态当成抑郁,或者干脆把幽默当嘲笑。
虽然西蒙的语义学观点可以从罗素(Bertrand A.W.Russell,1872—1970)的语义学理论找到支持,但是近二十年来的语言哲学中已经发展出一种与罗素相对立的观点,如普特南(Hilary Putnam)所说,“对这个问题想怎么处理就怎么处理吧,‘意义’就不在头脑里!”[15] 我们认为,目前范式下的计算机程序仅仅涉及复杂的语义学问题中的一个方面,正在出现的其他AI范式将引发更多更复杂的语言哲学问题。在意识到现有AI的局限性的同时,明斯基对AI思维能力的思考对我们或许有些启发。他认为人们通常的语义学研究,就像数学中为寻求数的含义所进行的工作,是单线型的、塔式的,也是脆弱的,一旦一个层次出了问题整个工作就倒塌。当然,在数学上应该进行这样的工作,这是数学的基础,而数学的基础完备了,整个人类认知活动就有了可靠的工具。所以这对数学是很有意义的。但是,人类日常认识活动并不关心数学基础问题,也不会发生关系。日常认识活动中运用的语义是网络式的、交错的、并行的多路知识网络,一个途径“失灵”,可以换另一个。[16]
也许,计算机模拟人的日常思维活动,其中对语义学问题的处理思路与语义学理论研究中的方法应该不尽相同。因此,西蒙、明斯基这些实际工作的AI科学家总是对认识论、方法论问题给出一种实用的或技术性的解释,按照博登的说法是物理主义的解释。
哲学家丹尼特(D.C.Dennett)也提出支持强AI的工具主义的意向性说明。他认为,一个系统只要被赋予了信念、目标和推理能力,从而人们可以解释、预见和控制其行为,这样的系统就是意向性系统。而强烈反对强AI的哲学家塞尔(John R.Searle)对意向性的解释是一种强实在论的观点,概括为两点:意向性必须以生物特性为基础;纯形式主义理论不能解释心理特征。另外一类持中间立场的哲学家,如博登、史密斯(B.C.Smith)、斯洛曼(A.Sloman)等人,一方面反对把计算机程序表示为完全句法的而非语义学的做法,一方面承认,目前的计算机程序所具有的语义不是指称性的,而是因果性的。[17]
总之我们认为,像BACON这样的AI发现程序虽然不是一个真正的发现,但完成了部分的发现工作,它们的工作具有发现意义,提出了对一些传统发现哲学问题的新思考。
成就和不足
西蒙在总结他和同事们的科学发现心理学的实践时说:结合了科学史和实验室心理学的计算机模拟已经证明,它是建立一种关于科学发现过程的计算理论的强有力手段。
同时他称机器发现理论有两方面的作用:一、理解人类科学家怎样做发现;二、建立能帮助科学家做发现的发现系统,这种发现系统要么是交互式的,要么是完全自动的。[18] 西蒙的AI研究目标也在这里得到具体体现。相应的有两种发现理论:一、关于发现的经验理论。新颖并有价值的(或有趣)解题方案实际是如何被找到的;它描述和解释发现的心理学。二、关于发现的规范理论。对于能提高做出发现可能性的程序的描述(基于理论和经验证据);它为设计专家系统、机器人以及其他人工智能系统提供一种基础,不仅如此,还为设计被人类学习和执行的改进发现和学习过程提供基础。
西蒙机器发现研究的主要合作者之一,席特考(Jan M.Zytkow)在总结西蒙学派的机器发现工作时,指出了现有机器发现系统的缺陷,如,不能自己选择和准备数据,不能读仪器;不能正确地对错误参数进行选择。一句话,现有AI发现系统还是人辅助的发现。但席特考说,如果用另外的搜索取代人的干预将会提高自动化程度。而长期从事AI哲学研究的著名英国哲学家博登认为,BACON等这些发现程序还要“依靠程序员事先对相关数据进行的手工操作”,所以它们还是“探索型的”,不是能够自动“转换概念空间”的“转换型的”。[19] 不过,博登对AM程序评价比较高,认为它能够开拓由初始概念确定的潜在空间,这个“探索型的”程序已经涉及概念的转换。
西蒙展望了机器发现研究对整个认知事业的价值,他说,现在不仅仅有斯诺说的两种文化,即科学文化和人文文化的区分。每一种学科、艺术、职业和学术领域都是高度专业化的,都有自己大量的专门知识。这种高度专业化使科学进入了巴别塔(Tower of Babel),我们每个人说的话不可能被自己专业之外的人所理解。但是关于发现的科学有助于解决这种困惑。因为它关心的是发现的基本过程,这是所有学科领域以及非科学领域共有的。他说:“AI(或者你更喜欢用认知科学)将成为世界语,使我们能够交流”。[20]
【收稿日期】2006—11—17
【基金项目】2006—2007中美富布赖特研究学者项目(2006180057);西安交通大学在职博士基金项目(2004)