对计算机模拟中的逻辑、方法论的几点认识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对计算机模拟中的逻辑、方法论的几点认识
随着计算机科学技术的发展,用计算机模拟人类实际科学推理的思维过程成为可能。于是,在计算机人工智能与认知心理学研究的交叉点上形成了“人类问题求解”理论。同时,又在计算机人工智能与逻辑研究的交叉点形成了适用于计算机的新颖逻辑理论及算法。计算机人工智能(AI)研究虽化分为两派,但无论哪一派,在对于思维的计算机模拟研究,包括机器学习和机器实现方面的研究,都为逻辑和科学方法论带来革命性变化和新的启示。
标签:启发式搜索;机器学习;Prolog系统;逻辑;方法论
随着计算机科学技术的发展,用计算机模拟人类实际科学推理的思维过程成为可能。于是,在计算机人工智能与认知心理学研究的交又点上形成了“人类问题求解”理论。同时,又在计算机人工智能与逻辑研究的交叉点形成了适用于计算机的新颖逻辑理论及算法。
计算机人工智能(AI)研究者分裂为两大派:AI认知心理学派与AI逻辑学派。H.西蒙为认知心理学派提出了研究纲领:“让人工智能借用心理学,又让心理学借用人工智能成果。”认知心理学派把思维看作有选择地搜索迷宫的心理过程,而逻辑学派则把思维看作一个由前提进行推理的逻辑过程。这两派中无论哪一派,对于思维的计算机模拟研究,包括机器学习和机器发现方面的研究,都为逻辑和科学方法论带来革命性变化和新的启示。
一
在本文第一部分,笔者先谈谈AI认知学派的启发式搜索法的方法论启示。
认知心理学派在对一系列科学发现的案例进行细致分析并进行计算机模拟研究之后断言,人类的科学推理过程的实质就是启发式搜索的过程。换句话说,人类进行问题求解时所用的启发式搜索法就是科学探索和科学发现的逻辑与方法。这就是他们的问题求解理论的基本内核。如果说,按照人工智能(AI)的认知心理学的观点,科学探索的计算研究或“机器发现”研究的主要目标就是为人类推理的思维过程建立一些认知模型,那么,与此相对照,人工智能逻辑学派或图灵传统的“机器发现”研究的主要目标则是编制某种严格可操作的算法或自动程序,让它最大限度自主地作出某些新发现,在有限步骤内求得问题的解。西蒙更偏爱启发式方法,因为这类方法常常能利用人类已有的一些经验规则或知识作提示,在寻求问题的解决方案过程中可以大大缩小可能性空间,减少盲目性,极大地提高搜索效率。启发式方法并不提供严格的算法与直接的答案,却是指示了一步一步接近解决问题的正确方向。
最著名的机器发现程序是BACON1-6程序,这是H.西蒙与P.兰利等人所设计的旨在用计算机完成重大科学定律的再发现的一组程序。
这一组程序之所以用“培根”来命名,是因为它们结合并运用了培根的归纳推理方法,体现了培根的“归纳机器”的理想。概括地说,BACON1—6程序有共同的发现方法和共同的数据与定律的表征形式,其间的差别仅在于从数据中搜索科学定律的启发法有所不同。BACON1是其中最简单、最基本的一个发现程序,后面的程序一个比一个更复杂,保留一些又增添一些启发式方法。让我们以BACON1发现玻义耳定律与开普勒第三定律作为案例。
(一)玻义耳定律:PV=C(即一定量的气体,压力P与体积V之间存在反比关系)
试问,能否给机械编个程序,让它来胜任玻义耳的发现呢?兰利说,BACONI 能做到。它期待从P与V的某种简单的函数关系中产生常量,基本的策略是一次试验一个可能的函数,按+、-、×、÷顺序,从最简单的开始。这里假定了8个可能的简单函数:P,V,(P+V),(P-V),(V-P),PV,P/V,V/P。看起来这种做法是符合培根的科学哲学精神的,因为培根的排除性归纳法要求首先列出各种可供选择的可能原因,然后根据限制条件一个一个地排除其中的不可能者,直至最终确定真正的原因为止。BACON1程序根据所输入的P和V的18行数据,通过快速运算依次一个个地试测不同的可能函数,试到第6个函数PV时,终于在所允许的误差范围内得到了常量。至此,兰利就宣称AI用这种方式重新发现了玻义耳定律。
(二)开普勒行星第三定律D3/T2=C的再发现
这个定律是说某个行星与太阳之间的平均距离D的立方除以行星运行周期T的平方等于一个常数。BACON1被提供6个行星(金星、木星、水星、火星、土星加上地球)的D与T的一个个数据。然后,像上一个例子一样,AI试图发现常数的存在。这一回试测的可能函数是DT、D/T、T/D、D2/T、T/D2、T2/D、D/T2、D2/T2、T2/D2、D3/T、T/D3、T3/D、D/T3、D3/T2等等。实际上,在牛顿力学中广泛存在着正比、反比、平方正比、平方反比等关系,因此看起来这样的试测仍是合乎情理的。如果按BACON1程序来操作,只须经过13次试验就可以得到开普勒第三定律。尝试13个函数对电脑来说算不了什么。
孔宪中先生在《人工智能与科学哲学》中对BACON程序进行了简化解释,这种解释初看起来似乎非常好,画龙点睛,说明实质,笔者起先也相信是这样。后来再仔细一分析,却发现这种简化解释恰恰在很大程度上把启发式方法的活的灵魂丢失掉了。对于较复杂的开普勒定律尤其是这样。实质上,对于BACON1程序来说,关键之处正在于将观测数据引导到经验定律的那三条启发式原则:(1)如果某一项的值为常数,则可推得这一项始终为常数(常数的出现正是科学定律的标志);(2)如果两个被比较的数值项的值一齐增加,则考虑它们的比值,为的是寻求并得到常数和定律(笔者想应当补充说,被比较的数值项的选择原则是按差距的从大到小的顺序来比较);(3)如果两项数值一增一减,则考虑它们的乘积,为的是得到常数和定律(笔者想应当补充说,被比较的数值项的选择原则是按差距的从小到大的顺序来比较)。
若按照这三条启发法对开普勒第三定律的机器发现作重新解释,应当是这样(见表1所示假想数据):
表1
表中先给出一组三个行星A、B、c的离太阳平均距离及公转周期的假想数据。由于D与T一齐增大,按启发法二,则考虑其比值D/T,看看是否得到常数;结果不是常数,就再将第一比值与D比较,结果发现是一增一减,则按启发法三相乘,可得第二比值,仍然未得到常数;再将第二比值与T比过证伪而排除),由此覆盖面最广的那个相对最小普遍化得以扩展,于是普遍化将覆盖尽可能多的例子。在这里,我们再次看到GOLEM中培根式的机械归纳是与证伪模式互补地起作用的。
三
笔者在本文第三部分将要讨论一下Prolog的非单调推理性质及其对逻辑方法论的启示。
每个从事计算机科学的研究者都知道Prolog,这是一种逻辑程序设计语言,它诞生于1972年。
按照王元元在《计算机科学中的逻辑学》一书中的描述,Prolog语言有四大特点:(1)Prolog既是一种程序设计语言,又是一个逻辑系统;(2)它是一种面向问题的语言,能给出问题的形式描述;(3)它的求解过程是一个寻求否证的归纳过程;(4)它除了逻辑成分,还有控制成分。
对于逻辑与科学方法论学者来说,他们特别关心的是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)