一、专家系统概述

一、专家系统概述

(一)专家系统发展历史

人工智能科学家很早希望开发出一种在某种意义上能够思考的计算机程序。专家系统就是为定义这些程序本质所做的多年探索的结果。

1969年世界上第一个专家系统DENDRAL在斯坦福大学由人工智能专家费根鲍姆(Feigenbaum)与化学家莱德伯格(Lederberg)合作研发成功。他们期望利用这一系统列举出所有可能的分子结构。其后在很多领域出现了专家系统,比如,数学专家系统MACSYMA,语音识别专家系统HEARSY,内科病诊断咨询系统INTERNIST和CADUCEUS等。20世纪70年代具有代表性的专家系统是医疗专家系统MYCIN和探矿专家系统PROSPECTOR。我国专家系统的研究起步于20世纪80年代,经过40多年的发展,取得了较好的成绩,成功开发了许多具有实用价值的应用型专家系统。

(二)专家系统的定义

专家系统是一种具有智能的程序系统。和普通程序不同,专家系统是一种能运用专家知识和经验推理的启发式程序系统。它包含大量专家水平的领域知识,并能在运行过程中不断对这些知识进行更新;能模拟人类专家求解问题的推理过程,解决那些本来应该由人类领域专家才能解决的复杂问题。

(三)专家系统的分类

根据其特性和处理问题的类型,专家系统包括解释型、诊断型、设计型、预测型、规划型、监视型、控制型、调试型、教学型、修理型等。其中教学型专家系统可以根据不同学生的学习特点,采用适当的教学计划和方法实施教学和辅导。预测型是通过分析过去知识以及当前的事实与数据,推断未来情况。具有处理基于时间变化的动态数据的能力,能够从一些不完全和不准确的信息或数据中,依据已有知识对未来的情况做出预测。规划型专家系统能够根据给定的目标数据,制定出某个能够达到目标的动作规划或行动步骤。

按照系统的体系结构,专家系统分为四类:

1.集中式专家系统

这是指对知识及推理进行集中管理的类专家系统,目前一些成功的专家系统均属这一类。在这一类中,按知识及推理机构的组织方式不同又可细分为层次式结构、深浅双层结构、多层聚焦结构及黑板结构等。层次式结构是指具有多层推理机制。深浅双层结构是指系统分别具有深层知识(问题领域内的原理性知识)及浅层知识(领域专家的经验知识)这两个知识库,并相应地有两个推理机分别应用两个知识库中的知识进行推理,为了协调两个推理机的工作,在它们之上建立了一个控制机构进行统一的管理。所谓多层聚焦结构是指知识库中的知识是动态组织的,把当前对推理最有用、最有希望推出结论的知识称为“焦点”,并把它置于聚焦结构的最上层,把有希望入选的知识放在第二层,如此类推,每个知识元所在层是不固定地随着推理的进行而不断调整,这类结构多用于以框架对象表示知识的系统中。黑板结构通常用于求解问题比较复杂的系统中,在这类系统中一般有多个知识库及多个推理机,它们通过各结构化的公共数据区,即黑板来交换信息,语音识别专家系统HEARSAYⅡ首先使用了这一结构。

2.分布式专家系统

这是指把推理机制分布在一个计算机网上,或者两者同时进行分布的一类专家系统。这类专家系统除了要用到集中式专家系统的各种技术外,还需要运用一些重要的特殊技术。例如,需要把待求解的问题分解为若干个子问题,然后把它们分别交给不同的系统进行处理,当各系统分别求出子问题的解时,还需要把它们综合为整体解。如果各系统求出的解有矛盾,需要根据某种原则进行选择。另外,在各系统求解子问题的过程中需要相互通信,密切配合,进行合作推理等。

3.神经网络专家系统

这是运用人工神经网络技术建造的一种专家系统。这种专家系统的体系结构与我们前文讨论的专家系统完全不同,前文讨论的专家系统是基于符号表示的,而神经网络专家系统是基于神经元的,它用多层神经元所构成的网络来表示知识并实现推理。

4.符号系统与神经网络相结合的专家系统

符号系统与神经网络各有自己的长处与不足,如何把它们结合起来建立相应的专家系统是人们十分关心的课题。结合的途径有多种,例如,充分发挥神经网络学习能力强的优势,把它用于知识的自动获取,而推理仍用符号机制。再如,把神经网络作为推理机构中的一个模块,然后再用符号机制加以连接,形成统一的专家系统等。

(四)基本结构

专家系统的基本结构包括六个部分:综合数据库及其管理系统、知识库及其管理系统、推理机、解释器、知识获取系统、人机接口。如图6-9所示。

img

图6-9 专家系统结构图

1.综合数据库及其管理系统

用来存储有关领域问题的初始事实、问题描述以及系统推理过程得到的各种中间状态或结果等。

2.知识库及其管理系统

知识库是知识存储器,用来存放被求解问题的相关领域内的原理性知识或者相关事实,以及专家的经验性知识。知识库建立的关键是知识的获取和表示问题。知识库管理系统实现对知识库中知识的合理组织和有效管理。

3.知识获取系统

知识获取系统负责知识的获取,基本任务是从知识工程师那里获得知识或从训练数据中自动获取知识,并把得到的知识送入知识库中,确保知识的一致性和完整性。

知识抽取指把蕴含于多个知识源中的知识经过分析、识别、理解、遴选、归纳等处理后抽取出来,以建立数据库。知识源是指专家系统知识的来源,包括领域专家、技术报告、课本教材、相关论文、实例研究、经验数据及系统本身的运行实践等。

知识抽取的难点在于对知识源中的数据进行处理,因为知识并不是以某种现成的形式存在于知识源中的,只有对知识源中的数据经过分析、识别、理解、关联等一系列处理之后,才能发现其中的有用知识。而这种数据处理又因为知识源中数据形式的不同而呈现不同的难度。例如,领域专家解决某一领域各种困难问题的经验,就可能是只可意会不可言传的,即使由领域专家来提取知识也比较困难。

知识获取的人工手段就是与领域专家充分交流,从领域专家或其他知识源中获得专家系统所需要的知识。一般采用如下的技术步骤:现场观察、问题讨论、问题描述、问题分析、建造原型系统、系统检查、系统验证等。知识获取的理想方法当然是机器自动获取,但是目前的机器学习技术还远未成熟。如果要让专家系统本身在运行实践中从已有知识或者实例中演绎、归纳出新知识,并实现对知识库的自我更新和完善,则必须对机器学习的相关理论和技术进行更加深入的研究。

知识自动获取需要具备以下技术:文字、语音和图像的识别功能,理解、分析和归纳的能力,从自身运行过程中自我学习的能力。这些内容涉及自然语言处理、图像和语音信息处理等方面的前沿研究。知识源中的知识通常以自然语言、图形、表格等形式来表示,必须将它们转换为计算机能够识别或运用的形式。只有那些专家的知识、经验能用语言或者文字表达清楚的应用领域,才适合开发专家系统。知识输入是要将知识在计算机上编辑、编译送入知识库。知识检测的主要任务是保证知识库的一致性和完整性。

4.推理机

模拟领域专家思维过程,以使整个专家系统以逻辑方式进行问题求解。采用的推理方式可以是正向推理、反向推理或者双向推理。

5.解释器

负责对专家系统的行为进行解释,并通过人机接口提供给用户。

6.人机接口

负责专家系统与用户的交流通信。

(五)系统的设计与建造

系统的设计与建造可采用原型法。原型法是一种较好的方法,其基本思想是:首先建立一个能够反映用户主要需求和专家求解问题基本方法的系统原型,并让用户和专家了解未来系统在功能和求解能力上的概貌,请他们提出修改要求。然后反复修改原型,最终建立符合用户要求、具有专家级求解能力的新系统。基于原型法的专家系统开发过程一般由八个阶段构成:应用领域选择与可行性分析、需求分析、原型设计与开发、原型评价、最终系统设计、最终系统实现、系统测试与评价、系统维护。

(六)系统评价内容

对专家系统的评价可以从设计目标、结构、性能、实用性等方面来进行,主要包括以下几项:知识库的知识是否完备;知识的表示方法与组织方法是否适当;系统的推理是否正确;系统的解释功能是否完全与合理;用户界面是否友好;系统效率、响应速度和时空消耗;系统的可维护性;效益如何。

(七)开发工具

语言型开发工具包括:程序设计语言如Java,Net等,人工智能语言如Smalltalk,Lisp,Prolog等。骨架型开发工具是由一些已经成熟的具体专家系统演变而来的,知识表示方式、推理机制等已经确定,只需要将领域知识写入知识库,即可快速产生一个新的专家系统。这种方法快速、高效,但是灵活性和通用型差。代表性的开发工具有:EMYCIN,KAS,EXPERT等。

EMYCIN(Empty MYCIN)中知识的表示方式为产生式,知识的不确定度由可信度表示,推理过程为反向深度有限搜索策略。KAS(Knowledge Acquisition System)来自PROSPECTOR,知识表示方法是产生式规则、语义网络和概念层次,推理机制是双向混合推理机制。EXPERT的知识主要由假设、事实和推理规则三个部分组成。

通用型开发工具是不依赖于任何已有专家系统、不针对任何具体领域、完全重新设计的一类专家系统开发工具。典型代表是OPS,该工具由产生式规则库、综合数据库和推理机三部分组成。开发环境与辅助型开发工具是帮助专家系统建造者进行程序设计的系统环境和程序模块。如辅助测试工具、知识库编辑器、输入/输出处理工具、辅助解释工具等。