专家系统概论1.专家系统的概念2.专家系统的基本结构3.专家系统的开发专家系统的概念1.什么是专家系统专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题,简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。专家系统的概念2.专家系统与一般应用程序的区别前者把问题求解的知识隐含地编入程序,而后者则把其应用领域的问题求解知识单独组成一个实体,即为知识库。知识库的处理是通过与知识库分开的控制策略进行的。更明确地说,一般应用程序把知识组织为两级:数据级和程序级;大多数专家系统则将知识组织成三级;数据、知识库和控制。专家系统的概念3.专家系统的类型对专家系统可以按不同的方法分类。通常,可以按应用领域、知识表示方法、控制策略、任务类型等分类。如按任务类型来划分,常见的有解释型、预测型、诊断型、调试型、维护型、规划型、设计型、监督型、控制型、教育型等。专家系统的基本结构1.专家系统的基本结构专家系统的基本结构如图所示,其中箭头方向为数据流动的方向。专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成。专家系统的基本结构系统的主要部分是知识库和推理引擎。根据到目前为止讨论的推理系统,知识库由谓词演算事实和有关讨论主题的规则构成。推理引擎由所有操纵知识库来演绎用户要求的信息的过程构成-如消解、前向链或反向链。用户接口可能包括某种自然语言处理系统,它允许用户用一个有限的自然语言形式与系统交互。也可是用带有菜单的图形接口界面。解释子系统分析被系统执行的推理结构,并把它解释给用户。专家系统的基本结构在实际应用中,这四个部分构成了一个系统.在一个专家系统结构中,一个知识工程师(经常是一个训练过的AI计算机科学家)与应用领域的一个专家(或几个专家)共同工作以便把专家的相关知识表示成一种形式,以使它能被输入到知识库.这个过程经常由一个知识采集子系统协助。和其他情况一样,这个子系统检查正在增长的知识库的可能不一致和不完备信息,然后将它们表示给专家以做出决定。专家系统的基本结构2.专家系统的工作原理及一般工作过程专家系统的基本工作流程是,用户通过人机界面回答系统的提问,推理机将用户输入的信息与知识库中各个规则的条件进行匹配,并把被匹配规则的结论存放到综合数据库中。最后,专家系统将得出最终结论呈现给用户。在这里,专家系统还可以通过解释器向用户解释以下问题:系统为什么要向用户提出该问题(Why)?计算机是如何得出最终结论的(How)?领域专家或知识工程师通过专门的软件工具,或编程实现专家系统中知识的获取,不断地充实和完善知识库中的知识。专家系统的基本结构专家系统的工作过程是根据知识库中的知识和用户提供的事实推理,不断地由已知的前提推出未知的结论,并把这些未知的结论纳入工作存储空间,作为已知的新事实继续推理,从而把求解的问题由未知状态转换为已知状态。可见,专家系统的工作过程是专家工作过程的一种机器模拟。专家系统的开发1.专家系统的开发条件基础知识型数据库的建立专家系统的核心是知识。面向基层农户和农技人员,MVPES将蔬菜栽培的领域知识用如下几种类型来表示和组织:(1)描述型知识。(2)数据型知识。(3)规则型知识。专家系统的开发1.专家系统的开发条件计算机实现的推理技术推理是在建立知识库、规则库、数据库的基础上,从用户提供的已有事实,推出新的结果。采用产生式推理方式。多条规则之间一般都有联系,即其中某条规则的前提是另一条规则的结论。可以按逆向推理的思想把推理前提与推理目标之间的一系列规则展开为一棵树型的结构,形成知识树或推理树。专家系统的开发2.专家系统的基本设计思想与基本设计原则(1)设计系统时,首先集中精力研究一小部分假设,以及下述的观测或观察,也就是说,在设计实验系统时,先不要考虑那些不十分确定的事物。使用一部分结论,只取那些确实可信的观察和肯定的规则。(2)挑选那些最有利于区别各个假设的观测。也就是说,应用这些观测可以把各种假设完全区分开来。专家系统的开发2.专家系统的基本设计思想与基本设计原则(3)在许多情况下,为得到许多所需的结论,可以有许多方式来组合观测。在决定规则时,首先从确认或区分各种假设所需的数量最少的观测组合开始。(4)把那些并不具有很强的预测或区别能力的观测组合起来,以便通过观测或结论之间的依赖关系来改善这些观测的区别能力。专家系统的开发2.专家系统的基本设计思想与基本设计原则(5)建立中间假设。引入中间假设的目的是为了减少规则数量和简化推理过程。例如,由观测的组合可以产生中间假设组合H1、H2和H3。利用这些中间假设的组合合取(H1∧H2∧H3)可以减少产生式规则组合的增长率。同时,还可以采取以下的做法:先独立地确定中间假设H,然后在进一步的推理中,利用H的肯定或否定,而不是始终以事实来推理。专家系统的开发2.专家系统的基本设计思想与基本设计原则(6)以各种事例来试验所设计的系统。研究那些产生不准确结论的事例,并且确定系统可以做些什么修改以校正错误。修改系统后要检验系统对这些事例产生的结果以及系统的这些修改对其它事例的影响。专家系统的开发2.专家系统的基本设计思想与基本设计原则各类专家系统之间具有一些共同的问题。对于一些任务相似的专家系统,由于问题特征不同而具有不同的求解方法;而另一些任务不同的专家系统,由于问题性质相近而具有类似的求解方法。显然,从问题的一般特征出发来考虑建立模型的方法,能够更易于抓住问题的本质。专家系统的开发3.专家系统的开发工具目前国外出现了许多专用的专家系统工具,开发某领域的专家系统基本上是运用开发工具来实现的,如1986Hal.Lemmon等人开发的Comax棉花生产管理专家系统。我国也出现不少专家系统工具,如“天马”专家系统开发工具、ASCS农业专家咨询系统开发平台、国家863计划研究成果农业专家系统开发平台(PAID:PlatformforAgriculturalIntelligence-systemDevelopment)等。专家系统的开发3.专家系统的开发工具现有的专家系统工具,主要分为骨架型工具(又称外壳)、语言型工具、构造辅助工具和支撑环境等4类。专家系统的开发3.专家系统的开发工具1)骨架型开发工具专家系统一般都有推理机和知识库两部分,而规则集存于知识库内。在一个理想的专家系统中,推理机完全独立于求解问题领域。系统功能上的完善或改变,只依赖于规则集的完善和改变。由此,借用以前开发好的专家系统,将描述领域知识的规则从原系统中“挖掉”,只保留其独立于问题领域知识的推理机部分,这样形成的工具称为骨架型工具。这类工具因其控制策略是预先给定的,使用起来很方便,用户只须将具体领域的知识明确地表示成为一些规则就可以了。专家系统的开发3.专家系统的开发工具2)语言型开发工具语言型工具提供给用户的是建立专家系统所需要的基本机制,其控制策略也不固定于一种或几种形式,用户可以通过一定手段来影响其控制策略。因此,语言型工具的结构变化范围广泛,表示灵活,所适应的范围要比骨架型工具广泛得多。专家系统的开发3.专家系统的开发工具3)构造辅助工具系统构造辅助工具由一些程序模块组成,有些程序能帮助获得和表达领域专家的知识,有些程序能帮助设计正在构造的专家系统的结构。它主要分两类,一种是设计辅助工具,另一种是知识获取辅助工具。专家系统的开发3.专家系统的开发工具4)支撑环境支撑设施是指帮助进行程序设计的工具,它常被作为知识工程语言的一部分。工具支撑环境仅是一个附带的软件包,以便使用户界面更友好。它包括四个典型组件:调试辅助工具、输入输出设施、解释设施和知识库编辑器。专家系统的开发3.专家系统的开发步骤(1)设计初始知识库。知识库的设计是建立专家系统最重要和最艰巨的任务。初始知识库的设计包括:(a)问题知识化,即辨别所研究问题的实质,如要解决的任务是什么,它是如何定义的,可否把它分解为子问题或子任务,它包含哪些典型数据等。(b)知识概念化,即概括知识表示所需要的关键概念及其关系,如数据类型、已知条件(状态)和目标(状态)、提出的假设以及控制策略等。专家系统的开发3.专家系统的开发步骤(1)设计初始知识库。知识库的设计是建立专家系统最重要和最艰巨的任务。初始知识库的设计包括:(c)概念形式化,即确定用来组织知识的数据结构形式,应用人工智能中各种知识表示方法把与概念化过程有关的关键概念、子问题及信息流特性等变换为比较正式的表达,它包括假设空间、过程模型和数据特性等。专家系统的开发3.专家系统的开发步骤(1)设计初始知识库。知识库的设计是建立专家系统最重要和最艰巨的任务。初始知识库的设计包括:(d)形式规则化,即编制规则、把形式化了的知识变换为由编程语言表示的可供计算机执行的语句和程序。(e)规则合法化,即确认规则化了知识的合理性,检验规则的有效性。专家系统的开发3.专家系统的开发步骤(2)原型机(prototype)的开发与试验。在选定知识表达方法之后,即可着手建立整个系统所需要的实验子集,它包括整个模型的典型知识,而且只涉及与试验有关的足够简单的任务和推理过程。专家系统的开发3.专家系统的开发步骤(3)知识库的改进与归纳。反复对知识库及推理规则进行改进试验,归纳出更完善的结果。经过相当长时间(例如数月至二三年)的努力,使系统在一定范围内达到人类专家的水平。谢谢观赏!