专家系统概述1.什么是专家系统•它是一个智能程序系统;•它具有相关领域内大量的专家知识;•它能应用人工智能技术模拟人类专家求解问题的思维过程进行推理,解决相关领域内的困难问题,并且达到领域专家的水平。•专家系统是一种具有大量专门知识与经验的智能程序系统,它能运用领域专家多年积累的经验和专门知识,模拟领域专家的思维过程,解决该领域中需要专家才能解决的复杂问题。1.什么是专家系统•自1968年研制成功第一个专家系统DENDRAL以来,专家系统技术发展非常迅速且日益成熟。•专家系统的应用领域已扩展到数学、物理、化学、医学、地质、气象、农业、法律、教育、交通运输、机械、艺术以及计算机科学本身,甚至渗透到政治、经济、军事等重大决策部门,产生了巨大的社会效益和经济效益,同时也促进了人工智能基本理论和基本技术的发展。2.专家系统的基本特征1)具有专家水平的专门知识–数据级知识:具体问题所提供的初始事实、问题求解过程中所产生的中间结论、最终结论等。•例如:病人的症状,化验结果,专家推出的病因、治疗方案等。–知识库级知识:专家的知识,专家系统的基础,系统的性能取决于知识的数量和质量。•例如:医学常识,医生诊治疾病的经验等。–控制级知识:关于如何运用前两种知识的知识。•例如:搜索策略。2.专家系统的基本特征2)能进行有效的推理–根据用户提供的已知事实,通过运用掌握的知识,进行有效的推理,以实现对问题的求解。•精确推理•不确定性推理•不完全推理•试探性推理2.专家系统的基本特征3)具有获取知识的能力–建立知识编辑器,把领域知识“传授”给专家系统,建立知识库。–系统自身具有学习能力,能从系统运行中总结出新知识,使知识库越来越丰富,完善。4)具有灵活性–知识库—推理机分离。2.专家系统的基本特征5)具有透明性–透明性:是指系统自身及其行为能被用户所理解。–解释机构:向用户解释它的行为动机及得出某些答案的推理过程。6)具有交互性–专家系统一般都是交互系统。–获取知识(对话中)。–回答用户的询问(对话中)。2.专家系统的基本特征7)具有实用性–专家系统是根据领域问题的实际需求开发的。8)具有一定的复杂性及难度–专家系统拥有知识,能运用知识进行推理,以模拟人类求解问题的思维过程。–知识—丰富。–思维—多种多样。3.专家系统与一般程序的区别1)常规程序=数据结构+算法;专家系统=知识+推理。2)常规程序把问题求解的知识隐含于程序中(数据级、程序级);专家系统把问题求解的知识独立的组成知识库(数据级、知识库级、控制级)。3)常规程序面向数值计算和数据处理,顺序确定;专家系统面向符号处理,推理过程不确定。4)常规程序是精确的;专家系统不精确、模糊的。5)专家系统具有解释机构;常规程序没有。6)常规程序与专家系统具有不同的体系结构。4.专家系统的分类•按专家系统的特性及处理问题的类型分类。(1)解释型:从所得到的有关数据,经过分析、推理,从而给出相应解释的一类专家系统。•特点:必须能处理不完全,甚至受到干扰的信息,并能对所得到的数据给出一致且正确的解释。(2)诊断型:根据输入信息推出相应对象存在的故障,找出产生故障的原因,给出排除故障的方案的一类专家系统。•特点:要求掌握处理对象内部各部件的功能及相互关系,特别要注意多种故障并存,间歇性故障。4.专家系统的分类(3)预测型:根据相关对象的过去及当前状况来推测未来情况一类专家系统。–特点:这类系统通常需要有相应模型的支持,时间推理是这类系统中常用的技术。(4)设计型:按给定要求进行相应设计的一类专家系统,工程设计、电路设计、建筑及装修设计等。–特点:在给定限制条件下能给出最佳或较佳设计方案。4.专家系统的分类(5)规划型:按给定目标拟定总体规划、行动计划、运筹优化等的一类专家系统。–特点:在给定的约束条件下能以较小的代价达到给定的目标。(6)控制型:对各种大型设备及系统实现控制的一类专家系统。一般有数字和非数字两种模式。–特点:能直接接收来自被控对象的信息,并能迅速地进行处理,及时做出判断和采取相应的控制能力。4.专家系统的分类(7)监测型:用于完成实时监测任务的一类专家系统。–特点:随时收集任何有意义的信息,并能迅速地对得到的信息进行鉴别、分析、处理、一旦发现异常,能尽快做出反应。(8)维修型:用于制定排除某类故障的规划并实施排除的一类专家系统。–特点:要求能根据故障的特点制定纠错方案、并能实施这个方案排除故障,当制定的方案失效,部分失效,能及时采取补救措施。4.专家系统的分类(9)教育型:用于辅助教学一类的专家系。–特点:要求有以深层知识为基础的解释功能,需建立各种相应的模型。(10)调试型:对系统实施调试一类的专家系统。–特点:能根据相应的标准检测被调试对象存在的错误,能从多种纠错方案中造出适用于当前情况的最佳方案,排除错误。(11)决策型(12)管理型4.专家系统的分类•从结构化划分有四种专家系统(1)集中式专家系统(2)分布式专家系统(3)神经网络专家系统(4)符号系统与神经网络相结合的专家系统5.专家系统的一般结构人机接口解释机构推理机知识获取机构数据库及其管理系统知识库及其管理系统用户领域专家、知识工程师人机接口•用于完成输入、输出工作。•进行内部表示形式与外部表示形式的转换。•专家系统的使用者包括最终用户、领域专家、知识工程师。•两种接口方式:–菜单方式–命令语言方式知识获取机构•是把知识输入到知识库中,并负责维持知识的一致性及完整性,建立起性能良好的知识库,是专家系统的一个“瓶颈”。•编辑软件输入。•自身学习功能。知识库及其管理系统•知识库:是知识的存储机构,用于存储领域内的原理性知识、专家的经验性知识,有关事实等。•知识来源于获取机构;为推理机提供知识。•知识库管理系统:负责对知识库中的知识进行组织,检索、维护等。推理机•是“思维”机构,是构成专家系统的核心部分。任务是模拟领域专家的思维过程,控制并执行对问题的求解。•推理机的性能与知识的表示方式及组织方式有关,与知识的内容无关,有利于推理机与知识库的独立。•推理机的搜索策略使用了与领域有关的启发性知识。为了保证推理机与知识库的独立性,采用元知识来表示启发性知识。数据库及其管理系统•数据库(综合数据库、黑板)存放事实、问题描述、中间和最终结果、运行信息的工作存储器。•数据库管理系统—普通数据库功能,使数据的表示方法与知识的表示方法保持一致。解释机构•能对自己的行为作出解释,回答用户提出的“为什么”,结论如何得出等。由一组程序组成,它能跟踪并记录推理过程,对用户提出的询问给予解释。6.知识获取•知识获取一直是专家系统开发中的一个瓶颈问题。•目前,专家系统的知识获取一般是由知识工程师与专家系统中的知识获取机构共同完成的。•至今仍无一种可以完全代替知识工程师的自动化方法。知识获取的任务•知识获取的基本任务是为专家系统获取知识,建立起健全、完善、有效的知识库,以满足领域问题求解的需求。为此,需要做以下几项工作。–抽取知识–知识的转换–知识的输入–知识的检测(1)抽取知识•抽取知识是指把蕴含于知识源(领域专家、书本、相关论文、经验数据)中的知识经识别、理解、筛选、归纳等处理后抽取出来,以便用于知识库的建立。•通常,知识并不是以某种现成的形式存在于知识源中的。例如,对领域专家往往缺少对自己经验的总结与归纳,甚至是只可意会不可言传的。•另一方面,系统能够在自身的运行实践中通过机器学习功能从已有知识或实例中演绎、归纳出新知识,系统自身必须具有一定的“学习”能力。(2)知识的转换•通常,知识是以自然语言、图形、表格等形式表示的,而知识库中的知识则是用计算机能够识别的形式来表示的,二者之间有很大差别。•把抽取的知识转换为某种知识表示形式(知识工程师)。•把该模式的知识转换为系统内部形式(输入编译)。(3)知识的输入•把用某种知识表示方法表示的知识经编辑、编译送入知识库的过程称为知识输入。•知识的输入一般有两条途径:–利用计算机系统提供的编辑软件。优点是简单、方便,无须编制专门程序即可直接使用。–利用专门编制的知识编辑系统。优点是针对性、实用性强,更符合知识输入的要求。(4)知识的检测•在上述建立知识库的过程中,无论哪一步出现错误,都会直接影响到专家系统的性能。因此,必须对知识库进行检测,以便尽早发现和纠正可能出现的错误。检测的主要任务是知识库中知识的一致性和完整性。知识获取方法•非自动知识获取–首先由知识工程师从领域专家或其他知识源获取知识–然后再由知识工程师用某种知识编辑软件把它送到知识库中。知识工程师知识编辑器阅读知识库对话科技文献领域专家知识获取方法•自动知识获取–所谓自动知识获取是指系统自身具有获取知识的能力,它不仅可以直接与领域专家对话,从专家提供的原始信息中“学习”专家系统所需要的知识,而且还能从系统运行实践中总结、归纳出新的知识,发现和改正自身存在的错误,并通过不断地自我完善,使知识库逐步趋于完整一致。7.专家系统的建造与评价专家系统的建造原则(1)恰当地划定求解问题的领域•系统的设计目标•领域专家的知识面及水平(2)获取完备的知识完备的知识指其数量能满足问题求解的需要,质量上要保证知识的一致性以及完整性。(3)知识库与推理机分离:可实现正向、逆向、混合推理。7.专家系统的建造与评价(4)选择、设计合适的知识表示模式:充分考虑领域知识的特点,表示模型与推理模型统筹。(5)推理应能模拟领域专家求解问题的思维过程。(6)建立友好的交互环境。(7)渐增式的开发策略。8.专家系统的开发过程•知识工程–辅助人类专家的知识处理系统–主要功能:推理、评估、预测、规划、解释–处理对象:知识和数据–运行机制:难以确定的•软件工程–社会事务处理的信息处理系统–主要功能:查找、统计、排序–处理对象:数据–运行机制:是确定的8.专家系统的开发过程•知识工程的生命周期•建造专家系统的过程(分为八个阶段)系统设计知识获取编程调试原型测试修正与扩充系统包装与总调系统维护需求分析8.专家系统的开发过程•需求分析任务–对用户领域专家进行调查研究–确定专家系统目标任务–可行性分析,形成书面报告8.专家系统的开发过程•系统设计:分总体设计、详细设计两阶段–总体设计要完成以下工作•确定专家系统类型•确定系统的体系结构•确定知识的表示模式及知识库的结构•确定问题的求解策略•确定用户的接口方式•硬、软件配置及工具的选择–详细设计要求完成的工作•进行模块化设计•模块间的界面要清晰,便于通信•便于实现8.专家系统的开发过程•知识获取–与领域专家交谈,抽取所需知识,掌握专家处理问题的方法、思路–查阅有关文献、获得有关概念的描述、参数–对获得的知识进行分析、比较、归纳、整理、找出知识的内在联系、规律–对所得知识进行检查–对确定下来的知识用总体设计时确定的知识表示模式表示出来8.专家系统的开发过程•编程、调试–模块设计–分调、联调•原型测试–可靠性:事实--结论对否,推理可信度,模糊性–知识的一致性:输入不一致性的知识,是否可检测出–运行效率:知识查询、推理方面的运行效率–解释能力:回答问题是否达到要求,是否有说服力,质量8.专家系统的开发过程•修正与扩充•系统包装及总调–设计生成各类人--机界面–增设、调整人机界面与系统内部模块及知识库的接口–总调--用已有定论的实例–生成各类文档•系统维护:规则维护9.专家系统的评价(1)知识的完备性。(2)表示方法及组织方法适当性。(3)求解问题的质量。(4)系统的效率:指系统运行时对系统资源的利用率、时空开销。(5)人机交互的便利性。(6)系统的可维护性。(7)解释能力。(8)系统研制时间与效益。9.专家系统的开发工具•目前已有的开发工具分为四类–人工智能语言–专家系统外壳–通用型专家系统工具–专家系统开发环境9.1人工智能语言(1)表处理语言LISP(ListProcessingLanguage)•是麦卡锡和他的研究小组在1960年研制实现的人工智能语言•LISP特点–适合于处理符号的语言–是一种典型的函数型语言,没有语句的概念–LISP程序:一串