专家系统及其应用计算机12班马洪旭01055050mhx1220@mailei.xjtu.edu.cn一.专家系统的基本概念1.何谓专家系统专家系统是一种模拟人类专家解决领域问题的计算机程序系统。专家系统内部含有大量的某个领域的专家水平的知识与经验,能够运用人类专家的知识和解决问题的方法进行推理和判断,模拟人类专家的决策过程,来解决该领域的复杂问题。专家系统是人工智能应用研究最活跃和最广泛的应用领域之一,涉及到社会各个方面,各种专家系统已遍布各个专业领域,取得很大的成功。根据专家系统处理的问题的类型,把专家系统分为解释型、诊断型、调试型、维修型、教育型、预测型、规划型、设计型和控制型等10种类型。具体应用就很多了,例如血液凝结疾病诊断系统、电话电缆维护专家系统、花布图案设计和花布印染专家系统等等。为了实现专家系统,必须要存储有该专门领域中经过事先总结、分析并按某种模式表示的专家知识(组成知识库),以及拥有类似于领域专家解决实际问题的推理机制(构成推理机)。系统能对输入信息进行处理,并运用知识进行推理,做出决策和判断,其解决问题的水平达到或接近专家的水平,因此能起到专家或专家助手的作用。开发专家系统的关键是表示和运用专家知识,即来自领域专家的己被证明对解决有关领域内的典型问题有用的事实和过程。目前,专家系统主要采用基于规则的知识表示和推理技术。由于领域的知识更多是不精确或不确定的,因此,不确定的知识表示与知识推理是专家系统开发与研究的重要课题。此外,专家系统开发工具的研制发展也很迅速,这对扩大专家系统的应用范围,加快专家系统的开发过程,将起到积极地促进作用。随着计算机科学技术整体水平的提高,分布式专家系统、协同式专家系统等新一代专家系统的研究也发展很快。在新一代专家系统中,不但采用基于规则的推理方法,而且采用了诸如人工神经网络的方法与技术。2.专家系统的基本结构专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成。在其中,知识库是专家系统质量是否优越的关键所在,即知识库中知识的质量和数量决定着专家系统的质量水平。一般来说,专家系统中的知识库与专家系统程序是相互独立的,用户可以通过改变、完善知识库中的知识内容来提高专家系统的性能。人工智能中的知识表示形式有产生式、框架、语意网络等,而在专家系统中运用得较为普遍的知识是产生式规则。产生式规则以IF…THEN…的形式出现,就像编程语言里的条件语句一样,IF后面跟的是条件(前件),THEN后面的是结论(后件),条件与结论均可以通过逻辑运算AND、OR、NOT进行复合。在这里,产生式规则的理解非常简单:如果前提条件得到满足,就产生相应的动作或结论。产生式专家系统的知识库中包含了大量的规则,换言之,这里的知识库就是一个规则集。推理机针对当前问题的条件或已知信息,反复匹配知识库中的规则,获得新的结论,以得到问题求解结果。在这里,推理方式可以有正向和反向推理两种。正向推理是从前件匹配到结论,反向推理则先假设一个结论成立,看它的条件有没有得到满足。由此可见,推理机就如同专家解决问题的思维方式,知识库就是通过推理机来实现其价值的。人机界面是系统与用户进行交流时的界面。通过该界面,用户输入基本信息、回答系统提出的相关问题,并输出推理结果及相关的解释等。综合数据库专门用于存储推理过程中所需的原始数据、中间结果和最终结论,往往是作为暂时的存储区。解释器能够根据用户的提问,对结论、求解过程做出说明,因而使专家系统更具有人情味。知识获取是专家系统知识库是否优越的关键,也是专家系统设计的“瓶颈”问题,通过知识获取,可以扩充和修改知识库中的内容,也可以实现自动学习功能。二.专家系统的特性(和人类专家相比)1.不受时间限制:人类专家的工作时间有限,但专家系统是恒久,一旦开发完成,可随时使用,并可二十四小时持续运作。2.操作成本低:人类专家稀少且昂贵,虽然专家系统的在起步发展时必须花一笔不小的经费,但日常操作的成本比起人类专家便宜许多。因此在专家不在或经济上请专家不合算的情况下,利用专家系统仍能处理与专家相等水准的工作。3.易于传递及复制:专家与专家知识是稀有的资源,在知识密集的工作环境下,新进人员需要作相当多的训练,而关键人物的知识随着人事变动而不能储存,在传递起来亦是耗时费力。但专家系统则不然,它能轻易地将知识传递或复制。4.具有一致性:人类专家在判断决策的结果常会因时或因人而异,而专家系统对于所处理的问题则具有一致性的输出。5.可处理费时及复杂的问题:由于专家系统具有既定的知识库与严谨的推理程序,因此往往比人类专家还能胜任一些执行起来较费时、复杂度较高的工作,如6。需要庞大计算量的问题。另外,若工作的内容重复性很高,专家系统尤其能比人类专家有更佳的表现。7.使用于特定领域:由于搜集知识库建构以及推理规则建构的有一定的困难,因此专家系统通常只使用于小范围的特定知识领域。而当问题的知识牵涉较广,或是没有一定的处理程序时,就必须靠人类专家的智慧来处理。三.专家系统的建立和工作1.专家系统的建立专家系统的建立必须遵循一定的程序一步步进行。一般来说,首先要确认欲解决的问题是那些,根据这些特定的需求找出相关的知识并将其概念化,并将这些概念加以组织整理成一个有系统的知识结构,如此便能初步形成一个知识库。接下来就必须订定一些涵盖上述知识的规则,这其中包含了推论技术与算法的选择、转译、推演等程序。必须特别注意的是,十分强调经由测试而往前回馈的循环,测试可以指出在前面的各个阶段的缺失,而在发展的过程中,需求、概念、组织结构与规则都是常常变动的,因此必须不断地重新组织,并加以精炼化。专家系统的开发小组通常是由一群学科领域专家、程序设计师知识工程师(KnowledgeEngineering)所组成,其中知识工程师在专家系统的建立中通常扮演着中枢的角色,他经由访问专家及其它方法,以决定系统内之决策法则与知识,并不断测试、修正,以开发出一个有效的专家系统。许多专家皆指出,撰写专家系统的最困难的部分就在于知识工程的层面,包括知识取得(knowledgeacquisition)及知识表示(knowledgerepresentation)。知识不但需要有知识工程的专业知识、各方面广泛的背景知识,同时亦应具备良好的沟通协调能力,因此有经验的知识工程师很少。2.专家系统的工作流程专家系统的基本工作流程是,用户通过人机界面回答系统的提问,推理机将用户输入的信息与知识库中各个规则的条件进行匹配,并把被匹配规则的结论存放到综合数据库中。最后,专家系统将得出最终结论呈现给用户。在这里,专家系统还可以通过解释器向用户解释以下问题:系统为什么要向用户提出该问题(Why),计算机是如何得出最终结论的(How)。四.专家系统的应用实例上边谈了很多关于专家系统的理论知识,未免有些抽象,下面通过介绍一个专家系统的具体实例来对它达到更好的认识。这个专家系统是图书馆参考服务专家系统,以下就它的建立和评估进行说明。(由于本人的时间和能力有限,实在无法编出一个专家系统,因此以下资料来自于YUTING'sPage(),经本人加以整理而成,希望老师谅解。)[一]、图书馆参考服务专家系统的建构参考服务专家系统的建构可由以下四个部分来说明:1.确立服务的范围、流程与相关知识欲建立一个参考服务专家系统,首要的步骤即是确立服务的范围,列出清晰的作业步骤,并找出相关的知识与概念,如此才能建立出精确、完整的知识库与推论器。派罗特曾针对参考工作的业务规画出了一个详细的程序,如图二所示,而他在1989年也为参考服务的所需知识勾勒出了一个实务的典范,如问题型态的典型信息、读者数据文件之建立、读者行为模式的了解、资源的范围、资源的索引型态、资源所包含信息强度、复杂度、与详尽度、索引典中语意网络的概念连结型态等等。如果专家系统要能成功能处理适当的问题,图书馆必须确认图书馆中那些工作是可以由专家系统来负责进行的。馆员必须要将问题分为数类,如必须花费大量时间的问题、令人厌烦的问题、经常重复的问题、馆员较喜欢处理的问题等。然而,虽然图书馆中多半都有对于参考问题进行的记录,但那大多是属于数字型的统计,并没有详细记录问题的内容。图二派罗特(JamesR.Parrott)所制定之的参考服务工作流程图书馆参考服务专家系统应提供何程度的服务,并无一定的标准,端赖图书馆想要使专家系统发挥何种效益而定。每个图书馆的服务宗旨不同,参考服务的表现不同,当然专家系统中所包含的数据及问题的类型均有差异,不过一般来说,大致可分为以下三种型态:1.启发式(Heuristic)经由经验提供简短的规则或明确的策略。此类型知识通常会最先被应用,因为它可以较迅速地产生结果,而若失败的话,再应用中介式或深入式知识。图书馆通常会以此种方式来回答一些快速参考问题,例如若欲查询百科全书,而对象是青少年,则可使用WorldBook。此类信息亦可称为表面知识或次要知识。2.中介式(Intermediate)比上述启发式提供更明确的指引,由一般的策略组成,又称为基础知识。图书馆可将所有的参考问题加以分类,界定何种类型的问题可以使用何种资源来回答,如指示读者欲查询有关地名的资料,则可以指示其地名辞典。3.深入式(Deep)为特定主题或学科中的特定知识提供一正确可行的原则,属于参考服务中较为开放性的服务。启发式与中介式的指引性服务通常被认为是编辑处理过的深入性知识。2.知识的粹取知识的粹取可取材自不同的地方,除了人类专家的知识之外,如相关的教科书、手册、报告、数据库等都可以成为知识的来源。此程序通常是由知识工程师来主导进行,与专家洽谈,询问相关的问题以及解决的方式。因此,由于专家知识是专家系统的主要内涵,知识工程师必须尽可能不借持个人的知识作主观的判断解释,主动询问或导引专家,并在两者之间形成一个良好的沟通模式,才能使知识的粹取顺利进行。知识粹取的方式通常有下列几种:1.访谈:由知识工程师针对问题的特性,与专家进行访谈,并主动导引谈话的程序与内容,挖掘专家的专业知识。2.问卷:规划完整的问题请专家回答,系统性地搜集专家的专业知识。3.观察:观察专家的解题过程,不予打扰,从专家的所作所为去探讨解决问题的知识。4.协定分析:专家在解决问题的同时说明其思考过程,由知识工程师加以记录整理。5.中断分析:在专家系统解决问题的过程中,知识工程师在关键时刻询问专家当时作为的动机。3.知识的呈现知识取得后,接着是如何将知识予以结构化。下列有几种表示专家知识的方法:1.法则(Rules)法则是最常用表示专家知识的方法,其标准的程序架构为「若-则」(If-then),即评估一个情况,若状况为真,则采取行动。参考服务可以藉由拟订一些法则来解决一些推论性问题,举例如下:IfqueryrelatestobasicinformationaboutwordsThenuseadictionary专家系统内法则的数量与程度比传统程序多上许多,而传统程序大概仅有50条到100条法则,而专家系统常具备数百至数千条法则。法则可以依据个别的需求将其作不同的的定义,因此提供相文件大的弹性,可以用来处理的不确定状况。2.框架(Frames)知识框架是组织知识的一种数据结构,运用对象导向的方式涵盖特定对象的所有知识。每一个特定的对象都包含了一个以上的属性,称为Slots,而每个性又有一至多个属性值,或事些设定的合理的范围,称为Facets。举例来说,我们可以将每个书给予一个框架:3.语意网络(SemanticNetwork)语意网络是由由多个代表概念的点(Nodes)及连接点与点之间的弧(Arcs)所组成的一个网络。如图三所示,我们可以透过它将书藉与其它相关要素之间相互连结的关系图架构起来。图三语意网络架构范例4.系统的发展要素系统的发展要素不外乎发展工具与人员的运用二方面,兹分述如下:1.发展工具在发展参考服务专家系统时,最好先建立一个雏型化的系统,测试建立系统的不同方式,以发现最