推理的机器

计算机科学家至少已经造出了能推理的机器,但它和我们经常使用的计算机是相似的,那么还有什么值得高兴的呢?

问题不在于知识库系统像什么,而在于它做什么,将来能做什么。在硬件上没有多大的区别。确实,一些老的知识库系统仍运行在与已算了好几年工资相同的计算机上。较新的系统也是在传统的个人计算机上开发的。这要求个人计算机有很多额外随机存贮器,并以完全不同的方式组织和控制它们,但芯片并没有改变。

甚至设计来方便知识库系统开发的LISP机在它使用的硬件上也没有明显的不同。一个系统使用不同的LISP语言,存贮器的组织与控制也完全不同于传统的计算机,但硬件却是如此相同。大的差别还在软件上。

知识库系统操纵知识

在数据处理与知识处理软件之间存在三个基本的差别:

差别1:传统的软件表示、操纵数据,而知识库系统则表示、操纵知识。除非认识到“数据”与“知识”的差别,否则这种区别是没有用的。区别数据与知识是比较模糊的,但我们可以这样区别它们:数据是孤立的信息,信息之间以及与现实世界之间的关系是不知道的。知识则是相互之间以及与现实世界之间相关联、能作为智能行动基础的事实。

这些不精确的定义可通过下列生动的例子加以说明。你是一个天然气充气站的检查员,观察到炼铜厂附近的管道显示出每分钟12,000立方英尺的流量,这是一个数据、孤立的信息。只有当它与其他流量数据,以及现实世界中速度太高意味着什么的解释联系在一起时,才是有意义的。

你观察那个管道已经一年了,从没有看到流量超过11,000。现在,你已经将那个数据与其它所有的数据联系在一起了。你找到冶炼厂管理员,他报告说他们的天然气的压力已经下降了。现在你又将那个数据与现实世界联系了起来,你就能通过正确地组合几个事实推导出新的知识。

知识库系统使用来自实践的规则

差别2:传统的软件仅能使用算法,而知识库软件既能使用算法,又能使用启发式规则。使用土语的人挣了很多钱,但如果你想把算法当作等式,启发式作为最单凭经验来做的方法,你将不会远离这个标准。

典型的算法:你所买汽油的加仑数,乘以每加仑的价格,等于你所支付的总金额。每时每刻,无论雨天还是晴天,无论是冬天还是夏天,输入同样的数据将输出相同的结果。传统的数据处理软件能每秒进行几千次这样无误的计算。

典型的启发式:这是一个冬天的第一个冷天,当你下班走向汽车时下雪了,汽车怎么也开动不起来。最后,拖走抛锚车辆的拖曳车赶到了。驾驶员将车停在你的车的对面,他掀开车篷,手里拿着牵索缆向你走来。他没有和你交谈,也没有检查你的汽车,但他准备突发启动你的汽车。为什么?启发式知识。他从实践中知道,有94%的概率突发启动能使你再次上路。当然,其它办法也就不行了。你可能坚决主张在开始系统地诊断之前,他应首先从原理着手,对你的汽车进行彻底的、有条理的检查,这样你将会晚些才能回家,还将感到寒冷、饥饿,失去一个机修工朋友。没有我们经常地使用启发式规则,日常生活将是难以忍受的,科学与工程实际上也是不可行的。

因此,知识库系统可使用无论在哪里都是有用的算法来使知识精确化,但在知识不能被精确化或者精确化起来是不经济的地方,知识库系统还可使用启发式规则。因为启发式规则“扮演着可能性”,大多数知识库系统将必然性因素归因于在一些使用启发式规则的推理。例如,知识库系统告诉你汽油清单是“以1.0的必然性”,而告诉你首先试一试突发启动的劝告是“以0.94的必然性”。

不管你对知识库系统是否感兴趣,第一次看到曾是自负且过载的计算机暗示出“我可能是错的,但……”肯定是一种乐事。

知识库系统使用推理技术

差别3:传统的软件采用重复技术,而知识库系统则使用推理技术。传统软件的特点是整个工作中相同例行程序的可靠且准确的重复。如果你为一百万个股东准备了股息支票,委员会已声明每股份股息25分,你就会想要一个精确到分的能重复使用的精确算法。每股份支付20分将省些利润来扩大商业,或者每股份支付30分将给人以安全分析者的印象,选择哪一种还没有轮到计算机来作决定。

但委员会应该作出决定,所考虑的因素有上百个,但仅有几个可以列出等式。一个简单的知识库系统能帮助人们有效地作出这样的决策,虽然不快但比较好。这是因为知识系统能进行推理,即,它能将事实按逻辑方式联系在一起产生一个新的事实。

为了完成这个任务,知识库系统被构造来执行“符号推理”。由于事实及它们相联的方式已被送进了计算机并又从计算机中报告出来,没有人类字词(已经发展了几百万年的符号系统)那么多的“符号”已按逻辑(哲学家已研究了2500多年)的规则操纵着。“推理”则是用来表示从知道的或假设的事实出发进行推导过程的一个词。正像算术既可在计算器上进行,也可在头脑中进行一样,推理在机器或头脑中也都能进行。

知识库系统的三个基础是:操纵知识的能力;处理算法及启发式规则的能力;推理的能力。

—个系统无论它还有其他什么能力,只有它缺少这三个基础中的一个,它就不是知识库系统。知识库系统还有其他许多公共的特征,我们在这里仅简单地提及它们,但知识库系统的有用性及可接收性是完全独立于它们的开发的:

解释工具

不像传统的数据处理系统,大多数知识库系统都能解释如何得到它们的结论或劝告。一些能显示推理路径,一些则能列举出路径上每一点都使用的特殊规则,另一些两者都能办到。这种能力是相当重要的,因为,这样就允许人类专家对系统中的错误进行修改;使用户明白需要哪些不可靠的假设或偶然性来获得结论;使用户相信结果如果他们理解了每个劝告的基本原理的话。

元知识是有关系统自身的知识。解释工具是元知识的一种,这是因为它们指出了系统如何用它的知识来得到结论。现在开发的其它元知识的能力将能帮助知识库系统来调整它们的解释以适应用户知识的兴趣或级别,或者当发现或学习到更多的规则时修正它们的规则,或者当多个诊断适合所有的事实时,按照似乎有理性来“排列”解释。

询问“正确的”的问题

任何一个高中生都能根据等式e=mc2计算出e的值。知道了m和c的值,这是一个极其简单的事情。但该等式的形式化却需要爱因斯坦。人类专家的大部分工作与能力在于他们帮助当事人“询问正确的问题”的能力。

例如,设计来帮助决策者得到商业税最小化的知识库系统中,“贬值选择”子程序可以通过一系列有关资产的类型、它的服务周期及剩余的价值,以及税律约束的问题的询问来引导用户,帮助他们在直线下降的平衡与计算贬值的年总和的方法之间进行选择。选择好了后,仅几个变量代入适当的等式中,问题也就基本解决了,剩下的只是按一下键。

查找知识

当今一些知识库系统仍是设计来单独运行的,不能够查找知识库软件以外的知识。但人类专家能这样做。医学专家需要经常查阅文献及医学统计数据。律师必须查找或复习惯例。工程师必须参考广泛的参考文献表。商业顾问如果不能灵活地查找有关各种质量控制统计数据及投资的回复的公司记录,他是不可能行使职责的。

这种查找将对知识库系统的“深度”——帮助解决它们的专门领域中非常复杂的问题的能力一有很大贡献。它对知识库系统的“宽度”或“健壮性”——当执行初始方法面对不正确的数据,或者管理另一个方法的规则是不完备的时候,支持它们的提出另外有效的问题求解方法的能力——也将有所贡献。人类专家能够很容易地使方法适应可用数据的种类及特性。知识库系统能够做这种可用数据的初步检查,但只有当他们已经准备访问数据库时才这样。

与此形成对照,几乎所有的传统数据处理程序都不能做这个工作,西洋跳棋与十五子游戏冠军赛程序及下棋程序除外。将它们的算法和它们对完备且差不多精确的数据的需要联系在一起、限制它们仅使用规定的数据后,它们将是足够巨大的计算器,但它们不必要是有效的问题求解助手。

人工智能技术——特别是今天,知识库系统——象征着人类在对计算机能力的认识上已经走了一大步。

如果读者还想获得更多这方面的信息及更多的例子,我们建议你去看一看TI Explorer系统及称为COMMON LISP的LISP语言的格式。

(Computers & People,1986年3—4期)