对计算机仿真中的逻辑与方法的几点看法_计算机模拟论文

对计算机仿真中的逻辑与方法的几点看法_计算机模拟论文

对计算机模拟中的逻辑、方法论的几点认识,本文主要内容关键词为:方法论论文,几点论文,逻辑论文,计算机论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。

随着计算机科学技术的发展,用计算机模拟人类实际科学推理的思维过程成为可能。于是,在计算机人工智能与认知心理学研究的交叉点上形成了“人类问题求解”理论。同时,又在计算机人工智能与逻辑研究的交叉点形成了适用于计算机的新颖逻辑理论及算法。

计算机人工智能( AI) 研究者分裂为两大派:AI认知心理学派与AI逻辑学派。H.西蒙为认知心理学派提出了研究纲领:“让人工智能借用心理学,又让心理学借用人工智能成果。”[1] 认知心理学派把思维看做有选择地搜索迷宫的心理过程,而逻辑学派则把思维看做一个由前提进行推理的逻辑过程[1]。这两派中无论哪一派,对于思维的计算机模拟研究,包括机器学习和机器发现方面的研究,都为逻辑和科学方法论带来革命性变化和新的启示。

在本文第一部分,笔者先谈谈AI认知学派的启发式搜索法的方法论启示。

认知心理学派在对一系列科学发现的案例进行细致分析并进行计算机模拟研究之后断言,人类的科学推理过程的实质就是启发式搜索的过程。换句话说,人类进行问题求解时所用的启发式搜索法就是科学探索和科学发现的逻辑与方法。这就是他们的问题求解理论的基本内核。如果说,按照人工智能( AI) 的认知心理学的观点,科学探索的计算研究或“机器发现”研究的主要目标就是为人类推理的思维过程建立一些认知模型,那么,与此相对照,人工智能逻辑学派或图灵传统的“机器发现”研究的主要目标则是编制某种严格可操作的算法或自动程序,让它最大限度自主地作出某些新发现,在有限步骤内求得问题的解。西蒙更偏爱启发式方法,因为这类方法常常能利用人类已有的一些经验规则或知识作提示,在寻求问题的解决方案过程中可以大大缩小可能性空间,减少盲目性,极大地提高搜索效率。启发式方法并不提供严格的算法与直接的答案,却是指示了一步一步接近解决问题的正确方向。

最著名的机器发现程序是BACON1-6程序,这是H.西蒙与P.兰利等人所设计的旨在用计算机完成重大科学定律的再发现的一组程序。

这一组程序之所以用“培根”来命名,是因为它们结合并运用了培根的归纳推理方法,体现了培根的“归纳机器”的理想(注:参见Langley.P.Simon,H.Bradshaw,G.Zytkow.Scientific Discover:Computational Explorations of the Creative Processes.MIT Press,1987:1-8.)。概括地说,BACON1-6程序有共同的发现方法和共同的数据与定律的表征形式,其间的差别仅在于从数据中搜索科学定律的启发法有所不同。BACON1是其中最简单、最基本的一个发现程序,后面的程序一个比一个更复杂,保留一些又增添一些启发式方法。让我们以BACON1发现玻义耳定律与开普勒第三定律作为案例。

(一)玻义耳定律:PV=C(即一定量的气体,压力P与体积V之间存在反比关系)

试问,能否给机械编个程序,让它来胜任玻义耳的发现呢?兰利说,BACON1能做到。它期待从P与V的某种简单的函数关系中产生常量,基本的策略是一次试验一个可能的函数,按+、-、×、÷顺序,从最简单的开始。这里假定了8个可能的简单函数:P,V,(P+V),(P-V),(V-P),PV,P/V,V/P。看起来这种做法是符合培根的科学哲学精神的,因为培根的排除性归纳法要求首先列出各种可供选择的可能原因,然后根据限制条件一个一个地排除其中的不可能者,直至最终确定真正的原因为止。BACON1程序根据所输入的P和V的18行数据,通过快速运算依次一个个地试测不同的可能函数,试到第6个函数PV时,终于在所允许的误差范围内得到了常量。至此,兰利就宣称AI用这种方式重新发现了玻义耳定律。

(二)开普勒行星第三定律D[3]/T[2]=C的再发现

这个定律是说某个行星与太阳之间的平均距离D的立方除以行星运行周期T的平方等于一个常数。BACON1被提供6个行星(金星、木星、水星、火星、土星加上地球)的D与T的一个个数据。然后,像上一个例子一样,AI试图发现常数的存在。这一回试测的可能函数是DT、D/T、T/D、D[2]/T、T/D[2]、T[2]/D、D/T[2]、D[2]/T[2]、T[2]/D[2]、D[3]/T、T/D[3]、T[3]/D、D/T[3]、D[3]/T[2]等等。实际上,在牛顿力学中广泛存在着正比、反比、平方正比、平方反比等关系,因此看起来这样的试测仍是合乎情理的。如果按BACON1程序来操作,只须经过13次试验就可以得到开普勒第三定律。尝试13个函数对电脑来说算不了什么。

孔宪中先生在《人工智能与科学哲学》中对BACON程序进行了简化解释,这种解释初看起来似乎非常好,画龙点睛,说明实质,笔者起先也相信是这样。后来再仔细一分析,却发现这种简化解释恰恰在很大程度上把启发式方法的活的灵魂丢失掉了。对于较复杂的开普勒定律尤其是这样。实质上,对于BACON1程序来说,关键之处正在于将观测数据引导到经验定律的那三条启发式原则:(1)如果某一项的值为常数,则可推得这一项始终为常数(常数的出现正是科学定律的标志);(2)如果两个被比较的数值项的值一齐增加,则考虑它们的比值,为的是寻求并得到常数和定律(笔者想应当补充说,被比较的数值项的选择原则是按差距的从大到小的顺序来比较);(3)如果两项数值一增一减,则考虑它们的乘积,为的是得到常数和定律(笔者想应当补充说,被比较的数值项的选择原则是按差距的从小到大的顺序来比较)(注:参见Lenat.Douglas.The Nature of the Heuristics.Artifical Intelligence( 82) ,1982.)。

若按照这三条启发法对开普勒第三定律的机器发现作重新解释,应当是这样(见表1所示假想数据):

行星 平均距离D 周期T 比值1(D/T) 比值2(D[2]/T) 比值3(T[2]/D[2]) 比值4(D[3]/T[2])

A

 1.0

  1.0

 1.0  1.0

 1

 1.0

B

 4.0

  8.0

 0.5  2.0

 4

  10

C

 9.0

 27.0

0.333  3.0

 9

 1.0

表中先给出一组三个行星A、B、C的离太阳平均距离及公转周期的假想数据。由于D与T一齐增大,按启发法二,则考虑其比值D/T,看看是否得到常数;结果不是常数,就再将第一比值与D比较,结果发现是一增一减,则按启发法三相乘,可得第二比值,仍然未得到常数;再将第二比值与T比较,发现是一齐增大,按启发法二两个值相除,得到第三比值,仍然未得到常数;再将第三比值与D比较,发现是一齐增大,按启发法二两个值相除,于是得到常数,同时发现定律。

假若按照孔宪中先生对BACON程序按试错法方式的解释,就很难对付批评者的指责:似乎因为事先知道了定律的结果,再去设计达到目的的捷径。否则,何以能克服试错的盲目性?

我们的重新表述突出了启发法的引导作用。这三条启发式原则是兰利、西蒙等人对人类解题过程的心理分析与理性重建的结果,是一种合理的抽象。按照西蒙的理论,可以将上述BACON1程序的“机器发现”过程,看作一种问题求解过程。其中关于行星的D与P的开普勒数据,相当于问题的初态,三种启发法相当于算子,三个比值相当于问题空间中的节点,经过一系列启发式搜索之后,BACON1就可以得到行星距离周期间关系问题的恰当答案。对于玻义耳定律,则只需使用启发法三就足够了。

BACON1按同理也对伽利略匀加速运动定律和欧姆定律进行了再发现。BACON3是程序1的推广,借助于它重新发现了理想气体定律与库仑定律等定律。BACON4再发现了光的折射定律和动量守恒定律等更复杂的定律。

有关科学发现有无逻辑、有无方法论规则,是逻辑、科学哲学、科学方法论研究者长期争论不休却又没有结果的难题。计算机人工智能研究者所发明的“机器发现程序”和启发式搜索法,用实实在在的科研成果消解了这一难题。它令人信服地表明,科学发现即使没有固定的机械程序,却仍可以有启发式的助发现方法。

笔者在本文第二部分主要谈谈AI逻辑学派如何使归纳推理实现机械化的新方法。

人工智能研究中的图灵传统就是AI逻辑学派的代表。图灵传统的主要特色在于关注逻辑及其在计算机中的应用。正当西蒙及其心理学派试图用计算机中的启发式搜索程序来模拟人类现成的归纳推理过程时,图灵传统中的研究却通过逻辑分析来建构作为严密算法核心的基本归纳推理规则,而并不重视人类实际推理的心理过程。

图灵传统在作为人工智能分支的机器学习研究中大有用武之地。机器学习的研究再次表明,在计算机时代,培根式的机械归纳程序不再是梦想,它不仅实际存在而且经常被应用。各种不同的机器学习算法都有一个最主要的共有特征,那就是机械的可操作的归纳推理规则确实存在。同时,这些不同的机器学习算法还有另外两个特征:其一是背景知识与经验证据在归纳规则中共同起作用;其二是在重复使用基本的归纳推理规则以求得最终结果时,排除性的检验(即证伪)起重要作用,要不然就不成其为“排除性归纳法”(注:参见Donald.Gilles.AI and Scientific Method.Oxford,1995.)。

AI逻辑学派在机器学习中的归纳算法是实现培根归纳机器理想的又一重要途径,它有别于AI心理学派的启发式搜索与机器发现研究。

机器学习按性质分为属性学习与关系学习两类,同时又按算法分为自上而下和自下而上两种归纳算法。在最有名的例子中,ID3属于自上而下属性学习型,而GOLEM则属于自下而上关系学习型。

属性学习只是归纳学习的一个特例,它以事物的一系列属性为基础对事物进行归纳分类。J.R.Quinlan的ID3是属性型机器学习的归纳算法中最著名也最成功的一个,它能从具体事例中归纳出供专家系统所需的一系列规则。实际上,人类专家反而未必能说清楚自己所用的方法论规则。机器中的归纳算法主要用于以“决策树”的形式归纳出正确的分类规则。ID3有一种算法用于从已知经验证据来建构一个“决策树”,通过重复这种算法,整个程序得以运行。程序运行的基本过程是:“决策树”的第一层次(树根)相应于这样一种假说,即所选的作为“树根”的属性对于将所有对象划分为正反实例是充分的。一般地说,每一层次上属性的选取都要以能获取最多信息为判据,而每一层次(即每一分岔点上)的属性对于将所有对象划分为正反实例也都是充分的。这就是程序中反复要用的基本的归纳推理规则( IRI) 。这个过程一直进行到建立整个正确的“决策树”。这里所提出的假说依赖于经验证据,即有H=f( e) 。总的来讲,“决策树”的自上而下归纳算法首先得出的是简单的一般规则(不太可靠),然后这些规则将被反驳和修改,以得到更明确、更可靠的概括。而自下而上的方法则首先得到小心的而不是彻底的概括,然后再根据进一步的证据扩展这些概括。

可以举个通俗的例子来说明自下而上与自上而下这两种归纳方法的区别。首先考虑以自上而下方式进行归纳的A先生在武汉东湖边一棵树上见到一只黑色的乌鸦时,A先生立即做出概括说:天下乌鸦一般黑。然而他却不太放心,因此通过考察其他许多地区的乌鸦,对这一概括进行检验。首先,他去看长江沿岸的乌鸦,发现它们仍然是黑的。然后他又去了西湖、太湖湖畔等许多地方,发现这些地方的乌鸦还是黑的。最后,到神农架探险,在那里才终于发现了白乌鸦,因此证伪了他的最初概括。于是他将结论修正为:“除了神农架有白乌鸦,全中国乌鸦一般黑。”另一个以自下而上方式一步一步地进行归纳(从个别到特殊到更一般)的B女士,则要小心谨慎得多(可以如法炮制,略)。

ID3的基本方法是自上而下的。J.R.Qiunlan在对ID3程序作总结时指出,ID3的基本结构是可重复的,从对象的“练习集”中随机抽取一个子集叫做“视窗”,一个“决策树”可以由视窗来形成。正像统计学中可以从“样本”推断“总体”的性质一样,若能对“视窗”中的对象进行正确分类,则“练习集”中所有对象都可以用这个“决策树”来分类。否则,再挑若干未被正确归类的对象补充进视窗并继续分类过程。通过这种可重复的视窗方法,可以比直接从整个“练习集”要快得多地找到正确的决策树。在这里,我们再次看到培根式的机械归纳与证伪方式互补地被应用。

GOLEM(机器人程序)则是采用自下而上归纳算法的一个关系学习系统,它由S.Mugglenten和C.Feng在1992年所创建。GOLEM程序是建立在Robinson的工作基础之上的。计算机原先读不懂数理逻辑学家所创建和研究的那一整套逻辑,只有在J.A.Robinson做了转换工作之后,“逻辑”才成为计算机可以读懂、可以接受的东西。Robinson于1965年引入了一种适合于在计算机上进行定理证明的逻辑形式,称作子句逻辑,它只使用一种推理规则,即归结原理。Robinson的归结原理对于逻辑与计算机的联姻起到了关键性的作用。

GOLEM算法具有自下而上的特征。对于归纳推理的目的而言,考虑两个数据点e1与e2的相对最小普遍化( r.l.g.g) 是重要的。数据点代表着子句逻辑的基本要素,它们的最小普遍化是对于背景知识K而言的。GOLEM对两个数据点及其相应的相对最小普遍化小心地进行概括,从一系列r.l.g.g中选取覆盖面最广的一个,然后将它与包含未预言到的数据点的扩大集一起形成r.l.g.g(其中可能含有预言错误的例子,但可以通过证伪而排除),由此覆盖面最广的那个相对最小普遍化得以扩展,于是普遍化将覆盖尽可能多的例子。在这里,我们再次看到GOLEM中培根式的机械归纳是与证伪模式互补地起作用的。

笔者在本文第三部分将要讨论一下Prolog的非单调推理性质及其对逻辑方法论的启示。

每个从事计算机科学的研究者都知道Prolog,这是一种逻辑程序设计语言,它诞生于1972年。

按照王元元在《计算机科学中的逻辑学》一书中的描述,Prolog语言有四大特点:(1)Prolog既是一种程序设计语言,又是一个逻辑系统;(2)它是一种面向问题的语言,能给出问题的形式描述;(3)它的求解过程是一个寻求否证的归纳过程;(4)它除了逻辑成分,还有控制成分[2]。

对于逻辑与科学方法论学者来说,他们特别关心的是Prolog语言所包含的非经典逻辑特性,尤其是非单调推理的特性。经典演绎逻辑的推理都是单调的,也就是说在引进新前提后,不必改变原有效推理的结论。若在引进新前提后,将改变原有效推理的结论,则这种推理称作非单调的。由于人类实际推理都是动态的,不断引进新前提,不断修正原有结论,因此计算机逻辑中的非单调推理比经典逻辑更切近实际。

让我们通过实例来考察Prolog逻辑系统在实际运行过程中表现出怎样的非单调推理的特征的吧:假定从桂林到柳州每天有4班快巴,发车时间分别为7∶00,9∶00,11∶00以及14∶00,然后我们给出一个定义P( X) =1班在X时间从桂林去柳州的快巴。这样,上述4种快巴时刻信息就可以编入Prolog逻辑系统:

P(7∶00)

P(9∶00)

P(11∶00)

P(14∶00)

现在如果有人向这种Prolog系统进行咨询:? —P(13∶00),即“是否有1班下午1点从桂林去柳州的快巴”,结果显示的是“否”。由于现有数据库并没有“not P(13∶00)”这样的否定句,因而如果单纯靠经典逻辑和经典否定,则既推不出“not P(13∶00)”这样的否定句,也推不出“P(13∶00)”那样的肯定句,也就是说给不出明确答案。然而,Prolog所使用的是新颖的非经典否定词“失败—否定”,它的含义是指:对肯定句进行确认的尝试失败,就等同于对相应否定句的确认。在本案例中,Prolog系统通过把咨询句“? —P(13∶00)”与数据库已有句子逐一相匹配,就都会失败,最后得到否定的结果“not P(13∶00)”。

事实上,正是这个非经典否定词(失败—否定)使Prolog系统获得了“非单调”推理的特性。因为如果将P(13∶00)这样的新前提补充到数据库中去,那么再也推不出原先的结论“not P(13∶00)”,而将推出新结论“P(13∶00)”。可见基于扩大的数据库的Prolog系统,对从先前的前提中推出的结论也要作相应的调整与修改,这正是典型的非单调特性。Prolog系统对“失败—否定”的运用还可以推广到较复杂的情况。例如在时刻表上加一条细则说明,即“如果没有1班12∶00从桂林去柳州的快巴,那么将有1班13∶00的”。在Prolog系统中可表示为“P(13∶00):-not P(12∶00)”,读作“P(13∶00),如果没有P(12∶00)”。不难证明,这个系统最后将推出肯定句P(13∶00)。

通过以上的论述,不难看出Prolog系统的“失败—否定”推理是以这样一种假设为基础的,即“如果不能从背景知识中确认P,那么就将非P加入背景知识”。换言之,如果不能确认“ P” ,那么“非P”就能得到确认。显然,其中包含一个预设,即数据库中已穷尽所论问题的世界的全部背景知识。或者说,在Prolog系统数据库中明确表示的肯定性事实例如P(7∶00)等等与隐含地表示的否定性事实例如not P(12∶00)描述了该世界全部相关的背景知识。这样一种假设被称作“封闭世界(即全域)假设”。

笔者发现,“失败—否定”推理具有非常辩证的性质。由于全域假设只要求Prolog系统的数据库出现肯定事实,而许多未出现或未明确表示的事实则属于隐含的否定事实。因此,在数据库中的某些否定事实如not P(12∶00)与潜在的肯定事实最终转化为明确的肯定事实,如P(13∶00)的中间过程中,Prolog系统中某些匹配如? —P(13∶00)分别与P(7∶00),P(9∶00),P(11∶00),P(14∶00)匹配的失败,尤其是它与not P(12∶00)中的P(12∶00)匹配的失败,包含着转化为下一步匹配即? —P(13∶00)与P(13∶00)匹配成功的契机。在这个推理过程中,非经典否定词“失败—否定”对于数据中隐含的否定事实向明确表示的肯定事实的辩证转化,对于匹配失败向匹配成功的辩证转化,起了明显的促进作用。

标签:;  ;  ;  ;  ;  

对计算机仿真中的逻辑与方法的几点看法_计算机模拟论文
下载Doc文档

猜你喜欢