1.59k likes | 1.73k Views
第 7 章 专家系统. 第 7 章 专家系统. 7.1 专家系统概述 7.2 专家系统的结构与工作原理 7.3 专家系统的产生式表示 7.4 专家系统的开发与建造 7.5 专家系统的评价 7.6 专家系统的开发工具 7.7 分布式专家系统与协同式专家系统 7.8 专家系统举例. 7.1 专家系统概述. 7.1.1 什么是 专家系统?.
E N D
第7章 专家系统 7.1专家系统概述 7.2专家系统的结构与工作原理 7.3专家系统的产生式表示 7.4 专家系统的开发与建造 7.5 专家系统的评价 7.6 专家系统的开发工具 7.7 分布式专家系统与协同式专家系统 7.8 专家系统举例
7.1专家系统概述 7.1.1什么是专家系统? 迄今为止,关于什么是专家系统,目前尚无一个十分确切的定义。一般公认定义:专家系统是一个具有智能的程序系统,其内部具有大量的专家水平的知识与经验;该系统能利用专家的知识与推理方法来解决专门领域的问题;它能对自身所得出的结论做出清楚、明晰、合理的解释。 简单地说,能够向用户提供关于某一领域中专家水平的决策与解释的智能模拟系统,称为专家系统。
7.1.1 什么是专家系统? • 现实中有许多问题,都要依靠专门领域的专家来解决。专家对问题的推理和决策,除了依据他们的学识外,还要取决于个人实践经验和直觉方法。其中,包括一些不确定的知识,从而以专家的决断,对问题给出权威的解答。 一个专家系统必须满足的基本条件是: ①专家系统处理的是现实世界中原本应由专家分析和判断的复杂问题; ② 专家系统解决问题的模型和方案来自于专家的经验和推理方法; ③专家系统应该得到和专家一致的判断结论与决策。 本质上,专家系统只是一个高级的计算机智能程序系统。
7.1.1 什么是专家系统? • 专家系统(Expert System)亦称专家咨询系统,它是一种智能计算机(软件)系统。顾名思义,专家系统就是能像人类专家一样解决困难、复杂的实际问题的计算机(软件)系统。 • 类比专家,专家系统应具备以下四个要素: (1) 应用于某专门领域; (2) 拥有专家级知识; (3) 能模拟专家的思维; (4) 能达到专家级水平。
7.1.2 专家系统的特性 同一般的计算机应用系统(如数值计算、数据处理系统等)相比,专家系统具有下列特性: (1)高性能。现实世界中,以数学化公式为核心的知识仅约占8%,大部分问题都是非数学化的知识。专家系统善于解决那些不确定性的、非结构化的、没有算法解或虽有算法解但在现有的机器上无法实施的高难问题。
7.1.2 专家系统的特性 (2)知识与实用性。 从处理问题的方法看,专家系统则是靠知识和推理来解决问题(不像传统软件系统使用固定的算法来解决问题),所以,专家系统是基于知识的智能问题求解系统。它不是一种学术性研究或实验性研究工具,而是为了解决人们在生产实践、科学研究、产品设计以及其它领域中的实际问题,更多地强调实用。
7.1.2 专家系统的特性 (3)灵活性及可扩充性。 从系统的结构来看,专家系统则强调知识与推理的分离,因而具有很好的灵活性和可扩充性。人们可把一个技术上成熟的专家系统变为一个专家系统工具,即只要抽去知识库中的知识就可使它变为一个专家系统外壳。当要建立另外一个其功能与之类似的专家系统时,只要把相应的知识装入到该外壳的知识库中就可以了。这可节省耗时费工的开发工作。目前有一些专家系统开发工具就是这样得来的。 例如,由专家系统MYCIN得到的构造工具EMYCIN;由PROSPECTOR得到的ES外壳KAS等。
7.1.2 专家系统的特性 (4)透明性。专家系统必须具有解释功能,能回答用户提出的问题,向用户解释它的决策动机和结论的推理过程,使用户能清楚地了解系统处理问题正确性,通过增强系统的透明度而取信于用户。 例如,一个医疗诊断专家系统诊断某病人患有肺炎,而且必须用某种抗生素治疗,那么,这一专家系统应向病人解释为什么判断他患有肺炎,解释用该抗生素治疗的原因,就像一位医疗专家对病人详细解释病情一样。
7.1.2 专家系统的特性 (5)自学习及自修正能力。有些专家系统还具有“自学习”能力,即不断对自己的知识进行扩充和完善。专家系统还能随时修正已有的知识或归纳出新的知识,适应新情况的需要,这一点是传统系统所无法比拟的。 (6)专业和长效性。专家系统大量使用的是专家级水平的专门领域所谓“深知识”来决策,而不是一般系统那样多使用常识性知识,即所谓“浅知识”;专家系统不像人那样容易疲劳、遗忘,易受环境、情绪等的影响,它可始终如一地以专家级的高水平求解问题。
7.1.3 专家系统的特点与研究意义 表7-1 专家系统特点及与传统程序的区别
7.1.3 专家系统的特点与研究意义 研究专家系统的主要意义在于: • 专家系统作为计算机系统,具有计算快速、准确的优势,不像人那样容易疲劳、遗忘,易受环境、情绪的影响,它可始终如一地以专家级的高水平求解问题。因此,专家系统在某些方面比专家更可靠、更灵活,可以超过专家本人。 • 专家系统便于保存和大面积推广各种专家的宝贵知识,更有效地发挥各种专业人才的作用,克服人类专家供不应求的矛盾。专家系统还可以综合许多专家的知识和经验,从而博采众长。 • 另外,由于专家系统具有解释功能,系统设计者和领域专家就可方便地找出系统隐含的错误,便于对系统进行维护。
7.1.4 专家系统的分类 1.按用途分类 可分为:诊断型、解释型、预测型、决策型、设计型、规划型、控制型、调度型等几种类型。 2.按输出结果分类 可分为:分析型和设计型。 3.按技术分类 可分为:符号推理专家系统和神经网络专家系统。
7.1.4 专家系统的分类 4.按知识分类 知识可分为确定性知识和不确定性知识,所以,专家系统可分为精确推理型和不精确推理型(如模糊专家系统)。 专家系统促使了知识工程(Knowledge Engineering)的诞生和发展,知识工程又是为专家系统服务的。正是由于这二者的密切关系,所以,现在的“专家系统”与“知识工程”几乎已成为同义语。
7.1.4 专家系统的分类 5.按规模分类 可分为:大型协同式专家系统和微专家系统。 6.按结构分类 可分为:集中式和分布式,单机型和网络型(即网上专家系统)。
7.1.5 专家系统与知识工程 1. 专家系统与知识系统 专家系统能有效地解决问题的主要原因在于它拥有知识,因为“知识就是力量”。但专家系统拥有的知识是专家知识,而且主要是经验性知识。 由专家系统的发展而发展起来的一种称为知识系统(Knowledge Based System)的智能系统,其中的知识已不限于人类专家的经验知识,而可以是领域知识或通过机器学习所获得的知识等。所以,对于这种广义的知识系统来说,专家系统就是一种特殊的知识系统。
7.1.5 专家系统与知识工程 2. 专家系统与知识工程 建造专家系统就涉及到: (1)知识获取:从人类专家那里或从实际问题搜集、整理、归纳专家级知识 (2)知识表示:以某种结构形式表达所获取的知识,并将其存储于计算机之中 (3)知识的组织与管理:知识库建立与维护等 (4)知识的利用:使用知识进行推理等一系列关于知识处理的技术和方法。
7.1.6一个关于专家系统的事例 BACON3系统介绍:由一位美国学者P.W. Langley (兰利)于1979年在Carnegie Mellon (卡内基-梅隆)大学提出的一个关于实验数据的分析系统,该系统是一个发现物理学中经验性定理的机器学习系统,并以英国16世纪著名思想家和科学家培根命名。 假设对应一组系统的输入数据X={XK} 得到一批输出数据Y={YKI},K,I=1,2,… 这批数据记录真实、齐全,但数据排列顺序被破坏了。如何分析呢?
7.1.6 一个关于专家系统的事例 由于这批数据记录真实、齐全,只是数据排列顺序被破坏了,因此,首先应恢复数据排列顺序,再进行系统分析: (1)将输入、输出数据分为两组,各自按单调排列; (2)确定对应输入与输出间的数据乘积,或比值,或某次方根,…等数学关系为一恒值常数;或引进新的变量,继续上述研究过程; (3)若确定对应输入输出间的数据的某数学关系为一恒值常数,则结合数据实验发生的原始环境,分析该常数的物理意义,从而总结出一般规律。
7.1.6 一个关于专家系统的事例 • 按照这种思路和数学模型,人们很容易获得关于物理学的很多定律。诸如: f=ma; S=vt U=RI Q=CU F=kX E=Mc2 P=F/S2 ( PxVx)/Tx= ( P0V0)/T0=R(常数) …等
7.1.6 一个关于专家系统的事例 • 按照这种思路和数学模型,人们很容易获得关于物理学的很多定律。诸如它能重新发现波义耳定律、欧姆定律、牛顿万有引力定律和开普勒行星运动定律等。 • 例如:如果给程序提供一系列气体体积随温度、压力变化的实验数据,系统经过学习概括和归纳推理,可以得出理想气体的波义耳定律。 • BACON系统的思想是利用一些算子反复构造一些新的项,当这些项中有一个是常数时,就得到概念“项=常数”。
7.1.6 一个关于专家系统的事例 • 例如,对开普勒定律:行星绕太阳运动周期为p与行星到太阳的距离d有关,即有公式:R = d3/p2 • 其中R为常数。计算过程如表8-2所示。 BACON3程序成功地模拟了人类发现物理学上一些经验性的简单定律,帮助人们概括出了物理实验中的一种客观规律。 进一步发展推广, BACON3甚至稍加改进,还可用于非线性系统的研究上。因此,对于这项成果,学者们曾经给以很高评价,认为可能抛砖引玉,导致归纳机的诞生。
1.0 3.0 1.0 行星 p D d/p d2/p d3/p2 Mercury 1 1.0 1 1.0 Venus 8 4 0.5 2.0 1.0 Earth 27 9 0.33 7.1.6一个关于专家系统的事例 表8-2 行星运动定律的发现 由上表,对开普勒定律公式 R = d3/p2 发现过程为: ① p和d都是递增,并且非线性互相依赖,触发建立新项d/p的算子。 ② d和d/p的递增方向刚好相反,触发建立新项(d/p)·d=d2/p的算子。 ③ d/p和d2/p的递增方向刚好相反,触发建立新项(d/p)·d2/p= d3/p2的算子。 ④项d3/p2是常数,则得到行星运动定律。
7.1.7专家系统的类型 1.解释型专家系统(expert system for interpretation) 通过对已知信息和数据的分析,确定并解释其涵义。解释型专家系统具有以下特点: ⑴ 系统处理的数据量很大,而且往往是不准确的、有错误的或不完全的。 ⑵ 系统能够从不完全的信息中得出解释,并能对数据做出某些假设。 ⑶ 系统的推理过程可能很复杂和很长,因而要求系统具有对自身的推理过程做出解释的能力。 例如解释图像分析,解释地质结构和化学结构的分析系统等。著名的地质勘探咨询的专家系统PROSPECTOR就是其中一例。
7.1.7专家系统的类型 2.预测型专家系统(expert system for prediction) 根据现状预测未来可能发生的情况的专家系统。诸如应用于气象预报、地震灾害预测、人口预测、工农业产量估计及水文、经济、军事形势预测等方面。其特点为: ⑴ 系统处理的数据随时间变化,而且可能是不准确和不完全的。 ⑵ 系统需要有适应时间变化的动态模型,能够从不完全和不准确的信息中,得出预报,并达到要求的时效性。 如台风路径预报TYT专家系统就是一例。
7.1.7专家系统的类型 3.诊断型专家系统(expert system for diagnosis) 根据诊断对象的表征现象,例如病人的临床症状,机器故障的声光现象等,推断出该对象机能失常或发生故障的原因。诊断专家系统具有下列特点: ⑴ 能够了解被诊断对象或客体各组成部分的特性以及它们之间的联系。 ⑵ 能够区分一种现象及其所掩盖的另一种现象。 ⑶ 能够向用户提出测量的数据,并从不确切信息中得出尽可能正确的诊断。 如著名的MYCIN系统,就能对传染性疾病做出专家水平的诊断和治疗选择。
7.1.7专家系统的类型 4.设计型专家系统(expert system for design) 这是一种根据任务要求,计算出满足设计问题约束的目标配置的系统。设计型专家系统应具有下列特点: ⑴ 善于从多方面的约束中得到符合要求的设计结果。 ⑵ 系统需要检索较大的可能解空间。 ⑶ 善于分析各种问题,并处理好子问题间的相互关系。 ⑷ 能够试验性地构造出可能设计,并易于对所得设计方案进行修改。 ⑸ 能够使用已被证明是正确的设计来解释当前的新设计。 例如,DAC公司用来帮助用户提出最佳计算机配置方案的R1系统。
7.1.7专家系统的类型 5.规划型专家系统(expert system for planning) 用来制订行动规划的专家系统。诸如机器人动作规划、制订生产规划等。其具体特点有: ⑴ 所要规划的目标可能是动态的或静态的,因而需要对未来动作做出预测。 ⑵ 所涉及的问题可能很复杂,要求系统能够抓住重点,处理好各子目标之间的关系和不确定的数据信息,并通过实验性动作得出可行规划。
7.1.7专家系统的类型 6.监视型专家系统(expert system for monitoring) 用来对某些行为、状况进行监视,并与其正常情况进行比较,当发现异常发出告警或进行干预的系统。如森林火警监视、机场监视等。监视专家系统具有下列特点: ⑴ 系统应具有快速反应能力,在造成事故之前及时发出警报。 ⑵ 系统发出的警报要有很高的准确性。在需要发出警报时发警报,在不需要发出警报时不得轻易发警报(假警报)。 ⑶ 系统能够随时间和条件的变化而动态地处理其输入信息。
7.1.7专家系统的类型 7.控制型专家系统(expert system for control) 用以自适应地管理受控对象,使之满足预期要求的系统。其特点为:能够解释当前情况,预测未来可能发生的情况;诊断可能发生的问题及其原因,不断修正计划,控制系统的运行。控制型专家系统具有解释、预报、诊断、规划和执行等功能。 8.调试型专家系统(expert system for debugging) 调试型专家系统的任务是对失灵的对象给出处理意见和方法。调试专家系统的特点是同时具有规划、设计、预报和诊断等专家系统的功能。
7.1.7专家系统的类型 9.教学型专家系统(expert system for instruction) 教学型专家系统能根据学生的知识点掌握情况、性情特点等,以最适当的教案和教学方法对学生进行教学和辅导。其特点为: (1)同时具有诊断和调试等功能。 (2)具有良好的人机界面。 10.维护型专家系统(expert system for repair) 系统能对发生故障的对象(系统或设备)进行处理,使其恢复正常工作。该类型专家系统应具有诊断、调试、计划和执行等功能。
专家知识 知识库 人 机 接 口 推理机 输入或提问 答案 推理机 解释器 知识获取 黑 板 知识与 数据库 7.2专家系统的结构与工作原理 7.2.1 专家系统的一般结构 用户 专家/知识工程师 图7-2 专家系统的基本结构 图7-3A 专家系统的一般结构
7.2专家系统的结构与工作原理 图7―3B 专家系统的基本结构
7.2.1 专家系统的一般结构 专家系统须满足的基本功能(共六大功能): ⑴ 存储问题求解所需的专家知识; ⑵ 存储具体领域内的初始数据和推理过程中所涉及到的各种信息.如中间结果、目标、子目标、条件、假设等等。 ⑶ 根据当前输入的数据,利用已有的知识,按照一定的推理策略,去解决当前问题,并能控制、协调整个系统。 ⑷ 能对推理过程、结论或系统自身做出必要的解释.如解题步骤、处理策略、选择处理方法、求解某种问题的能力、系统如何组织和管理其自身知识等。这样既便于用户的理解和接受,同时也便于系统的维护。
7.2.1 专家系统的一般结构 ⑸ 提供知识获取、机器学习、修改、扩充和完善等其它维护手段。这样才能更有效地提高系统的问题求解能力及准确性。 ⑹ 提供一种人机接口,能分析、理解用户的各种请求。 其中,存放知识和使用知识是专家系统的两个基本功能,用于实现该功能的知识库和推理机构成了专家系统的两个核心部件,如图7-2所示。 基于规则的专家系统的结构如图7-3所示,一般包括知识与数据库、推理机、黑板、人机接口、解释器和知识获取机等六部分。
专家 知识 知识库 人 机 接 口 推理机 输入或提问 答案 推理机 解释器 知识获取 黑 板 知识与 数据库 7.2.1 专家系统的一般结构 用户 专家/知识工程师 图7-2 专家系统的基本结构 图7-3A 专家系统的一般结构
7.2.1 专家系统的一般结构 • 知识与数据库:包括专家知识库和事实数据库两部分,存储着求解领域中问题所需的专家知识及数据,它是专家系统的组成基础。 • 主要用途:用于存放相关领域或问题的初始数据、中间结果、最终结论等。它能对知识和全局数据施行存储、管理,并以规则形式表达专家级知识。一类是领域中的定义、事实和理论等,通常收录于相关学术著作和教科书中;另一类是专家个人在工作经历中所获得的实践经验等。这使得专家们在错综复杂关键时刻,能临机决断,做出正确决策。 • 特性:⑴ 它可被所有的规则访问;⑵ 规则之间的联系只有通过数据库才能发生。
7.2.1 专家系统的一般结构 • 推理机:推理机实际上就是一组计算机程序,它是专家系统的“思维”机构,是构成专家系统的核心部分。 • 主要功能:协调控制整个系统,模拟领域专家的思维过程,控制并执行对问题的求解。它能根据当前已知的事实,利用知识库中的知识,按一定的推理方法和控制策略进行推理,求得问题的答案或证明某个假设的正确性。 • 总之,知识库和推理机构成了一个专家系统的基本框架。这两部分相辅相成、密切相关。因为不同的知识表示有不同的推理方式,所以,推理机的推理方式和工作效率不仅与推理机本身的算法有关,还与知识库中的知识以及知识库的组织有关。
7.2.1 专家系统的一般结构 • 黑板: 顾名思义,黑板是一种可读、可刷新重写的装置,用于描述记录专家系统的中间推理过程、数据的变换与演算,又称为暂存器。许多专家系统结构把黑板并入数据库中,但它只是系统运行中间的一些动态信息的集合,是系统运行期间产生和变化的,因此,它只是数据库中“动态”变化的那一部分。有了黑板,便于进行系统跟踪、调试与解释。
7.2.1 专家系统的一般结构 • 解释模块(解释器): 它是实现系统透明性的重要模块,负责回答用户提出的各种问题,解释系统的推理过程,使系统向用户透明。 解释程序模块由一组程序构成,它是专家系统区别于一般程序的重要特征之一。它可对推理路线和提问的含义给出必要的清晰的解释,使用户了解推理过程;并能跟踪并记录推理过程,也为系统维护提供了方便的手段。
7.2.1 专家系统的一般结构 • 知识获取模块: 这是专家系统中能将某专业领域内的事实性知识和领域专家所特有的经验性知识转化为计算机可利用的形式并存入知识库的功能模块。同时也负责知识库中知识的修改、删除和更新,并对知识库的完整性和一致性进行维护。 知识获取模块是实现系统灵活性的主要部分,它使领域专家可以修改知识库而不必了解知识库中知识的表示方法、知识库的组织结构等实现上的细节问题,这大大地提高了系统的可扩充性。
7.2.1 专家系统的一般结构 • 人机接口: 人机接口负责把领域专家、知识工程师或一般用户输入的信息转换成系统内规范化的表示形式,然后把这些内部表示交给相应的模块去处理。系统输出的内部信息也由人机接口转换成用户易于理解的外部表示形式显示给用户。
7.2.2 专家系统的工作原理 • 求解过程大致有如下几个步骤: • 根据用户的问题对知识库进行搜索,寻找有关的知识。 • 根据有关的知识和系统的控制策略形成解决问题的途径,即知识操作算子序列,从而构成一个假设集合。 • 对解决问题的一组可能假设方案进行排序,并挑选其中在某些准则下为最优的假设方案。 • 根据挑选的解决问题的假设方案去求解具体问题。 • 如果该方案不能真正解决问题,则回溯到假设方案序列中的下一个假设方案,重复求解问题。 上述过程循环执行,直到问题已经解决或所有可能的求解方案都不能解决问题而宣告“本系统该问题无解”为止。
目标问题分析 根据目标问题集聚知识 知识库 还有其它方案? 形成解决问题的假设方案集 对假设方案集进行排序 选择下一个方案并执行 Y 成功结束 N 选择最优方案执行之 N 失败结束 Y 问题已解决? 7.2.2 专家系统的工作原理 上述过程可用图7-3来描述。
7.2.3专家系统的实际结构 上面介绍的专家系统结构,是专家系统的概念模型,或者说是只强调知识和推理这一主要特征的专家系统结构。但专家系统终究仍是一种计算机应用系统。所以,它与其它应用系统一样是解决实际问题的。而实际问题往往是错综复杂的,比如,可能需要多次推理或多路推理或多层推理才能解决,而知识库也可能是多块或多层的。
总 控 处理模块1 专家模块1 …… …… 处理模块 n 专家模块 m 专家系统的实际结构示例
7.2.3专家系统的实际结构 • 网络与分布式结构 在网络环境下,专家系统也可以设计成网络结构,如“客户机/服务器”(Client/Server)结构),或浏览器/服务器(Browser/Server)结构)。我们称这类专家系统为网上专家系统。 分布式结构则是一种适合于分布式计算环境的专家系统。例如那些多学科、多专家联合作业,协同解题的大型专家系统,就可以设计成分布式结构。这类专家系统也就称为分布式专家系统。
7.2.3专家系统的实际结构 Web Server 服务器 Internet 客户(机) Browser 专家系统的客户(机)/服务器结构及浏览器/服务器结构
7.3专家系统的产生式表示 7.3.1 产生式的提出 • 针对指定的符号串产生替换运算,美国数学家Post于1943年首次提出产生式系统(Production System)概念;后来,学者们又依据这种按指定方式产生输出符号的思想,构造了POST自动机,明确地提出了一种用“规则”进行信息加工的系统模型。 • 随后,产生式不断发展。Markov提出了产生式系统的控制策略;Chomskey提出了文法分层概念和类似产生式生成的语言重写规则;在此基础上,计算机界学者成功地构造了ALGOL60高级计算机语言;20世纪七十年代,Newell 和Simon等学者在对人类认知模型研究中,开发了基于规则的产生式系统等。从此,产生式知识表示在人工智能中得到广泛的应用,尤其Feigenbaum等人运用产生式知识表示,成功构造了专家系统,取得了许多卓越的成就。