知识工程与知识发现(讲稿22专家系统)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“知识工程与专家系统”。
第三章 专家系统(Expert System:ES)
专家系统是人工智能应用研究的一个重要领域。在20世纪60年代中期,正当大多数人热衷于博弈、定理证明、问题求解等研究时,另一个重要的研究领域---专家系统已悄然开始孕育。(由美国斯坦福大学的费根鲍姆E.A.Feigenbaum,1965年在他领导的研究小组内研究化学专家系统DENDRAL,68年完成并投入使用)。也正是专家系统的萌芽,才使得人工智能在后来出现的困难和挫折中很快找到了前进方向,开创了一条以知识为中心、面向应用开发的研究道路,使人工智能又进入了一个新的蓬勃发展时期。
专家系统实现了人工智能从理论研究走向实际应用,从一般思维规律探讨走向专门知识运用的重大突破,是人工智能发展史上的一次重要转折。
专家系统是一个具有大量专门知识,并能够利用这些知识去解决特定领域中需要由专家才能解决的那些问题的计算机程序。
自Feigenbaum后,相继出现了MYCIN专家系统、地质勘探专家系统PROSPECTOR,数学专家系统MACSYMA等。
知识工程的核心是专家系统,知识工程的发展首先决定于专家系统的发展,专家系统的发展必将推动人工智能的应用。
专家系统的开发有三个基本的要素:领域专家、知识工程师、大量实例。在建立专家系统时,首先由知识工程师把领域专家的专门知识总结出来,以适当的形式存入计算机,建立起知识库(KB),根据这些专门知识,系统可以进行推理,做出判断和决策,能够解决一些只有人类专家才能解决的困难问题。专家系统主要是指软件系统。
教学目的:
了解专家系统的基本概念 掌握专家系统的基本结构
掌握专家系统的知识获取方法和过程
了解专家系统的开发步骤、开发工具3.1 专家系统的基本概念 3.1.1 什么是专家系统?
目前,对专家系统还没有一个严格公认的形式化定义。作为一种一般的解释,可以认为:
专家系统是一种具有大量专门知识与经验的智能程序系统,它能运用领域专家多年积累的经验和专门知识,模拟领域专家的思维过程,解决该领域中需要专家才能解决的复杂问题。
从上述解释可以看出,专家系统包含三个方面的内容:(1)专家系统是一种程序系统,但又具有智能,因此它不同于一般的程序系统,而是一种能运用专家知识和经验进行推理的启发式程序系统;
(2)(3)专家系统的智能来源于领域专家的知识、经验及解决问题的诀窍; 专家系统所要解决的问题,一般是那些本来应该由领域专家才能解决的问题。
3.1.2 专家系统的分类
专家系统都是针对某一应用领域而建立的。不同应用领域的专家系统,其功能、设计方法及实现技术也各不同。
对专家系统的类型,可以有多种不同的划分方法。1.按求解问题的性质分类
海叶斯-罗斯(F.Heyes-Rose)按照求解问题的性质,将专家系统分为以下10种类型:
(1)解释型专家系统
解释型专家系统的任务是通过对已知信息和数据的分析与解释,确定它们的含义。其主要特点有:
系统处理的数据量很大,而且往往是不准确的、错误的或不完全的; 系统能够从不完全的信息中得出解释,并能对数据做出某种假设; 系统的推理过程可能很复杂和很长,因而要求系统具有对自身推理过程做出解释的能力。
如,卫星图像分析、集成电路分析、石油测井数据分析、染色体分类等。(2)预测型专家系统
预测型专家系统的任务是通过对过去或现在知识状况的分析,推断未来可能发生的情况。其主要特点有:
系统处理的数据随时间变化,而且可能是不正确或不完备的; 系统需有适应时间变化的动态模型,能够从不完全和不准确的信息中得出预报,并达到快速响应的要求;
预测型专家系统的例子,主要有气象预报、军事预测、人口预测、经济预测和作物产量预测等。(3)诊断型专家系统
诊断型专家系统的任务是根据观察到的情况来推断出某个对象机能失常的原因。其主要特点:
能够了解被诊断对象和客体各组成部分的特性,以及它们之间的联系;
能够区分一种现象及其所掩盖的另一种现象;
能够向用户提出测量的数据,并从不确切信息中得出尽可能正确的诊断。
诊断型专家系统的例子特别多,有医疗诊断、电子或机械故障诊断以及材料失效诊断等。如,MYCIN、CASNET。(4)设计型专家系统
设计型专家系统的任务是根据设计要求,求出满足设计问题约束的目标配置。其主要特点有:
善于从多方面的约束中得到符合要求的设计结果; 系统需要检索较大的可能解空间;
善于分析各种子问题,并处理好子问题间的相互作用;
能够试验性地构造出可能设计,并易于对所得设计方案进行修改; 能够使用已被证明是正确的设计来解释当前的设计。
设计型专家系统的例子主要有:电路设计、土木建筑工程设计、机械产品设计、生产工艺设计等。(5)规划型专家系统规划型专家系统的任务是要寻找出某个能够达到目标的动作序列或步骤。其主要特点有:
所要规划的目标可能是动态的或静止的;
所涉及的问题可能很复杂,要求系统能抓住重点,处理好各子目标间的关系和不确定的信息,并通过试验性动作得出可行的规划;
规划型专家系统可用于:机器人规划、交通运输调度、工程项目论证、通信与军事指挥以及农作物施肥方案规划等。(6)监视型专家系统
监视型专家系统的任务在于对系统、对象或过程的行为进行不断观察,并把观察到的行为与其应当具有的行为进行比较,以发现异常情况,发出警报。其主要特点有:
系统应具有快速反应能力,在造成事故之前及时报警; 系统发出的警报要有很高的精确度;
系统能够随时间和条件的变化而动态地处理其输入信息。
如,核电站的安全监视、防空监视与报警、国家财政的监控及农作物病虫害的监视与报警等。(7)控制型专家系统
控制型专家系统的任务是自适应地管理一个受控对象或客体的全面行为,使其满足预期要求。其主要特点有:
能够解释当前情况,预测未来可能发生的情况;
能够诊断可能发生的问题及其原因,不断修正计划,并控制计划的执行。
如,交通管制、商业管理、自主机器人控制、作战管理、生产过程控制和生产质量控制等许多方面。(8)调试型专家系统
调试型专家系统的任务是对失灵的对象给出处理意见和方法。它要求专家系统须具有规划、设计、预报和诊断等功能。
如,新产品或新系统的调试、维修设备的调整、测试与试验。(9)教学型专家系统任务:是根据学生的特点、弱点和基础知识,以最适当的教学方案和教学方法对学生进行教学和辅导。其主要特点有:
同时具有诊断和调试功能; 具有良好的人机界面。(10)修理型专家系统
任务:是对发生故障的对象(系统或设备)进行处理,使其恢复正常工作。主要特点同时肯有诊断、调试、计划和执行等功能。
此外,还有:决策型专家系统、管理型专家系统等。2.按求解问题的要求分类
斯特菲克(M.Stefike)等人根据专家系统求解问题的要求及其难易程度由低到高将专家系统分为10个不同的层次。
(1)具有可靠知识和数据的小型搜索空间的专家系统
P263
这类专家系统要求解的问题最简单,它所具有的知识和数据都十分可靠,且问题的解空间也比较小。像这类简单任务的专家系统,只需经过穷举搜索方式即可得到问题的解。事实上,对这类问题,也没有研制专家系统的必要。
(2)所用知识和数据不完全可靠的专家系统
启发性知识推理或不确定性推理
(3)所求解问题的推理需要随时间变化的专家系统
这类专家系统所依据的数据是随时间变化的,因此它应该能够描述和模拟各 种数据随时间变化的情况。事实上,对预测性、实时性要求高的专家系统,对时变推理的要求就更高。目前研制这类专家系统的难度较大。
(4)所求解的问题是可分解的专家系统
这类任务的专家系统,可以把解空间划分成一些较小的子空间,并采用剪枝的方法,以减少搜索范围和搜索空间。(5)所求解的问题是不可分解的专家系统
这类任务的专家系统不能采用分解和剪枝的方法,而只能采用抽象空间的方法,即先暂时忽略某些细节问题,而集中考虑那些重要的原 5 则性问题的求解方法。
(6)所求解的问题不能划分为固定子问题的专家系统
由于所求解的问题不存在固定的子问题划分或可进行适当抽象的固定子问题序列,因此对这类问题的抽象必须体现规划的可变结构,这就需要专家系统能够采用自顶向下求解的抽象方法来进行问题求解。
(7)各子问题有相互影响的专家系统
由于自顶向下求解方法缺乏问题求解的反馈信息,当各子问题间相互影响时,该方法不能很好地解决这类问题。对此,可采用最小冒险原则,即决策不应在不成熟的情况下随意做出,而应推迟到有足够的信息时再做出。(8)需要多重推理的专家系统
在许多任务中,单一推理路径的能力较弱,需要采用多重线路推理,综合运用不同推理模型的优点,来扩大专家系统解决问题的能力。(9)利用多知识源的专家系统
在求解复杂问题时,采用多种知识来源对问题进行综合分析,可取得明显效果。如,在语音理解专家系统中,往往需要多种知识来源,这些知识通常被放在一个称为黑板的工作区中。(10)使用统一知识表示方法的专家系统
为便于对系统中的知识进行统一管理、使用和解释,目前专家系统的发展是采用多种知识表示的统一知识表示方法,对日趋庞大的知识库进行有效的管理和组织。在这方面,用面向对象方法统一知识表示已被多数专家系统及其开发工具所采用,并取得了良好的效果。3.按系统的体系结构分类
按系统的体系结构,专家系统可分为4种类型。(1)集中式专家系统
这是一种对知识和推理进行集中管理的一类专家系统。目前,得到成功应用的专家系统多属于这一类型。对这类专家系统,又可按照知识及推理机构的组织方式,细分为层次式结构、深-浅双层结构、多层 6 聚焦结构和黑板结构等。
层次结构:是指具有多层推理机制,逐层进行推理的专家系统。如,青光眼诊断专家系统,其推理模型可分为症状层、病变层及诊断层。深-浅双层结构:是指系统分别具有深层知识(问题领域内的原理性知识)库和浅层知识(领域专家的经验知识)库,并且相应地有两个推理机分别作用于两个不同知识库的专家系统。
多层聚焦结构:是指知识库中的知识是按动态分层组织的专家系统。它把对当前推理最有用、最有希望推出结论的知识称为“焦点”,并把它置于聚焦结构的最上层,把有希望入选的知识放在第二层,以此类推。
黑板结构:是指那种有多个知识库和多个推理机,并通过一个结构化的公共数据区(称为黑板)来交换信息的专家系统。这种专家系统通常用在那些求解问题较复杂的系统中。(2)分布式专家系统
分布式专家系统是指具有分布处理能力以及多专家系统、多知识元的协同处理能力的专家系统。分布式专家系统的主要特点有:第一,系统中的数据、知识及控制不但在逻辑上,而且在物理上都是分布的;第二,系统中的诸机构通过计算机网络实现互连,这些机构之间相互协作,可以求解单个机构难以解决,甚至不能解决的问题。目前,基于多Agent的研究是分布式专家系统研究的重点。(3)神经网络专家系统
这是运行人工神经网络技术建造的专家系统,目前尚处于研究阶段。(4)符号系统与神经网络相结合的专家系统
这是把基于连接主义的神经网络与基于符号处理的专家系统有机结合形成的一种混合型专家系统。这种专家系统可以充分发挥神经网络与符号系统的优点,克服它们的缺点,实现优势互补。至于神经网络与符号系统的结合,可以有多种方式。
如,为充分发挥神经网络学习能力强的优势,可把它用于知识的自动获取,而推理仍用符号机制。3.1.3 专家系统的特点
专家系统的共同特点:(1)可具有一个或多个专家的知识和经验,能以接近于人类专家的水平在特定领域工作;
(2)能高效、准确、迅速地工作,不会像人类专家那样产生疲倦和不稳定;
(3)使人类专家的领域知识突破了时间和空间的限制,专家系统程序可永久保存,并可复制任意多的副本或在网上供不同地区或不同部分的人们使用;
(4)(5)(6)(7)(8)能进行有效推理,包括各种精确性推和非精确推理等; 具有透明性,能以可理解的方式解释推理过程;
具有自学习能力,可总结规律,不断扩充和完善系统自身; 能提高生产率,产生巨大的社会效益、经济效益等; 对推动人工智能等其他学科的发展具有重大作用。
总之,专家系统无论在当前还是未来,都是专家可以信赖和利用的高水平智能助手,是计算机革命的得力工具。3.2 专家系统的基本结构
专家系统的结构是指专家系统各组成部分的构造方法和组织形式。不同应用领域和不同类型的专家系统,其体系结构和功能也都不尽相同。
通常一个最基本的专家系统应由:知识库、数据库、推理机、解释机构、知识获取机构和用户界面6个部分组成。
图1 专家系统的基本结构其主要功能描述如下:
(1)知识库(Knowledge Base)知识库是指以某种存储结构存储领域专家的知识,包括事实和可行的操作与规则等。为了建立专家库,需对领域问题的专家知识,用相应的知识表示方法将其表示出来,然后再进行形式化,并经编码放入知识库中。
所以,专家库的建立,首先要解决知识获取与知识表示的问题。知识获取是指知识工程师如何从领域专家那里获得将要纳入知识库的知识。知识表示要解决的问题是如何使用计算机能够理解的形式来表示和存储知识的问题。
通常,知识库中的知识分为两大类型:一类是领域中的事实,称为事实性知识,这是一种广泛公用的知识,也即写在书本上的知识及常识;另一类是启发性知识,它是领域专家在长期工作实践中积累起来的经验总结。
(2)数据库
也称全局数据库或综合数据库。是用于存储与求解问题有关的初始数据(如,事实、数据、初始状态(证据))和推理过程中得到的中间数据。
如,在医疗专家系统中,数据库中存放的仅是当前患者的情况,如姓名、年龄、症状等及推理过程中得到的一些中间结果、病情等;
在气象专家系统中,数据库中存放的是当前气象要素,如云量、温度、气压以及推理得到的中间结果等。
由此看出,专家系统数据库只是一个存储很少的用于暂存中间信息的工作存储器(也称内涵数据库),而不是通常概念上的用于存放大量信息的数据库(也称外延数据库)。
(3)推理机
推理机是一组用来控制、协调整个专家系统的程序。它根据全局数据库的当前内容,从知识库中选择可匹配的规则,并通过执行规则来修改数据库中的内容,再通过不断地推理导出问题的结论。推理机中包含如何从知识库中选择规则的策略和当有多个可用规则时如何消解规则冲突的策略。
(4)解释机构
用于向用户解释专家系统的行为,包括解释“系统是怎样得出这一结论的”、“系统为什么要提出这样的问题来询问用户”等用户需要解释的问题。(5)知识获取机构
知识获取是专家系统的一种辅助功能,它可为修改知识库中的原有知识和扩充新知识提供相应手段。
知识获取机构的基本任务是把知识加入到知识库中,并负责维持知识的一致性及完整性,建立起性能良好的知识库。
通常,不同的专家系统,知识获取功能和实现方法差别较大。如,① 有的系统首先由知识工程师向领域专家获取知识,然后通过相应的知识编辑软件把知识送到知识库中;
② 有的系统自身就具有部分学习功能,由系统直接与领域专家对话获取知识;
③ 有的系统具有较强的学习功能,可在系统运行过程中通过归纳、总结,得出新的知识。
总之,不管采用方式,知识获取都是目前专家系统研究中的一个重要问题。
(6)用户界面
也称人机接口,主要用于系统和外界之间的通讯与信息交换。通常,专家系统的使用者,包括最终用户、领域专家、知识工程师。
在这三种人中,最终用户和领域专家一般都不是计算机专业人员,因此用户界面必须适应非计算机人员的需求,不仅应把系统的输出信息转换为便于用户理解的形式,而且还应使用户能方便地操纵系统运行。
一般来说,用户界面应尽可能拟人化,尽可能使用接近自然语言的计算机语言,并能理解声音、图像等多媒体信息。3.3 专家系统的开发条件
在实际应用中,并非任何领域都适合开发专家系统。除了支撑环境、实现技术等方面应具备的条件外,通常要考虑如下要求:
1.问题领域的合适性
① 应用领域有使用专家系统的需求
② 领域问题适合用专家系统解决
③ 领域问题使用专家系统的合理性
对一个特定的领域问题,是否需要为其开发专家系统,还需考虑它 10 的合理性。通常,如下情况开发专家系统是不合理的:
问题求解需要很高的代价;
人类专家的知识被遗忘或在知识传递中被损失; 领域专家的知识或经验稀少; 在许多场合下需要人类专家知识; 在危险场合下需要人类专家知识。
④ 领域问题的难度和规模要适中
太小,会使开发专家系统失去意义;太大,则会使专家系统难以建立,即使建成了,其处理效率也比较低。
一般来说,对于一个领域问题,要使人们解决问题的能力达到专家水平,就需要经过多年的学习和实践,那么,这样的专家系统才有使用价值和实际意义。
从知识库规模来看,或处理问题所需知识(规则)的数量在100-1000之间,则比较适合用来研制实用的专家系统。若只有几十条知识,则过于简单,这种专家系统只能是一个演示程序,没什么价值;若有数千或上万条知识才能解决该领域问题,则此种专家系统又过于庞大和复杂了。
⑤ 问题的领域范围不能太宽
由于受人工智能技术水平的限制,目前在知识获取、知识表示、知识处理与应用等方面还没有一种有效的通用技术。因此,一个实用的专家系统所处理的问题一般应限制在一个相对窄的领域内,而不能太宽。如,医疗领域,目前要开发一个能冶百病的专家系统还很困难。人们正致力于分布、协同式的新一代专家系统。
2.领域专家的参与和专家知识的可表达性
有高水平领域专家的参与、专家知识的可表达性与可获得性是开发专家系统的重要条件。
① 要有公认的高水平领域专家的积极参与
该领域的一流专家,他不仅具有广泛的专业知识,而且在解决该领域的专业问题方面比一般人能力强。一般来说,领域专家的水平越高,与他合作开发出来的专家系统的性能就越好,也更容易被别的同行专家和用户所承认。
② 领域专家的知识应该是可表达的③ 领域专家的经验应该是易获得的 3.4 专家系统的开发步骤
专家系统的开发是一项综合技术,一个成功的专家系统的开发需要知识工程师和领域专家的密切配合和坚持不懈的努力。
由软件工程的生命周期方法知,一个实用的专家系统的开发过程可类同一般软件系统的开发过程,分为认识、概念化、形式化、实现和测试等阶段。
① 认识阶段
知识工程师与领域专家合作,对领域问题进行需求分析。包括认识系统需要处理的问题范围、类型和各种重要特征、预期效益等,并确定系统开发所需的资源、人员、经费和进度等。
② 概念化阶段
把问题求解所需的专门知识概念化,确定概念之间的关系,并对任务进行划分,确定求解问题的控制流程和约束条件。
③ 形式化阶段
把已整理的概念、概念之间的关系和领域专门知识用适合于计算机表示和处理的形式化进行描述和表示,并选择合适的系统结构,确定数据结构、推理规则和有关控制策略,建立起问题求解模型。
④ 实现阶段
选择适当的程序语言或专家系统工具建立可执行的原型系统。⑤ 测试系统
通过大量的实例,检测原型系统的正确性及系统性能。通过测试原型系统,对反馈信息进行分析,进而进行必要的修改,包括重新认识问题,建立新的概念或修改概念之间的联系、完善知识表示与组织形式、丰富知识库的内容、改进推理方法等。
专家系统的这一开发过程,类似于一般软件系统开发过程的瀑布模型,各阶段目标明确,逐级深化。如下图所示。
图2 专家系统开发过程的瀑布模型
由于领域专家的知识是长期积累的经验和专门知识,因此知识工程师是不可能在短时间内获得所需的全部专家知识。这就需要采用增量式开发方法,即通过对基本功能的逐步扩大来完善系统。3.5 知识获取
知识获取一直是专家系统开发中的一个瓶颈问题。尽管已有许多人工智能工作者在这方面做了大量工作,希望实现知识的自动获取,即由建造的专家系统自动完成知识的获取,但至今仍无一种可以完全代替知识工程师的自动化方法。
目前,专家系统的知识获取一般是由知识工程师与专家系统中的知识获取机构共同完成的。知识工程师负责通过领域专家抽取知识,并用适当的知识表示方式把知识表示出来。专家系统的知识获取机构负责把知识转换为计算机可存储的内部形式,把它们存入知识库。在知识存储的过程中,要对知识进行一致性、完整性的检测。
3.5.1 知识获取的任务与方式
知识获取一般是指从某个或某些知识源中获取专家系统实现问题求解所需要的专门知识,并以某种形式在计算机中存储、传输与转移。知识获取的基本任务是为专家系统获取知识,建立起健全、完善、有效的知识库,以满足求解领域问题的需要。
1.知识获取的任务
主要做以下几方面工作:(1)抽取知识
抽取知识是指把蕴含于知识源(领域专家、书本、相关论文及系统的运行实践等)中的知识经过识别、理解、筛选、归纳等抽取出来,以用于建立知识库。
通常,知识并不是以某种现成的形式存在于知识源中的,为了从知识源中抽取知识还需要做大量的工作。如,对领域专家,虽然他们有丰富的知识和经验解决该领域中的各种困难问题,但他们往往缺少对自己经验的总结与归纳,甚至有些经验是只可意会不可言传的。
另一方面,如果要求系统能够在自身的运行实践中通过机器学习功能从已有知识或实例中演绎、归纳出新知识,则系统自身必须具有一定的“学习”能力。这是对抽取知识的更高要求。
(2)知识表示
通常,知识源中的知识是以自然语言、图形、表格等形式表示的,而知识库中的知识则是用计算机能够识别的形式来表示的,二者之间有很大的差别。为使专家系统能够使用从知识源中抽取出来的知识,首先需要把这些知识用适当的知识表示出来。这一工作,通常是由工程师来完成的。
(3)知识输入
把用某种知识表示方法表示的知识经编辑、编译送入知识库的过程称为知识输入。目前,知识输入一般有两条途径:
① 利用计算机系统提供的编辑软件;(优点:简单、方便,无须编制专门程序即可直接使用)
② 利用专门编辑的知识编辑系统。(优点:针对性、实用性强,更符合知识输入的要求)
(4)知识检测
知识库的建立是通过对知识进行抽取、表示、输入等环节实现的,任何环节上的失误都会造成知识错误,直接影响到专家系统的性能。因此,必须对知识库进行检测,以便尽早发现和纠正可能出现的错误。
检测的主要任务是知识库中知识的一致性和完整性。2.知识获取的方式
知识获取的方式很多,如,按知识获取所要解决的问题,可将知识分为手功知识获取、智能知识编辑、知识发现系统及人工神经网络等知识获取方式;按知识获取的自动化程度分,知识获取可分为非自动知识获取和自动知识获取两种方式。
(1)手工知识获取
是一种通过知识工程师与领域专家长时间接触与多次交谈,直接从领域专家的经验中,或者在领域专家的指导下从其他知识源中提取知识的方法。
所谓知识工程师,实际上是专家系统设计者与领域专家之间的一个中介专家,他既懂得如何与领域专家打交道,从领域专家或其他知识源中获得专家系统所需的知识,又熟悉知识处理,把获得的知识用合适的知识表示方法表示出来。
在实际专家系统的建造中,知识工程师的大多数工作是由专家系统的设计者及建造者担任的。知识工程师的主要任务为
与专家交谈,阅读有关文献,获取专家系统所需的原始知识; 对获得的原始知识进行分析、归纳、整理,形成用自然语言表达的知识条款,然后交领域专家审查。经反复交流,最后把知识条款确定下来;
把最后确定的知识条款用知识表示语言表示出来,交知识编辑器进行编辑输入。
(2)智能知识编辑
这种方法是建立一个智能知识编辑器,让拥有领域知识的专家通过智能知识编辑器直接与专家系统打交道,并由智能知识编辑器自动生成知识库。
所谓智能知识编辑器是指那种具有关于知识库结构的知识和会话能力的知识获取机构。此法目前备受重视。
(3)知识发现系统
这种方法是建立一个带有归纳、类比或其他高级功能的知识发现系统,是指通过实例或实际问题来总结、发现一些尚未为专家系统掌握或认识的新知识,将其装入知识库,使知识库的知识不断完善丰富。这种知识获取方法已成为机器学习的主要研究内容。
(4)人工神经网络知识获取
ANN是一种具有学习、联想和自组织能力的智能系统。在专家系统中,可利用人工神经网络的学习、联想、并行分布式等功能解决专家系统开发中的知识获取、表达和并行推理等问题。
建立ANN专家系统不需要组织大量的规则,也不需要进行树的搜索,而且通过神经网络可使机器进行自组织、自学习,不断地充实、丰富专家系统中原有的知识库,使专家系统中最困难的知识获取问题得到很好的解决。在范例十分丰 15 富情况下,还可借助ANN的学习机制来解决非精确推理中构造知识库的问题。
(5)非自动知识获取
此法分两步:首先由知识工程师从领域专家或其他知识源获取知识,然后再由知识工程师用某种知识编辑软件把它送到知识库中。涉及的技术有:
现场观察 问题讨论
问题描述(由领域专家描述) 问题分析(由领域专家分析) 系统精化
系统检查(由领域专家检查和评价) 系统验证(由领域专家验证)(6)自动知识获取
所谓自动知识获取是指系统自身具有获取知识的能力,它不仅可以直接与领域专家对话,从专家提供的原始信息中“学习”专家系统所需要的知识,而且还能从系统运行实践中总结、归纳出新的知识,发现和改正自身存在的错误,并通过不断地自我完善,使知识库逐步趋于完整、一致。为达此目的,它至少应具有如下能力:
具有语音、文字、图像的识别能力 具有理解、分析、归纳的能力 具有从自身运行过程中学习的能力
总之,知识的自动获取是一种理想的专家系统知识获取方式,涉及诸多研究领域,如,模式识别、自然语言理解、机器学习等。目前尚处于研究阶段,实现真正意义上的自动知识获取还任重道远。3.6 专家系统的评价
严格地说,评价是贯穿于整个专家系统建造过程的一项工作,只不过在开始阶段进行的评价可以是非正式的,而随着系统开发的深入,其评价工作应该越来越正式。
一般来说,当完成了系统原型的建造后,评价工作就必须随之进行,并同时利用评价结果去改进系统;当系统全部完成准备投入实际运行前,还应该对整个系统做最后的评价。
目前,关于如何评价一个专家系统,尚无统一的标准。通常按如下三原则: 1.评价方法
评价专家系统的基本方法有两种:
① “轶事”的方法
此法是简单地启发式地使用一些例子来检测系统的工作情况,以评价系统的性能。这是人们在日常生活中经常使用的一种方法。如,人们往往用一个医生冶愈疑难病症的情况去评价该医生的医术水平。
② 实验的方法
此法强调通过实验来评价系统在处理数据库中的各种问题事例时的性能。要使用这种方法,必须规定某种严格的试验过程,以便把系统产生的解释与相应事例的实际解释进行比较。
此法看起来比轶事方法优越,但在具体实现方面和得到有代表性的事例方面,常会遇到一些严重困难。如,在医学领域,要得到一些常见病的病例比较容易,但要得到那些非常见病的有代表性的病例就比较困难。
2.评价内容
评价内容主要侧重于专家系统的正确性与实用性。它包括如下一些主要方面:
知识库中的知识是否正确和准确?
知识库中知识的一致性和完整性是否满足要求? 知识的表达方式是否合适?组织方式是否合理?
系统的推理是否正确?对各种问题能否给出正确答案?结果的可信度如何?
系统的解释功能是否完全与合理?
用户界面是否友好?使用是否方便?能否满足用户需求? 系统的解题效率如何?系统的响应速度能否满足用户要求? 系统的可扩展性和可移植性如何? 3.评价原则
概括起来,对专家系统的评价大致有以下原则: 评价系统的性能,看其是否达到了领域专家的水平,是否达到了实用的程度;
评价系统的灵活性,看是否便于修改和扩充知识库中的知识; 评价系统的透明性,看其解题过程及系统本身是否容易被用户和维护人员所理解?
评价系统的可用性,包括系统的使用方法是否简单易行,人机通信是否直观,运行效率是否令人满意,能否推广应用等;
评价系统的运行效率,看系统能否产生预期的经济效益和社会效益; 评价系统的意义,看系统的实现技术是否对促进专家系统的推广和发展有积极意义。
3.6 专家系统的开发工具与环境
所谓专家系统的开发工具与环境,实际上是一种为高效率开发专家系统而设计的高级程序系统或高级程序设计语言环境。
一般不同应用领域的专家系统,其基本结构和工作方式相似,但其领域知识却截然不同。前者体现了各种专家系统开发中的共性,后者则体现了不同专家系统中的个性。专家系统开发中的这种共性和个性,为各种开发工具的使用提供了基础。
从目前的现状看,专家系统开发工具和环境主要分为如下的5种类型: 1.程序设计语言
程序设计语言包括通用程序设计语言和人工智能语言。
通用程序设计语言的主要代表有:C、PASCAL、ADA等; 人工智能语言的主要代表有:LISP函数型语言、PROLOG逻辑型语言,以及C++、JAVA等为代表的面象对象语言。
2.知识工程语言
知识工程语言是一类专门用来建造和调试专家系统的语言,是为开发专家系统专门设计的一些特殊的高级工具。知识工程语言的种类很多,它们的复杂程度和具有的各种设施也各不相同。根据设计背景的不同,可将其划分为:骨架型知识工程语言和通用型知识工程语言两种。
(1)骨架型知识工程语言(Skeletal Knowledge Engineering Language)也称专家系统外壳,它是由一些已经成熟的具体专家系统演变而来的。其演变方法是:抽去这些专家系统中的具体知识,保留它们的体系结构和功能,再把专用的界面改为通用界面。这样,就可得到相应的专家系统外壳。可见,在专家系统外壳中,知识表示模式、推理机制等都是确定下来的。
由于专家系统外壳是一个精练出来的专家系统空壳,它缺少的只有知识,因此,当用它来建造专家系统时,只须把相应领域的专家知识用外壳规定的模式表示出来并装入知识库,就可快速地产生一个新的专家系统。
在专家系统发展过程中,发挥重要作用的专家系统外壳主要有:EMYCIN、KAS及EXPERT等。
(2)通用型知识工程语言(General Knowledge Engineering Language)也称为通用型专家系统开发工具,它是不依赖于任何已有专家系统,不针对任何具体领域,完全重新设计的一类专家系统开发工具。
与骨架系统相比,它具有更大的灵活性和通用性,并且对数据及知识的存取和查询提供了更多的控制手段。如,OPS5 OPS是美国卡内基—梅隆大学(CMU)的McDermott、Newell等人用LISP语言研制开发的一个基于规则的通用型知识工程语言。它自1975年诞生至今,已有OPS1,OPS2、OPS3、OPS4、OPS5、OPS5+、OPS5e、OPS7、OPS83等不同版本。这些版本之间差异较大,其中最有代表性的版本是OPS5。
OPS5由产生式规则库、推理机及综合数据库三部分组成。
OPS5的产生式规则库是一个无序规则的集合。规则库中的每条规则由规则名、条件及结论三部分组成,其一般形式为:
(P →)
OPS5的推理机只提供前向推理,推理机按照“匹配---冲突消解---执行”的模式周期性地工作,直至求出了问题的解,或者没有规则的条件可被满足为止。
OPS5的综合数据库,用于存储当前求解问题的已知事实及求解过程中所得到的中间结论等。
OPS5的解释机制可以提供方便的交互式程序设计环境,用户可以跟踪、中断、检查、修改系统的状态,并能在运行过程中调试程序。这一特点对大型产生式系统具有重要意义。OPS5已被用来开发了许多专家系统。如,用于帮助空军指挥员在航空母舰上指挥飞机起降的专家系统AIRPLAN等。
3.辅助型工具
辅助型工具是专家系统开发工具中支撑环境的一部分。与通用专家系统开发工具不同的是,这类工具主要包括一些用来帮助获取知识、表达知识的程序,以及帮助知识工程师在已定结构下设计专家系统的程序。这些程序一般承担着十分复杂的任务。
目前,已有一些实用的专家系统辅助工具问世。对这些工具,若按功能和特性可分为以下几种:
(1)专家系统设计辅助工具
用来实现专家系统的辅助设计。如,美国斯坦福大学开发的AGE等
(2)专家系统归纳工具
用来帮助开发者从大量的初始实例出发,归纳产生出规则或决策树,并排定以后用于咨询时向用户提问的顺序。(3)专家系统知识获取辅助工具
用来辅助专家系统进行知识获取,以加快专家系统的开发过程。如美国斯坦福大学开发的TEIRESIAS等。
(4)专家系统辅助建造工具
用来辅助建造专家系统。如,美国斯坦福大学开发的ROGET就是一个用来帮助领域专家直接建造诊断型专家系统的知识库的一个辅助工具。4.支持工具
也称为专家系统支持环境或支持工具集。通常,专家系统支持工具由辅助调试、知识库编辑器、输入/输出界面及解释工具体4个典型部分组成。它们用来实现与专家系统建造工具的连接,或作为它的一部分,以帮助用户与专家系统对话,辅助调试程序。
辅助调试工具与多数程序设计语言和知识工程语言一样,提供了相应的跟踪辅助功能及中断设施等。
知识库编辑器是一种基于文本编辑的知识编辑工具,它不仅简化了向系统输 20 入知识的任务,也减少了在构造和修改知识库时因编辑所产生的错误。其中,自动簿记模块用来记录用户对规则进行修改时的相关信息;语法检查模块用来帮助用户避免在打印上和句法上产生错误;一致性检查模块用来检查输入的规则和数据是否与系统已存在的知识相矛盾;知识抽取模块用来帮助实现新知识的输入。
输入/输出界面提供了实时知识获取工具和可让用户选择的多种不同输入/输出方式。
辅助解释工具用来向用户解释系统是如何得到某个特定结果的。
目前,已有不少专家系统支持工具。如,MORE是卡内基---梅隆大学研制的一个通过访问领域专家产生诊断规则的专家系统支持工具。
5.专家系统开发环境
专家系统开发环境是一种为高效率开发专家系统而设计和实现的大型智能计算机软件系统。随着AI技术和知识工程技术的不断发展,专家系统开发工具正朝着大型、通用、多功能的方向发展。
目前,国外已有一批较有影响的专家系统开发环境,如KEE、GUGU等。国内有1990年完成的《天马》专家系统开发环境。3.7 专家系统的进一步发展
对专家系统的发展,有一种观点认为专家系统需要采用各种定性模型,如物理的、感知的、认知的和社会的系统模型;另一种观点认为专家系统除采用各种定性模型外,还要运用人工智能和计算机技术的一些新思想与新技术,如分布式、协同式和学习机制等。3.7.1 新一代专家系统的特征
新一代专家系统应具有以下特征: 并行分布式处理 多专家协同工作 高级语言和知识语言描述 具有学习功能 引入新的推理机制 具有纠错和自完善能力 先进的智能人机接口3.7.2 分布式专家系统
其目的在于把一个专家系统的功能经分解以后分布到各个处理机上去并行工作,从而在总体上提高系统的处理效率。为设计一个分布式专家系统,一般需要解决下述问题:
(1)功能分布
把系统功能分解为多个子功能,并均衡地分配到各个处理节点上。每个节点上实现一个或两个子功能,各节点合在一起作为一个整体完成一个完整的任务。
(2)知识分布
根据功能分布的情况,把有关知识合理划后,分配到各个处理节点上。
(3)接口设计
各个部分之间要相互独立,接口要易于通信、易于同步。
(4)系统结构
系统结构一方面与问题本身的性质有关,另一方面与硬件环境有关。
(5)驱动方式
系统各模块之间的驱动方式有以下几种:
控制驱动---当需要某个模块工作时,就直接将控制转到该模块,或将它作为一个过程直接进行调用;
数据驱动---当一个模块的输入数据齐备后,该模块就自动启动工作;
要求驱动---也称目标驱动,即从最顶层的目标开始逐层驱动下层的子目标;
事件驱动---当且仅当一个模块的相应事件集合中的所有事件都已经发生时,才驱动该模块开始工作。
3.7.3 协同式专家系统
当前现存的专家系统一般为单个专家系统,其解决问题的领域很窄,很难获得满意的应用。协同式专家系统是克服单专家系统局限性的一个重要途径。
协同式专家系统也称为“群专家系统”,是一种能综合若干个相近领域或一个领域的多个方面的分专家系统相互协作,共同解决一个更广领域问题的专家系统。协同式专家系统和分布式专家系统有一定的共性,它们都会涉及到多个分专家系统。但是,分布式强调的是处理的分布和知识的分布,它要求系统必须在多个处理机上运行;而协调式强调的是分系统之间的协同合作,各分专家系统也可在同一个处理机上运行。
要设计协同式专家系统,一般要解决以下几个问题:(1)任务的分解
根据领域知识,将确定的总任务合理地划分为若干个子任务(各个子任务间允许有一定的重叠),每个子任务对应着一个分专家系统。
(2)公共知识的导出
把各子任务所需知识的公共部分分离出来形成一个公共知识库,供各分专家系统共享。
(3)“讨论”方式
用“黑板”(即设在内存的一个可供各分专家系统随机存取的存储区)作为各分专家系统进行讨论的园地。
(4)裁决问题
所谓裁决问题是指如何由多个分专家系统来决定某个问题。其解决办法与问题的性质有关,若为选择问题,可采用少数服从多数的方法;若为评分问题,则可采用加权平均法等办法;若为互补问题,则可采用互相配合的方法。
(5)驱动方式
这个问题与分布式专家系统中所采用的驱动方式基本上是一样的。在分布式专家系统中介绍的驱动方式对协同式专家系统同样可用。