第12章专家系统.ppt
第 12 章 专 家系 统,12.1 基本概念 12.2 系统结构 12.3 实例分析 12.4 系统设计与实现 12.5 开发工具与环境 12.6 专家系统的发展 习题十二,12.1 基 本概 念,12.1.1 什么是专家系统 自从1965年世界上第一个专家系统DENDRAL问世以来,专家系统的技术和应用,在短短的 40 余年间获得了长足的进步和发展。特别是20世纪 80 年代中期以后,随着知识工程技术的日渐丰富和成熟,各种各样的实用专家系统如雨后春笋般地在世界各地不断涌现。那么,究竟什么是专家系统呢?顾名思义,专家系统(ES)就是能像人类专家一样解决困难、复杂的实际问题的计算机(软件)系统。,我们知道“专家”就是专门家,是某一专门领域的行家里手。专家之所以是专家,是因为他(她)解决问题时具有超凡的能力和水平。专家之所以具有超凡的能力和水平,是因为:(1)专家拥有丰富的专业知识和实践经验,或者说他(她)拥有丰富的理论知识和经验知识,特别是经验知识。(2)专家具有独特的思维方式,即独特的分析问题和解决问题的方法和策略。,所以,这两点就是一个专家所具备的基本要素。那么,这两点自然也应该是专家系统所具备的基本要素。另外,专家只能是某一专门领域的专家;从效果看,专家解决问题一定是高水平的。因此,专家系统应该具备以下四个要素:(1)应用于某专门领域。(2)拥有专家级知识。(3)能模拟专家的思维。(4)能达到专家级水平。,所以,准确一点讲,专家系统就应该是:应用于某一专门领域,拥有该领域相当数量的专家级知识,能模拟专家的思维,能达到专家级水平,能像专家一样解决困难和复杂的实际问题的计算机(软件)系统。例如,能模拟名医进行辨症施治的诊断医疗系统就是一种专家系统,能模拟地质学家进行地下资源评价和地质数据解释的计算机(软件)系统,也是一种专家系统。,12.1.2专家系统的特点 同一般的计算机应用系统(如数值计算、数据处理系统等)相比,专家系统具有下列特点:从处理的问题性质看,专家系统善于解决那些不确定性的、非结构化的、没有算法解或虽有算法解但在现有的机器上无法实施的困难问题。例如,医疗诊断、地质勘探、天气预报、市场预测、管理决策、军事指挥等领域的问题。从处理问题的方法看,专家系统则是靠知识和推理来解决问题(不像传统软件系统使用固定的算法来解决问题),所以,专家系统是基于知识的智能问题求解系统。,从系统的结构来看,专家系统则强调知识与推理的分离,因而系统具有很好的灵活性和可扩充性。专家系统一般还具有解释功能,即在运行过程中一方面能回答用户提出的问题,另一方面还能对最后的输出(结论)或处理问题的过程作出解释。有些专家系统还具有“自学习”能力,即不断对自己的知识进行扩充、完善和提炼。这一点是传统系统所无法比拟的。专家系统不像人那样容易疲劳、遗忘,易受环境、情绪等的影响,它可始终如一地以专家级的高水平求解问题。因此,从这种意义上讲,专家系统可以超过专家本人。,12.1.3专家系统的类型 关于专家系统的分类,目前还无定论。我们仅从几个不同的侧面对此进行讨论。按用途分类,专家系统可分为:诊断型、解释型、预测型、决策型、设计型、规划型、控制型、调度型等几种类型。这些专家系统的功能大部分都是显然的,无须做过多解释,而其中“解释”和“规划”与我们通常理解的有点差别。,这里的解释是对仪器仪表的检测数据进行分析、推测得出某种结论。例如通过对一个地区的地质数据进行分析,从而对地下矿藏的分布和储量等得出结论。又如,通过对一个人的心电图波形数据进行分析,从而对该人的心脏生理病理情况得出某种结论。显然,以上两种事情都是经验丰富的专家才能胜任的。而所谓“规划”,就是为完成某任务而安排一个行动序列。例如,对地图上的两地间找一条最短的路径、为机器人做某件事安排一个动作序列等。,按输出结果分类,专家系统可分为分析型和设计型。分析型就是其工作性质属于逻辑推理,其输出结果一般是个“结论”,如 1 中的前四种,就都是分析型的,它们都是通过一系列推理而完成任务的;而设计型就是其工作性质属于某种操作,其输出结果一般是一个“方案”,如1 中的后四种,就都是设计型的,它们都是通过一系列操作而完成任务的。当然,也可兼有分析和设计的综合型专家系统。例如,医疗诊断专家系统就是一种综合型专家系统,诊断病症时要分析、推理,而开处方即制定医疗方案时要设计、操作(如对药剂的取舍或增减等)。,目前所用的知识表示形式有:产生式规则、一阶谓词逻辑、框架、语义网等。所以,按知识表示分类,可分为基于产生式规则的专家系统、基于一阶谓词的专家系统、基于框架的专家系统、基于语义网的专家系统等等。当然,也存在综合型专家系统。知识可分为确定性知识和不确定性知识,所以,按知识分类,专家系统又可分为精确推理型和不精确推理型(如模糊专家系统)两类。,按采用的技术分类,专家系统可分为符号推理专家系统和神经网络专家系统。符号推理专家系统就是把专家知识以某种逻辑网络(如:由产生式构成的显式或隐式的推理网络、状态图、与或图,由框架构成的框架网络,还有语义网络等)存储,再依据形式逻辑的推理规则,采用符号模式匹配的方法,基于这种逻辑网络进行推理、搜索的专家系统。神经网络专家系统就是把专家知识以神经网络形式存储,再基于这种神经网络,依据神经元的特性函数,采用神经计算的方法,基于这种神经网络实现推理、搜索的专家系统。,按规模分类,可分为大型协同式专家系统和微专家系统。大型协同式专家系统就是由多学科、多领域的多个专家互相配合、同力协作的大型专家系统。这种专家系统也就是由多个子(分)专家系统构成的一个综合集成系统。它所解决的是大型的、复杂的综合性问题,如工程、社会、经济、生态、军事等方面的问题。微专家系统则是可固化在一个芯片上的超小型专家系统,它一般用于仪器、仪表、设备或装置上,以完成控制、监测等功能。按结构分类可分为集中式和分布式,单机型和网络型(即网上专家系统)等。,12.1.4专家系统与基于知识的系统 我们知道,专家系统能有效地解决问题的主要原因在于它拥有知识,但专家系统拥有的知识是专家知识,而且主要是经验性知识。由专家系统的出现和发展而发展起来的基于知识的系统(KBS,或者简单地称为知识系统),其中的知识已不限于人类专家的经验知识,而可以是领域知识或通过机器学习所获得的知识等。这样,专家系统就是一种特殊的KBS,或者说特殊的知识系统。“专家系统”这一名词有时也泛指各种知识系统。一个知识系统,不论其中的知识是否真的来自于某人类专家(如通过机器学习获得的知识就不是来自人类专家),但是只要是其能达到“专家级”或本系统的能力能达到“专家级”水平,则把这样的系统也称为专家系统。,12.1.5专家系统与知识工程 由于专家系统是基于知识的系统,那么,建造专家系统就涉及到知识获取(即从人类专家那里或从实际问题那里搜集、整理、归纳专家级知识)、知识表示(即以某种结构形式表达所获取的知识,并将其存储于计算机之中)、知识的组织与管理(即知识库建立与维护等)和知识的运用(即使用知识进行推理)等一系列关于知识处理的技术和方法。特别是基于领域知识的各种知识库系统的建立,更加促进了这些技术的发展。所以,关于知识处理的技术和方法已形成一个称为“知识工程”的学科领域。这就是说,专家系统促使了知识工程的诞生和发展,知识工程又为专家系统提供服务。正是由于这二者的密切关系,所以,现在的“专家系统”与“知识工程”几乎已成为同义语。,专家系统是一种计算机应用系统。由于应用领域和实际问题的多样性,因此,专家系统的结构也就多种多样。但抽象地看,它们还是具有许多共同之处。,12.2系统结构,12.2.1概念结构 从概念来讲,一个专家系统应具有如图 12-1所示的一般结构模式。其中知识库和推理机是两个最基本的模块。1.知识库(Knowledge Base,KB)所谓知识库,就是以某种表示形式存储于计算机中的知识的集合。知识库通常是以一个个文件的形式存放于外部介质上,专家系统运行时将被调入内存。知识库中的知识一般包括专家知识、领域知识和元知识。元知识是关于调度和管理知识的知识。知识库中的知识通常就是按照知识的表示形式、性质、层次、内容来组织的,构成了知识库的结构。,图 12-1 专家系统的概念结构,2.推理机(Inference Engine,IE)所谓推理机,就是实现(机器)推理的程序。这里的推理,是一个广义的概念,它既包括通常的逻辑推理,也包括基于产生式的操作。例如:,这里的B若是个“结论”,则上式就是我们通常的假言推理;若表示某种动作,则上式就是一种操作。,推理机是使用知识库中的知识进行推理而解决问题的,所以推理机也就相当于专家的思维机制,即专家分析问题、解决问题的方法的一种算法表示和程序实现。总之,知识库和推理机构成了一个专家系统的基本框架。同时,这两部分又是相辅相成、密切相关的。因为不同的知识表示有不同的推理方式,所以,推理机的推理方式和工作效率不仅与推理机本身的算法有关,还与知识库中的知识以及知识库的组织有关。,3.动态数据库 动态数据库也称全局数据库、综合数据库、工作存储器、黑板等,它是存放初始证据事实、推理结果和控制信息的场所,或者说它是上述各种数据构成的集合。动态数据库只在系统运行期间产生、变化和撤消,所以称为“动态”数据库,且在图中用虚线包围。需要说明的是,动态数据库虽然也叫数据库,但它并不是通常所说的数据库,两者有本质差异。,4.人机界面 这里的人机界面指的是最终用户与专家系统的交互界面。一方面,用户通过这个界面向系统提出或回答问题,或向系统提供原始数据和事实等;另一方面,系统通过这个界面向用户提出或回答问题,并输出结果以及对系统的行为和最终结果做出适当解释。5.解释模块 解释程序模块专门负责向用户解释专家系统的行为和结果。推理过程中,它可向用户解释系统的行为,回答用户“why”之类的问题,推理结束后它可向用户解释推理的结果是怎样得来的,回答“how”之类的问题。,6.知识库管理系统 知识库管理系统是知识库的支撑软件。知识库管理系统对知识库的作用,类似于数据库管理系统对数据库的作用,其功能包括知识库的建立、删除、重组;知识的获取(主要指录入和编辑)、维护、查询、更新;以及对知识的检查,包括一致性、冗余性和完整性检查等等。,图 12-2 专家系统的理想结构,12.2.2实际结构另一方面,实际问题中往往不仅需要推理,而且还需要作一些其他处理。如在推理前也可能还需要作一些预处理(如计算),推理后也可能要作一些再处理(如绘图),或者,处理和推理要反复交替多次,或经多路进行等等。这样以来,就使得专家系统的实际结构可能变得多式多样。例如,可以有图 12-3所示的实际结构。可以看出,在这种实际结构中,专家系统只作为整个系统的一个模块(称为专家模块)嵌套在一个实际的应用系统中,而整个应用系统可能包含一个或者多个专家模块。,图 12-3 专家系统的实际结构示例,当然,对于这种系统仍可称为专家系统,但对于含有多于一个专家模块的系统,实际上已是多专家系统(可能是多层的、多路的、多重的等)。另外,从图 12-3可以看出,给通常的各种应用系统添上专家模块也就是专家系统了。这就是说,专家系统实际与我们通常的计算机应用系统应该是融为一体的。下面我们再举一个实际例子。如图 12-4 所示。这是一个用于地质图件绘制的智能辅助系统,其中就至少包含了两个专家模块,一个是方法选择模块,一个是图形评价模块。,图 12-4 地质图件绘制智能辅助系统结构,方法选择就是绘图方法选择,也就是绘图算法选择。这是绘图的第一步。绘图的算法很多,如距离加权平均法、三角剖分法、克里金法等。这些方法还可以再进行细分,其中克里金方法最为丰富,它已形成一个体系。所以,绘图时选择合适的方法就是关键的一步。而这里就需要专家知识。图形绘出后,还要进行评价,以确定该图件的可用性。评价的原因是,并非是只要按以上过程进行,绘出的图形就是可用的。事实上,由于地质状况的复杂性和不确定性,就是专家所绘出的图形,也不能绝对肯定符合地下的实际。换句话说,我们所说的地质图件,一般说来也只是对地下地质情况的某种近似描述。如果经评价,发现图形有明显的违反地质理论或常识的地方,或者其误差超过了某一限度,则该图形就不能使用了。那么,怎样评价呢?这里也需要专家知识。,12.2.3黑板模型“黑板模型”是一种典型而流行的专家系统结构模式。黑板模型首先于19731976年在美国Carnegie-Mellon大学开发的HEARSAY-系统中创立,又在HEARSAY中得到发展,后来被许多系统所效仿和采用,现在已是一种十分流行的知识系统结构模式。黑板模型主要由“黑板”、知识源和控制机构三大部分组成,结构如图 12-5 所示。,图 12-5 黑板结构,1.黑板(blackboard)所谓“黑板”,就是一个分层的全局工作区(或称全局数据库)。它用来存储初始数据、中间结果和最终结果。整个黑板被分为若干层,每一层用于描述领域问题的某一类信息。高层信息可以看作是下层信息的抽象(或整体),反之,下层信息可以看作是上层信息的实例(或部分)。,2.知识源(knowledge source)所谓知识源,就是一个知识模块。黑板结构中具有多个知识源,每个知识源能用来完成某些特定的解题功能。知识源可以表示成过程、规则集或逻辑断言等形式。一个知识源可以视为一个大规则,其条件部分称为知识源先决条件,动作部分称为知识源体。知识源的先决条件一旦与黑板状态匹配,该知识源便被激活,这时知识源体执行,其结果将导致黑板状态的变化。知识源之间互相独立,它们只能通过黑板进行通信和互相调用。,3.控制机构 控制机构是求解问题的推理机构,由监督程序和调度程序组成。监督程序时刻注视着黑板状态,根据黑板状态采用某种策略选择合适的知识源,将其条件部分放入调度队列,随后条件部分与黑板状态匹配,若匹配成功,则将其动作部分放入调度队列。动作部分的执行便又改变了黑板状态。调度程序通过选择所谓“聚焦”来优先使用队列中最重要、最有希望的知识源来执行。黑板模型是一种适时推理模型,即系统能按“最适宜”的原则自行决定什么时候和怎样使用知识。在黑板模型中,解空间被组织成层次性结构,层次结构中每一层上的信息都表示局部解,相应层次上的知识模块对这种信息进行处理,生成更高级的局部解,直到最后的解。,理想的黑板模型中没有控制机制,知识源含有领域知识且是自驱动的。这样,每个知识源都“注视”着黑板上的状态信息,而且能“适时”地决定是否要对黑板进行操作。所以,在理想黑板模型中,各知识源实际上是并行执行的(这非常类似于现在的股票交易),但在现有的串行环境下这种并行却难以实现。因此,才增设了控制机制等方法把黑板变成串行系统(这又类似于拍卖过程)。当然,这样就限制了黑板模型的潜在功效。,需指出的是,为了能在现有的串行硬件上保持黑板的并行能力,人们在这方面做了不少工作,提出了许多基于黑板的改进模型。例如,多黑板、分布式、将面向对象方法与黑板模型相结合等,从而有效地解决了黑板模型的并行处理能力,并推出了新一代黑板系统及其开发工具。由上所述可看出,黑板模型可以看作是产生式系统的特殊形式。,黑板模型适于求解那些大型、复杂且可分解为一系列层次化的子问题的问题。例如,在HEARSAY-中,黑板被分为六个信息层,每个信息层对应着问题的一个中间表示层次。六个信息层分别为:(1)参数层,用于从语音信号中提取有意义的参数。有四种不同的参数,统称为ZAPDASH 参数。(2)片段层,用于描述系统对语音信号的分割与归类。此层主要包含音素与单音等信息。,(3)音节层,用于描述语音信号的音节划分。此层主要为由片段层上信息构成的音节信息。(4)单词层,用于记录根据音节划分所识别出的孤立词信息。(5)词组层,用于记录根据单词层中的词汇所生成的词组信息。(6)短语层,用于记录多个词汇或词组构成的短语和句子信息。,12.2.4网络与分布式结构 在网络环境下,专家系统也可以设计成网络结构,如“客户机/服务器”(Client/Server)结构(如图12-6(a)所示),或浏览器/服务器(Browser/Server)结构(如图 12-6(b)所示)。我们称后一种结构的专家系统为网上专家系统。当然,图 12-6所示的结构仅是一种示意性的概念模型,而且它也仅是为了适应网络环境而做成的一种模式。分布式结构则是一种适合于分布式计算环境的专家系统。例如那些多学科、多专家联合作业,协同解题的大型专家系统,就可以设计成分布式结构。这类专家系统也就称为分布式专家系统。,图 12-6 专家系统的客户(机)/服务器结构及浏览器/服务器结构,12.3实 例分 析,12.3.1 PROSPECTOR的功能与结构 PROSPECTOR的研究目的是:勘探矿产资源,扩大技术培训及集中多个专家的知识来解决给定的资源问题。PROSPECTOR系统给地质勘探人员提供下列几种帮助:(1)勘探评价。当地质工作者在某一地区获得了一些有意义的信息后,可求助于PROSPECTOR系统。系统对这些信息进行分析和评价,预测成矿的可能性,并可指导用户下一步应采集哪些对判别矿藏存在与否有价值的信息。,(2)区域资源评价。系统采用脱机方式处理某一大范围区域的地质数据,这些数据按小区域划分列成表格形式。系统处理这些数据的结果是给出这一大区域中某些资源的分布情况。地质普查都属于这一类工作。(3)井位选择。当已知某一区域含有某种矿藏后,PROSPECTOR可以帮助地质工作者选择最佳钻井位置,以避免不必要的浪费。这时PROSPECTOR接受的输入是一张地质图,这个图经过一个特殊的数字化仪数字化后,由系统的井位选择模型处理。最后输出的是一张标有井位的地质图。,图12-7是PROSPECTOR系统的总体结构图。系统的勘探知识以某种外部格式存储在磁盘中。同样,一个具有1000多个单词的分类学词典也存储在磁盘上。每一次咨询开始时,由一个叫做PARSEFILE的程序把这些外部表示转换成系统的内部表示形式推理网络。推理网络就是系统赖以完成咨询的知识库。系统中其他部分的作用如下:执行程序:作为人机接口负责接受用户输入的命令,然后解释这些命令的含义,并根据需要调用其他子系统。,英语分析程序:负责理解用户用自然语言输入的信息,并将其转换成匹配程序可以使用的语义网络形式。匹配程序:使用分类学词典来比较各个语义空间的关系,把用户提供的信息加入推理网络中或检查推理网络的一致性。传播程序:负责在推理网络中进行概率传播,它实现系统的似然推理。提问系统:负责向用户提问,要求用户输入数据。,解释系统:用于解答用户的询问。网络编译系统:为在井位选择推理网络中传播图形信息,生成高效代码。知识获取系统:在PROSPECTOR运行时可生成、修改或保存推理网络。,图 12-7 PROSPECTOR总体结构,12.3.2知识表示1.分类学网络 最低一级网络是分类学网络(见图 12-8),它的作用有些类似于MYCIN中的词典,给出了系统所知道的1000多个词汇的用途及相互关系。例如,由“关系”的节点为根的子树中所有词汇在描述知识时作为表示关系的词汇使用。除此之外,分类学网络还给出了概念之间的从属关系,它们由四种弧表示:,图 12-8 分类学网络,2.分块语义网络 在PROSPECTOR中,陈述由分块语义网络表示。分块语义网络是把整个网络划分成若干个块,每一块(称为语义空间)表示一句完整的话(陈述)。例如,“角闪石部分地转化为黑云母”,可由图 12-9表示。语义网络中共有三种节点:代表实体、过程和位置的节点(用圆表示),代表关系的节点(用椭圆表示)和表示概念的节点(用方框表示)。其中表示概念的节点实际上是分类学网络中的节点,它们也可被其他空间(陈述)使用,所以把它们放在空间外面,称其为外部参数。语义网络中的弧用来指明各个关系的参量。一般来说,一个关系的各参量之间的次序是有意义的,关系的第一个参量通常是该关系所描述的对象,关系的其他参量通常是该对象的属性值。,图 12-9 语义空间,每一个陈述都可以分解为若干个简单断言。所谓简单断言指仅包含一个关系及其各参量的断言。图89可分解为七个简单断言的集合:1:存在一个实体E1 2:E1的成分是角闪石 3:存在一个实体E2 4:E2的成分是黑云母 5:存在一个过程P16:在P1过程中,E1转化为E2 7:在P1过程中,转化的程度是部分转化 分块语义网络中的空间还可以用逻辑连接词AND、OR、NOT连接成更大的语义空间,表示更复杂的陈述。,3.推理网络 在PROSPECTOR中,判断性知识用规则表示。每条规则的形式如下:EH(LS,LN)其中LS、LN的作用有些类似于MYCIN系统中规则的可信度,它们用来反映证据E对假设H的影响程度。LS0,+),它表示证据E出现时,对假设H成立的支持程度:当LS1时,表示证据E出现支持假设H成立;当LS1、LN1和LN1分别表示E不出现时,它支持、反对或不影响H成立。,与MYCIN系统不同,PROSPECTOR 系统的决策规则被明显地链接在一起形成一个有向图,称为推理网络(见图 12-10)。推理网络中的节点是各个语义空间称为超节点(Supernode),弧代表规则,与每一条弧相联系的两个数字分别是该规则的LS和LN。推理网络中每个超节点H都有一个先验概率P(H)(即在没有任何信息的情况下,H所代表的命题成立的概率)。随着信息E的输入,H的先验概率改变为后验概率P(H|E)(即已知E时,H成立的概率),当P(H|E)P(H)时,说明H在某种程度上成立;当P(H|E)P(H)时,说明H在某种程度上不成立;当P(H|E)P(H)时,说明E对H无影响。因此,P(H)有些相当于MYCIN中的CFH,S0的情况。,图 12-10 推理网络,推理网络中每条规则的LS、LN及每个语义空间H的P(H)均由领域专家在建造知识库时提供。除了表示规则的弧外,推理网络中还有代表先后顺序的弧(用虚线表示,见图12-10),其意义如下:,推理网络的顶层是一些矿藏的名称,它们代表每种矿藏存在的假设,如A型斑状铜矿(PCOA)、Kuroko型重硫化物矿(MDS)等等。推理网络的叶节点是一些可问空间。所谓可问空间就是直接与用户的观察有关的语义空间,即它们的后验概率可通过向用户提问获得。类似地,后验概率可由系统推出的空间(即作为某些规则结论部分的空间)被称为可推空间。注意,可问空间和可推空间并不互相排斥,一个空间可同时既是可问的,又是可推的。分类学网络、语义网络和推理网络交织在一起构成了PROSPECTOR的知识库。这三种网络在知识库中的关系如图 12-11所示。,图 12-11 知识库中三种网络的关系,12.3.3 推理模型 系统运行时,当用户输入一个证据E并且指出在它的观察S下E成立的后验概率是P(E|Se)时,PROSPECTOR首先在推理网络中找出以E为前提或前提中包含E的规则R;若R的前提是若干命题的逻辑组合,则首先利用公式(8-4)、(8-5)、(8-6)计算R的前提的总概率;然后用公式(8-11)、(8-12)、(8-13)计算在R的作用下规则的结论H的后验概率;最后利用公式(8-20)计算出所有以H为结论的规则的后验概率P(H|S)P(H|SH)。计算出P(H|SH)后,PROSPECTOR系统再从推理网络中找出所有前提中包含H的规则前提R并对R重复以上过程。PROSPECTOR就这样不断地将规则前提的后验概率沿推理网络中规则弧传到规则的结论部分,修改该结论的后验概率,直至将P(E|Se)的影响传到推理网络的顶层语义空间为止。这一过程称为概率传播,它由传播程序完成。,但由于用户不知道领域专家在建造知识库时为每个可询问空间E指定的先验概率是多少,所以让用户以P(E|Se)的方式提供证据E的后验概率可能会导致系统错误地理解用户的意图。例如,设P(E)0.5,当系统向用户询问E时,用户想告诉系统E 以某种程度为真,但因为它不知道领域专家给出的先验概率P(E)是多少,他可能提供P(E|Se)0.4,系统对这个信息的理解变成了E以某种程度为假(P(E)P(E|Se),这与用户本来的意图相左。为了避免这种情况,类似于解决主观概率不一致的方法,引入分段线性插值函数C(E|Se):,(12-1),由公式(12-1)可得:,(12-2),其中C(E|Se)-5,5。,当C(E|Se)0时,P(E|Se)P(E);当C(E|Se)0时,P(E|Se)P(E)。因此,用户实际上用C(E|Se)0来指明对他所提供的信息的信任程度。当他相信E以某种程度为真时,指定一个大于0的C(E|Se);当他相信E以某种程度为假时,指定一个小于0的C(E|Se)。系统利用公式(12-1)将其自动转换成相应的P(E|Se),确保系统不会错误地理解用户的意图。同样,系统向用户显示结论H时,用公式(12-2)将后验概率P(H|S)转化为C(H|S)提供给用户。,12.3.4控制策略1.正向推理 PROSPECTOR的正向推理实际上就是概率传播,它由传播程序完成。每当用户输入一个证据E及其后验概率P(E|S),传播程序就利用主观Bayesian方法,将P(E|S)的影响沿推理网络传播,修改更高层次上语义空间的后验概率,直至将P(E|S)的影响传至顶层空间。传播程序传播后验概率的方法如前所述。,2.主动式推理 咨询开始时,用户可根据自己的观察为系统提供信息。PROSPECTOR在这方面为用户提供了很大的灵活性,用户不仅可以输入有关可问空间的信息,还可以输入关于推理网络任意层次上的假设空间的信息。这种方法有利于充分发挥用户的作用,加快推理速度。例如,H是推理网络中的一个非可问空间,如果用户根据他的观察已经很明显地看出H是成立的,那么他可直接告诉系统H成立,这就可以减少系统关于H的推理,而直接在已知H成立的基础上进行推理。不仅在咨询开始时,而且在咨询的任意时刻,用户都可以以这种方式为系统提供信息。这种方法称为主动式推理。,3.反向推理当正向推理(概率传播)结束后,如果系统已能确定存在某种矿藏,则输出结果;否则进入反向推理过程。反向推理由提问系统负责,它为断定某种矿藏的成矿可能性寻求有关的数据。因此反向推理实际上要完成两个任务:(1)应优先考虑哪个顶层假设,这主要根据评判函数Jh来选择。(2)应向用户询问哪个空间,这主要根据评判函数J*来选择。,进入反向推理后,提问系统首先用Jh函数为推理网络中的所有顶层空间打分,并从中选出得分最高者作为反向推理的目标。然后提问系统用J*函数为所有以这个空间为结论的规则打分,并选择得分最高的规则的前提空间作为反向推理的下一级子目标。若该子目标是一个可问空间,则向用户提问;当用户提供的可信度的绝对值大于1时,将该空间标记为“不可用”的,并转向正向推理,传播概率;否则继续用J*进行反向推理,直至达到某一可问空间为止。,12.3.5解释系统 PROSPECTOR的解释系统可以为用户提供几种不同类型的解释。最简单的一种是允许系统在咨询的任何时刻检查推理网络中某个语义空间的后验概率。其次解释系统可以向用户显示推断某一结论所使用的规则。用户还可以检查某一数据对推理网络中任一特定空间概率的影响。这种解释可以为用户提供两种很有意义的信息。首先,系统可以通过这种解释能力告诉用户,它所采集到的数据中哪些是最有意义的;其次,系统可以提示用户需要进一步采集的有意义的数据是什么。,图 12-12 建立专家系统的一般步骤,12.4系统设计与实现,12.4.1一般步骤与方法 由于专家系统也是一种计算机应用系统,所以,一般来说,其开发过程也要遵循软件工程的步骤和原则,即也要进行系统分析、系统设计等几个阶段的工作。但又由于它是专家系统,而不是一般的软件系统,所以,又有其独特的地方。如果我们仅就“纯专家系统”而言,则其设计与实现的一般步骤可如图12-12所示。,由图12-12可以看出,专家系统的开发有如下特点:(1)知识获取与知识表示设计是一切工作的起点。(2)知识表示以及知识描述语言确定后,各项设计(图中并列的六个设计)可同时进行。,还需说明的是:(1)对于一个实际的专家系统,在系统分析阶段就应该首先弄清楚:系统中哪里需要专家知识,专家知识的作用是什么?以及系统中各专家模块的输入是什么?处理是什么?输出又是什么?(2)系统投入运行后,一般来说,其知识库还需不断扩充、更新、完善和优化,所以专家系统的开发更适合采用快速原型法。(3)对系统的评价主要看它解决问题是否达到专家水平。(4)上述的所谓“纯专家系统”就是一个实际专家系统中的专家模块部分。那么,对于系统其他部分的分析与设计,原则上讲,与一般计算机应用系统完全一样,即可按软件工程规范和程序进行。,12.4.2快速原型与增量式开发 所谓快速原型与增量式开发,就是在开发一个大型软件系统之前,先尽快地建立一个简单的小型的系统“模型”称之为系统原型;然后,对原型进行扩充,即在原型的基础上进行的继续开发,即增量式开发,这样像滚雪球似地直至完成整个系统。快速原型法的优点是,利用系统原型,开发者可以更好地分析和理解系统;用户也能尽快看到系统的概貌,以便及早反馈有关信息,使后面的工作少走弯路;同时,也方便了开发者和用户的相互交流。快速原型法特别适合专家系统的开发。许多专家系统都开始于一个演示原型,然后经过不断地扩充和完善,最终达到实用阶段。,12.4.3知识获取 知识获取是建造专家系统的关键一步,也是较为困难的一步,被称为建造专家系统的“瓶颈”。知识获取大体有三种途径。1.人工获取人工获取,即计算机人员(或知识工程师)与领域专家合作,对有关领域知识和专家知识,进行挖掘、搜集、分析、综合、整理、归纳,然后以某种表示形式存入知识库。,2.半自动获取半自动获取,即利用某种专门的知识获取系统,采取提示、指导或问答的方式,帮助专家提取、归纳有关知识,并自动记入知识库。3.自动获取自动获取又可分为两种形式:一种是系统本身具有一种机制,使得系统在运行过程中能不断地总结经验,并修改和扩充自己的知识库;另一种是开发专门的机器学习系统,让机器自动从实际问题中获取知识,并填充知识库。,12.4.4知识表示与知识描述语言设计 知识表示与知识描述语言设计是根据所获得知识的特点,选择或设计某种知识表示形式,并为这种表示形式设计相应的知识描述语言。所谓知识描述语言,就是知识的具体语法结构形式。所以,知识描述语言既要面向人、面向用户,又要面向知识表示、面向机器,还要面向推理、面向知识运用。这就要求知识描述语言既能为用户提供一种方便、易懂的外部知识表达形式,又能将这种外部表示转换成容易存储、管理、运用的内部形式。,知识描述语言可以利用现有的程序设计语言(如PROLOG、LISP、C等)提供的数据结构或语句来实现,也可以选用专用的知识描述语言(如产生式语言OPS、框架语言FRL等)或现成的专家系统工具(如M.1 S.1 EMYCIN等),也可以自己动手进行设计。例如,我们曾设计了一种基于框架的模糊知识描述语言,它可以实现多种知识的描述。例如,苹果(类属(水果),形状(圆(0.8),颜色(红(0.9),黄(0.8),味道(甜(0.9)就描述了一个“苹果”框架。,12.4.5知识库与知识库管理系统设计1.知识库设计 知识库设计主要是设计知识库的结构,即知识的组织形式。专家系统(或知识工程)中所涉及的知识库,一般取层次结构或网状结构模式。这种结构模式是把知识按某种原则进行分类,然后分块分层组织存放,如按元知识、专家知识、领域知识等分层组织;而每一块和每一层还可以再分块分层。这样,整个知识库就呈树型或网状结构。例如,图12-13所示的就是一个医疗诊断知识库的层次结构。,图 12-13 医疗诊断知识库层次结构,知识库的这种层次结构,可方便知识的调度和搜索(因为可通过上层知识调度或搜索下层知识),从而使得推理时知识的调度灵活、迅速,故而可加快推理速度。另外,知识的分块存放,还可使知识库容量增大(仅受磁盘空间限制)。我们这里所说的元知识,是指关于知识的知识,即管理、调度领域知识和专家知识的知识。例如,“如果有肝病的症状,则调肝病知识子库(进一步确诊)”就是一条元知识。当然,元知识也是相对而言的。例如,图 12-13中位于上层知识库中知识就是其下层知识库中知识的元知识。,2.知识库管理系统设计1)知识操作功能设计 知识操作功能包括知识的添加、删除、修改、查询和统计等。这些功能可采用两种方法来实现。一种方法就是利用屏幕窗口,通过人机对话方式实现知识的增、删、改、查等;另一种方法就是用全屏幕编辑方式,让用户直接用键盘按知识描述语言的语法格式编辑知识。,2)知识检查功能设计 知识检查包括知识的一致性、完整性、冗余性等检查。所谓知识的一致性,就是知识库中的知识必须是相容的,即无矛盾。例如,下面的两条规则,r1:if P then Qr2:if P then Q,就是矛盾的。那么,像这样的规则就不能同时存在于一个知识库中。,所谓完整性,是指知识中的约束条件,称为完整性约束。例如,小王的身高为x米,则必须满足:x3米;又如,弟弟今年x岁,哥哥今年y岁,则必须满足xy。否则就破坏了知识的完整性。所谓冗余性,就是重复、多余等。冗余性检查就是检查知识库中的知识是否存在冗余。也就是要求不能存在冗余。冗余的表现有重复、包含、环路等现象。例如,下面的三条规则:,r1:if P then Qr2:if Q then Rr3:if P then R,若它们同时存在于一个知识库中,则就出现了冗余。因为由r1和r2就可推出r3。所以r3实际是多余的。,又如,r1:if P then Qr2:if Q then Rr3:if R then P,形成了一条环路。,3)知识库操作设计 知识库操作包括知识库(文件)的建立、删除、分解、合并等。这里着重要说明的是知识库的分解与合并。这两种功能类似于关系数据库的投影、选择和连接操作,它们实现的是知识库的重组。我们说,知识库的重组也是可能甚至是必要的。因为随着系统的运行,可能会发现原先的知识组合不合理,因此就需要重新组合,这时就需要使用知识库的分解与合并功能。需要说明的是,上面关于知识库及其管理系统的叙述,是从专家系统角度出发的。事实上,关于知识库及其管理系统,人们还从另一个方向数据库出发,进行了研究。,从数据库出发来研究知识库,是把知识库作为数据库的发展看待的。这样,便可以从数据库和数据库管理系统中取得借鉴和启发,来设计知识库和知识库管理系统。在这方面目前有两个重要的研究方向:一个是从面向对象的数据库系统出发来研究面向对象的知识库系统;另一个是由主动数据库得到启发来研究主动知识库。,一个主动知识库系统可定义为一个传统知识库系统之外再加一个事件驱动规则库,及其相应的事件监视器。其中事件库由系统和用户定义的各种事件驱动的规则组成。这样,整个系统中的知识被分成了两部分。一部分称为“被动知识”,即传统知识库中的知识,它们是供知识引擎(或推理机)在解题过程中使用的;另一部分称为“主动知识”,它是由上述事件驱动规则组成的。这些主动知识受系统中一个“事件监视器”的监视控制,该事件监视器主动地时刻监视着知识库,一旦发觉某事件发生时,就立即触发其后的规则,从而引发所需动作的执行。这样,用户可通过设置不同的事件驱动规则,以一种统一的机制实现许多知识管理功能,例如,对知识库的动态监视,知识库的完整性、一致性检查,例外情况处理,推理示踪,知识库分块处理,元知识或深层知识的自动切换,实现某些实时功能,多知识库合作解题,分布知识库系统中的同步与通讯,乃至推理或搜索策略的自动切换和推理中“黑板”内容的自动切换等等,应用将十分广泛。,12.4.6推理机与解释机制设计1.从哪里着手推理机是与知识库对应的专家系统的另一重要部件。推理机的推理是基于知识库中的知识进行的。所以,推理机就必须与知识库及其知识相适应、相配套。具体来讲,就是推理机必须与知识库的结构、层次以及其中知识的具体表示形式等相协调、相匹配。否则,推理机与知识库将无法接轨。因此,设计推理机时,首先得对知识库有所了解。例如,知识库中有无元知识?所有知识是否分模块存放?知识库的结构是集中式的,还是分布式的?