使用规则获取人类专家知识
在人工智能系统中加入知识不是什么新鲜想法,正如我们在前一章所看到的,启发式方法作为一种将解决问题的重点放在有希望的方向上的方法,在黄金年代被广泛应用。启发式方法可以理解为包含能够解决问题的知识,但是启发式方法并没有直接去获取知识。而基于知识的人工智能体系拥有一个全新的思想:人工智能系统应该明确地获取和展示人类解决某类问题的专业知识。
最常见的方案是基于规则的,被称为知识表述 。人工智能环境下,一条规则以“如果……那么……”的形式获取离散的知识块。实际上规则相当简单,我们来举个例子说明。以下是一些规则(用自然文字编写,而不是代码),它们是人工智能民间传说的一部分[31] 。下面是为了帮助人们对动物进行分类而设计的人工智能专家系统,看看它是如何获取知识的(有关如何应用规则的细节,请参见附录A):
如果该动物产奶,那么它是哺乳动物。
如果该动物有羽毛,那么它是鸟类。
如果该动物能飞并且能产卵,那么它是鸟类。
如果该动物吃肉,那么它是肉食动物。
我们对这些规则作出如下解释:每一条规则都有前因条件(即“如果”之后的部分)和后果结论 (即“那么”之后的部分)。例如以下规则:
如果该动物能飞并且能产卵,那么它是鸟类。
该规则中的条件是“该动物能飞,该动物能产卵”,结论就是“它是鸟类”。如果我们当前所掌握的信息与条件项相匹配,那么规则就会被触发 ,我们就能根据这条规则得出结论。因此,要使这条规则生效,需要两个条件:我们试图分类的那个动物能飞,而且能产卵。如果我们确实掌握了这两条信息,那么规则成立,我们就能得出结论,该动物是鸟类。这个结论为我们提供了更多的信息,这些信息又可以用在后续的规则中,用以获取更多的信息,如此层层推进。通常,专家系统以咨询的形式与用户交互,用户负责向系统提供信息,并且回答系统提出的问题。
图5所示的就是一个典型的专家系统结构,其中,知识库包含系统所拥有的知识——那些规则。工作存储器 则包含了系统拥有的,有关当前正在解决的问题信息(例如“该动物有毛发”)。最后,推理机 则是专家系统的一个重要组成部分,它负责在解决问题的时候应用系统内存储的知识。
只要给定知识库,比如上文举例的动物分类知识,推理机就能够以两种方式运行:第一种,用户向系统提供他们所知道的有关问题的信息(以动物分类为例,用户向系统描述该动物是否有条纹、是否食肉等),推理机会根据用户提供的信息,应用规则去获取尽可能多的新信息,这个过程叫作规则触发。然后,推理机将触发规则以后获得的新信息添加到工作存储器中,继续查看是否有新的规则被触发,然后不断重复这个过程,直到彻底无法通过已知信息应用更多规则得出更多新信息为止。这种方法被称为正向推理 :从数据推理到结论。
另一种方式是反向推理 ,即我们从想建立的结论开始,反向推理出数据。例如,我们想确定这个需要被分类的动物是否为肉食动物,规则告诉我们,如果动物吃肉,就是肉食动物,因此,我们可以尝试确定动物是否吃肉。因为没有任何规则的结论是动物是否吃肉,系统只能向用户直接询问这个问题。
本书评论