专家系统概论
软件架构课程 Lecture-3 补充讲义,北京大学软件与微电子学院 原始文件:
/田浩然上传的资料/0B105-SoftwareArchitecture/Lecture-3/专家系统概论1.doc
一、专家系统的定义
专家系统(Expert System, ES)是一个智能程序,它能对那些需要专家知识才能解决的应用难题,提供相关领域权威专家水平的解答(Michie 1979;Feigenbaum 1977;Hayes-Roth 1983)。
也可以说,专家系统是一个运用知识进行推理的计算机程序。推理就是使用某种符号逻辑,从一些事实得到结论的过程。
从广义上来说,专家系统中的知识(表层知识)包括两种:
- 事实 — 客观存在的确定知识
- 经验 — 好的猜测和判断,也称为启发式知识(heuristic knowledge)
二、知识的层次结构
一个专家的知识分为三个层次:
元级知识(meta-level knowledge)—— 关于知识的知识
│
知识(浅层知识) —— 事实 + 经验/启发式
│
深层知识(deep knowledge)—— 领域的基本原理、第一性原理
三、知识的六种类型(从知识表示角度)
| 类型 | 定义 | 示例 | 表示方式 |
|---|---|---|---|
| 事实性知识 | 描述客观事实 | ”北京有一千万人口” | 表格、图册、数据库、规则 |
| 过程性知识 | 描述做事的步骤/方法 | ”电视机的维修方法” | 标准子程序库 |
| 实例性知识 | 只给出实例,规律隐藏其中 | 大批量观察数据 | 机器学习从数据中归纳 |
| 行为性知识 | 不直接给事实,只给行为表现 | 微分方程刻画函数行为 | 数学模型(描述内涵而非外延) |
| 类比知识 | 给出与其他事物的相似之处 | ”山叠叠而不高…”(谜语) | 类比推理(可跨领域启发) |
| 元级知识 | 关于知识的知识 | 如何使用知识的策略 | 元控制知识(最常用) |
类比知识的特点:不能完整刻画事物(有”瞎子摸象”的问题),但可以启发人们用一个领域的知识去解决另一个领域的问题。
四、专家系统常用的六种知识表示形式
- 产生式系统(Productions / 规则) — 最常用的形式
- IF…THEN… 结构
- 可包含不确定性(如 MYCIN 的规则强度 0.7)
- 框架(Frames)
- 语义网络(Semantic Nets)
- 脚本(Scripts)
- 逻辑与集合(Logic and Sets)
- 知识表示语言(Knowledge Representation Language)
MYCIN 规则示例
IF
a) 微生物的染色体是革兰氏阳性,并且
b) 微生物的结构是球菌,并且
c) 微生物的生长形态是链状的
THEN
有一个强度为 0.7 的参考性证据说明该微生物的类别是链球菌
五、专家系统的基本体系结构
基于规则的专家系统核心三大组件:
- 知识库(规则库) — 存储领域专家的规则知识
- 推理机(Inference Engine) — 运用规则进行推理
- 数据基(工作存储器) — 存储事实、中间结论、最终结论
加上人机界面和知识获取模块,构成完整系统。
六、知识的阈值(Knowledge Threshold)
知识原理:一个系统显示出高水平的智能,其原因是它具有丰富的专门知识,并且它能有效地利用这些专门知识。 (“智能” = 在巨大搜索空间中迅速找到合适解的能力)
三个关键阈值:
| 阈值 | 名称 | 含义 |
|---|---|---|
| W | 合式阈值 | 明确表达一个任务所需的最小知识数量 |
| C | 能力阈值 | 足以解决领域中约 90% 问题的知识量 |
| E | 全体专家阈值 | 一个领域中所有人类专家知识的总和 |
知识数量与系统性能的关系
- W 以下:知识太少,无法有效工作
- W → C:每增加一些知识,系统性能明显改善(陡峭上升期)
- C → E:知识增加,性能改善不明显(新增知识只用于解决罕见问题)
- E 以上:接近全能,几乎能解决所有罕见和困难问题
七、专家系统的四大主要特征
① 显式表达的大量领域专门知识
- 知识库与推理机分离 → 高度灵活性(flexible)
- 知识片具有模块性:
- 修改一个知识片一般不影响其他知识片
- 一个知识片不会被其他知识片直接调用
- 这是 ES 与传统程序的显著差别之一
② 符号处理
- 基本假设:知识具有可表示性
- 符号表示 + 符号推理
- 这是 ES 与传统程序的显著差别之一
③ 智能
- 在某领域表现出智能行为
- 智能水平取决于:知识的多寡和质量 + 推理机的优劣
- 相关事实的可获得性、推理的完备性与效率、一般问题求解能力、自适应性
④ 推理过程的解释
- 对系统自身行为给出解释,给出结论的依据
- 这是 ES 与传统程序的显著差别之一
八、专家系统的十种类型
| 类型 | 任务 | 示例 | 特点 |
|---|---|---|---|
| 解释类 | 分析已知数据确定其内涵 | 自然语言理解、图像分析、信号解释 | 数据不准确/有错误/有丢失/量大,推理复杂,需要解释推理过程 |
| 预报类 | 从过去/现在推断将来 | 天气预报、灾害预报、经济预测 | 数据随时间变化,不准确不完全,需动态模型 |
| 诊断类 | 从现象推断故障/病因 | 医疗诊断、设备故障诊断 | — |
| 设计类 | 生成符合约束的设计方案 | 工程设计、电路设计 | — |
| 规划类 | 制定行动序列以达成目标 | 路径规划、项目规划 | — |
| 监视类 | 实时监控并发出告警 | 安全监控、生产监控 | — |
| 控制类 | 控制系统运行 | 过程控制 | — |
| 调试类 | 找出并修复错误 | 软件调试、设备排错 | — |
| 教学类 | 个性化教学辅导 | 智能教学系统 | — |
| 修理类 | 制定修复方案并执行 | 设备维修 | — |
九、其他重要架构
黑板模型(Blackboard Model)
多个知识源通过共享的”黑板”进行协作,各知识源独立读写黑板,推理过程是机会主义的。
分布式多专家协作系统
多个专家系统分布在不同节点,通过协作解决复杂问题。
十、ANIMAL 动物识别专家系统(演示系统)
一个非常简单的演示型专家系统,用于说明基于规则的推理机制。
基本设定
- 知识库:15 条规则(实际专家系统通常 ≥ 几百条)
- 解空间:7 种动物(虎、豹、长颈鹿、斑马、鸵鸟、企鹅、信天翁)
- 初始事实:20 个事实(F1–F20)
- 推理:精确/确定性推理(无不确定性)
规则体系(15 条规则,三层推理网络)
第一层:类别推断(M1–M4 中间结论)
- R1: 有毛发(F1) → 哺乳动物(M1)
- R2: 有奶(F2) → 哺乳动物(M1)
- R3: 有羽毛(F3) → 鸟(M4)
- R4: 会飞(F4) ∧ 下蛋(F5) → 鸟(M4)
- R5: 吃肉(F6) → 食肉动物(M2)
- R6: 锋利牙齿(F7) ∧ 有爪(F8) ∧ 眼睛前视(F9) → 食肉动物(M2)
- R7: 哺乳动物(M1) ∧ 有蹄(F10) → 有蹄类(M3)
- R8: 哺乳动物(M1) ∧ 反刍(F11) → 有蹄类(M3) ∧ 偶蹄类
第二层:最终动物识别(H1–H7 最高假设)
- R9: 哺乳动物(M1) ∧ 食肉动物(M2) ∧ 黄褐色(F12) ∧ 暗斑(F13) → 豹(H1)
- R10: 哺乳动物(M1) ∧ 食肉动物(M2) ∧ 黄褐色(F12) ∧ 黑色条纹(F14) → 老虎(H2)
- R11: 有蹄类(M3) ∧ 长脖子(F15) ∧ 长腿(F16) ∧ 暗斑(F13) → 长颈鹿(H3)
- R12: 有蹄类(M3) ∧ 黑条纹(F14) → 斑马(H4)
- R13: 鸟(M4) ∧ 不会飞(F17) ∧ 长脖子(F15) ∧ 长腿(F16) ∧ 黑白色(F18) → 鸵鸟(H5)
- R14: 鸟(M4) ∧ 不会飞(F17) ∧ 会游泳(F19) ∧ 黑白色(F18) → 企鹅(H6)
- R15: 鸟(M4) ∧ 善飞(F20) → 信天翁(H7)
推理网络节点类型
- 初始事实节点(底层,20 个)
- 中间结论节点(中层,M1–M4)
- 最高假设节点(顶层,H1–H7)
中间和顶层节点又分为与节点、或节点、与或节点。
数据基 GDB 的单调性
- 启动时 GDB 为空
- 用户输入的事实 + 推导出的中间结论和假设 → 实时插入 GDB
- 事实单调增加,不能删除
- 当事实不能再增加时,推理结束
正向推理示例
初始 GDB = {黄褐色(F12), 暗斑(F13), 吃肉(F6), 有毛发(F1)}
↓ R1 推出 M1(哺乳动物)
↓ R5 推出 M2(食肉动物)
↓ R9 推出 H1(豹)
最终 GDB = {F1, F6, F12, F13, M1, M2, H1}
逆向推理示例
验证”动物是不是老虎?“:从假设 H2 出发,反向验证所需事实是否满足。
十一、MYCIN 系统
判断血液感染微生物的经典专家系统:
- 多个专家的知识 → 知识库
- 人机界面 + 推理机 + 知识库 + 数据基
- 规则中包含不确定性信息(规则强度/CF 值)
- 是专家系统历史上最著名的系统之一(Shortliffe, 1975)
十二、知识获取流程
知识从多种来源汇集到知识库的过程:
专家知识 + 文献知识 + 专业人员知识 + ...
│
↓
输(录)入
一致性检验
完备性检验
编辑
解释
知识化简 + 知识获取
↓
知识库(规则库)
涉及:录入、一致性检验、完备性检验、编辑、解释、知识化简、知识获取。
关联笔记:
- 设计模式课程-第3讲-设计原则 (设计原则与专家系统设计的关系)
- Software_Architecture_Overview-软件体系结构概述 (Lecture-1 课程概述)
- Software Architecture Style-软件架构风格 (Lecture-2 架构风格,黑板模型是其中之一)