• 本文对基于规则的专家系统进行简介,举例专家系统的结构类似 MYCIN 系统,同时串联介绍专家系统的各种思想。需要注意的是,本文所述仅是专家系统的一种实现途径,其依赖规则进行知识表示和推理,另外还有基于语义网络、框架、谓词逻辑、脚本等等其他知识表示和推理方法的专家系统
  • 参考:专家系统是如何实现的

1. 基本结构 & 基本工作流程

  • 专家系统(Expert System, ES)是在某一特定领域中,能够像人类专家一样解决复杂问题的计算机软件系统。它能够有效地运用专家多年积累的经验和专业知识,通过模拟专家的思维过程,解决需要专家才能解决的问题。专家系统需要通过一定的知识获取方法,将专家知识保存在知识库中,然后运用推理机,结合人机交互接口进行工作。
  • 专家系统的基本结构如下所示
  • 知识库:包含由知识工程师提供的大量先验领域知识,通常以规则形式构成,形如 IF <前提> THEN <结论>。其中 <前提> 和 <结论> 都是事实命题,可以形式化表示为三元组表达式 (<名称> <属性> <值>)。特别地,<名称> 字段可以用 “same” 和 “notsame” 表示 “一致” 或 “不一致”,例如:

IF (天气 类别 阴天) 且 (天气 湿度 高) THEN (天气 类别 下雨);
IF (天气 类别 下雨) THEN (行李 包含 雨伞)
IF (same 羽毛 有) THEN (动物 类别 鸟类)
IF (same 类别 鸟类) and (notsame 飞翔 会) and (same 游泳 会) and (same 颜色 黑白) THEN (动物 是 企鹅)

  • 推理机:一个执行机构,它能够对知识库的知识进行解释(符号->语义),并利用知识进行推理
  • 动态数据库:一个工作存储区,用于存放初始已知条件、已知事实、推理过程中得到的中间结果以及最终结果等
  • 人机交互界面:系统与用户的交互接口,系统运行过程中,用户通过该交互接口向系统输入数据,系统通过该交互接口对用户显示信息
  • 解释器:在专家系统和用户的交互过程中,当用户对系统输出存在疑问时,专家系统可以通过解释器向用户进行解释。解释一般分为 Why 和 How 两种,前者对系统向用户提问的原因进行解释,后者对系统得到结论的推理途径进行解释
  • 知识获取模块:专家系统与知识工程师的交互接口,知识工程师通过知识获取模块将整理的领域知识加入到知识库中,也通过知识获取模块对知识库进行管理和维护
  • 专家系统的基本工作模式包括推理模式和解释模式两种
  • 推理模式下如左图所示,用户通过人机交互界面向系统输入数据,推理机借助知识库对这些数据进行分析、推理、提出假设并向用户提问,请求新的输入数据来验证假设。以上人机交互过程会迭代重复多次,直到推理机得出最终结果,在此过程中,用户的原始输入和产生的中间结果都会记录在动态数据库中,以支持推理机的推理过程
  • 解释模式如右图所示,交互过程中,用户可以随时通过人机交互界面要求系统进行解释,解释器会根据动态数据库中存储的历史交互信息向用户给出 Why 解释或 How 解释

2. 推理方法

  • 专家系统的推理方法分为两类
  1. 正向推理:从已知条件出发,正向地使用规则向目标进行推理,是一种数据驱动的推理
  2. 逆向推理:从目标出发,首先假设结论成立,再逆向运用规则推出必须成立的前提,若发现所有必要前提都已知成立,则推理命题为真,是一种目标驱动的推理
  3. 双向推理:同时使用正向和逆向推理
  • 设有如下规则 r1、r2、r3,已知 A、B、D 成立,求证 F 成立
    专家系统简介_推理方法 正向推理过程如下图所示

    逆向推理过程如下图所示
  • 冲突消解:指在推理过程中,当有多个规则的前提同时成立时,如何选择规则。常见的冲突消解方法有
  1. 按顺序执行
  2. 更多前提条件被满足的规则优先执行
  3. 距离目标更 ”近“ 的规则被优先执行(以目标的直接前提为结论的规则最先执行)
  4. 按规则的优先级执行
  • 考虑一个典型的设备参数设计场景,可以采用混合正向推理和逆向推理的双向推理方法:首次交互时,专家系统基于用户输入的场景和初步要求进行正向推理,得到初步参数方案设计;此后,针对初步设计中缺失但用户所需的额外参数,进一步通过逆向推理方法进行补充。特别地,整个推理过程中,若数据库中缺乏必要前提的相关规则或事实知识,则向用户发出提问请求加以补充。

示例如下:

  1. 用户:(需求 类型 红外热像仪);(需求 用途 野外电力设备巡检)
  2. 专家系统:(? 探测距离)
  3. 用户:(需求 探测距离 500米)
  4. 专家系统:(设计 分辨率 640x480像素) ;(设计 视场角 10度)
  5. 用户:(? 波长范围)
  6. 专家系统:(? 灵敏度)
  7. 用户:(需求 灵敏度 ≤50mK))
  8. 专家系统:(设计 波长范围8-14微米)
  9. 用户:(How 波长范围8-14微米)
  10. 专家系统:[Rule 15]:IF (same 探测距离 ≤500米) and (same 视场角 ≤15度) and (same 灵敏度 ≤75mk) THEN (传感器 波长范围8-14微米)

注意到

  1. 为了消解自然语言的复杂性和模糊性,专家系统通常使用类程序化的形式语言进行人机交互
  2. 第4行的初步参数设计通过正向推理方法得到
  3. 第8行的补充设计通过逆向推理方法得到
  4. 第10行专家系统利用解释器对设计方案进行了How解释

3. 专家系统的分类

3.1 确定性推理

  • 基于规则推理(Rule Base Reasoning,RBR)的方法是将专家所掌握的现有知识和经验, 通过一定的方法转化为规则, 适用推理解进行启发式推理。根据明确的前提条件,得到明确的结果。

以动物的分类为例,规则可以设计为

  • IF(有毛发 or 能产乳)and((有爪子 and 有利齿 and 前视)or 吃肉)and 黄褐色 and 黑色条纹,THEN 老虎
  • IF(有羽毛 or 能飞 and 生蛋))and 不会飞 and 游水 and 黑白色,THEN 企鹅
  • 通常使用逆向推理规则,首先假设用户问题为真,然后根据规则判断所有前提是否成立,若知识库中不包含判断前提是否成立的必要信息,则由推理机向用户发起提问。基于规则的专家系统的工作流程如下图所示
  • 基于规则的专家系统是最早期的一种专家系统
  • 优点:推理过程比较明确,只要规则正确结论就比较准确,简单实用,应用广泛
  • 缺点:规则构造严重依赖专家的经验积累,经验如果不准确则结果也不准确;没有自学习能力,更新迭代需要专家经验的不断积累

3.2 非确定性推理

  • 现实中遇到的问题多数为非确定性问题,比如对于规则 IF 阴天 THEN 下雨,判断阴天的标准是模糊的,而且即使阴天也不一定下雨。导致非确定性的因素包含随机性、自然语言的模糊性、不完全性、多因素组合等。因此,有必要对事实和推理结果引入不确定性度量,以进行非确定性推理
  • 置信度方法(Certainty Factor, CF)是一种常用的非确定性推理方法,最早由专家系统 MYCIN 提出,后在 EMYCIN 系统中得到进一步改进。为实现非确定性的推理,CF 方法将置信度概念引入到推理过程的各个环节中,具体设计如下:
  1. 事实的表示:用 CF(A) 表示事实 A 为真的置信度,是一个取值范围在 [-1,1] 的浮点数
  • 当 CF(A) = 1 时,表示 A 肯定为真
  • 当 CF(A) = -1 时,表示A为真的置信度为 -1,也就是 A 肯定为假
  • CF(A) > 0 表示 A 以一定的置信度为真
  • CF(A) < 0 表示 A 为真的置信度为负,即其为假的置信度为 -CF(A)
  • CF(A) = 0 表示对 A 一无所知。一般当 CF(A) 取值为一个绝对值较小的区间时,即认为系统不包含任何 A 的相关信息
  1. 规则的表示:引入置信度后,推理结果中也要包含置信度,此时规则表示为 IF A THEN B CF(B, A),可以理解为
  • 表示当 A 成立时,即 CF(A)>0 时,结论 B 成立
  • CF(B,A) 是规则的置信度,又称为规则的强度,取值范围为 [-1,1]
  • 当 A 一定为真,即 CF(A) = 1 时,CF(B, A) = CF(B) 退化为结论 B 为真的置信度
  1. 逻辑运算:在普通与或非逻辑运算的基础上,置信度方法的逻辑运算扩展了对置信度的计算
  • CF(A and B) = min {CF(A), CF(B)}
  • CF(A or B) = max {CF(A), CF(B)}
  • CF(not A) = -CF(A)
  1. 规则运算:对于规则 IF A THEN B CF(B, A),结论 B 的置信度如下计算
  • CF(B) = max {0, CF(A)} x CF(B, A)
  • 以规则 IF 阴天 and 湿度大THEN 下雨 0.8 为例进行计算,设 专家系统简介_推理方法_02专家系统简介_推理过程_03,则
    专家系统简介_MYCIN_04
  1. 规则合成:当多个规则支持相同的结论时,从每个规则得到结论的置信度不同,需要合成以确定 CF(B)。具体而言,设:
    专家系统简介_推理过程_05 在 MYCIN 系统中,置信度合成方法为
    专家系统简介_MYCIN_06
    当需要合成的规则数量大于2时,可以通过两两运算来合成置信度,但以上方法的结果会受到合成顺序影响,不满足交换律,且置信度符号相反时合成结果趋向 0,不够合理。为此,EMYCIN 系统中对置信度合成方法优化为
    专家系统简介_推理方法_07
  • 置信度方法具有基于概率论的理论支撑,其中置信度可等价定义为信任度量和不信任度量之间的差值。实际使用时,通常直接由专家给出 CF 值,而不通过概率进行计算

4. 黑板模型

  • 专家系统使用知识库和动态数据库支持推理机进行推理,需要对其中的层次性知识数据进行管理。黑板模型是一种典型的对知识进行结构化组织和管理的模型,最早在1970年代由卡内基梅隆大学开发的HEARSAY-II系统中提出,在专家系统中被广泛采用
  • 黑板模型的基本思想是通过一个共享的工作空间(即“黑板”)来协同解决复杂问题,如下图所示,其主要组成部分包括:
  1. 知识源(Knowledge Sources, KS):每个知识源是一个独立的专家模块,包含特定领域的知识和技能。知识源之间相互独立,不直接通信。
  2. 黑板(Blackboard):一个全局共享的工作空间,存储问题的当前状态和中间结果。所有知识源都可以读取和修改黑板上的信息。
  3. 控制机制(Control Mechanism):负责监控黑板上的状态,并根据某种策略选择和激活合适的知识源来处理当前问题。
  • 黑板模型的工作流程如下:
  1. 当一个问题被提出时,初始数据会记录在黑板上
  2. 各知识源通过“观察”黑板,寻找可以应用其知识的机会
  3. 当某个知识源发现黑板上的信息足以支持进一步求解时,它会执行相应的操作,并将结果记录在黑板上
  4. 新增的信息可能会触发其他知识源的进一步操作
  5. 这一过程不断重复,直到问题得到解决
  • 黑板模型使用模块化设计,知识源可以独立开发和维护,便于系统扩展和更新。多个不同的知识源独立工作,并通过黑板进行协同,适合处理复杂和动态变化的问题,在解决大型复杂问题时非常有效,特别是在需要多学科、多专家协同工作的场景中