专家系统的概念
专家系统(Expert System)是一种在特定领域内具有专家级问题求解能力的智能计算机程序系统。它把领域专家多年积累的经验与专门知识存入计算机,并模拟专家运用知识、进行推理的思维过程,解决那些通常需要人类专家才能处理的复杂问题,如疾病诊断、矿藏推断、设备故障排查。
专家知识的特性
专家之所以稀缺,是因为其知识具有鲜明特点:启发性(大量经验性规则未必有严格证明,但实践中有效)、专有性(分布在专家头脑中,难以从教科书获得)、不稳定性(专家对问题的判断可能随情境变化)、不完整性与不确定性(信息常常不足,结论带置信度)。专家系统的目标就是把这些知识显性化、可复用化。
专家系统的基本特征
启发性与专门性
面向狭窄精深的具体领域,不仅使用理论知识,更使用启发式经验知识。
透明性
能解释自身的推理过程:"为什么这样判断?依据是什么?"——解释机构是专家系统区别于黑箱系统的重要部件。
灵活性
知识库与推理机相互分离,增删知识不必改动推理程序,可方便地扩充、移植到相邻领域。
| 比较维度 | 传统程序 | 专家系统 |
|---|---|---|
| 处理对象 | 数据、数值计算 | 知识、符号推理 |
| 控制方式 | 算法驱动,流程固定 | 推理驱动,匹配—冲突消解,过程动态 |
| 知识与程序 | 知识隐含在程序代码中 | 知识库与推理机显式分离 |
| 修改方式 | 修改代码、重新编译 | 增删规则即可,易维护 |
| 输出 | 计算结果 | 结论 + 解释 + 可信度 |
| 适用问题 | 有明确数学模型 | 无成熟算法、依赖专家经验 |
专家系统的基本结构
一个完整的专家系统通常由六大部件构成。其中,知识库与推理机是核心,被称为专家系统的"心脏"。
① 知识库(Knowledge Base)
存放领域专家提供的专门知识,包括事实性知识(事物属性、状态)与启发性规则(产生式规则最为常用)。知识库的质量与规模决定系统的专业水平。
② 综合数据库(Global/Working Memory)
存放求解问题的初始事实、用户回答和推理产生的中间结果,又称工作存储器,是推理过程的"草稿纸"。
③ 推理机(Inference Engine)
系统的控制核心,按一定策略选择规则、执行规则:完成匹配 → 冲突消解 → 操作循环。它决定正向还是反向推理、如何处理不确定性(如第 5 章的 CF 模型)。
④ 解释机构(Explanation Facility)
记录推理路径,回答用户"为什么问这个问题(Why)""如何得出这个结论(How)",增强透明性与可信度,也是教学与调试的重要工具。
⑤ 知识获取机构(Knowledge Acquisition)
负责把专家知识"搬运"并形式化到知识库:早期靠知识工程师手工整理,后期提供编辑与一致性检查工具,现代系统则尝试用机器学习自动获取。
⑥ 人机接口(User Interface)
系统与用户、专家、知识工程师之间的交互界面,负责自然语言/表格/图形信息的输入输出。
- 可维护性:医学指南更新时只改规则库,不必触碰推理程序;
- 可复用性:同一套推理机配上不同领域的知识库,可快速"克隆"出不同专家系统(如 MYCIN 的外壳 EMYCIN);
- 透明性:推理机可统一记录规则触发链,供解释机构使用。
工作原理
专家系统的运行围绕产生式系统的"匹配—冲突消解—执行"循环展开(第 2、3 章已建立基础),在实际咨询中体现为一个对话过程。以诊断类系统为例,其典型流程是:
① 初始化与事实录入
清空综合数据库,通过人机接口获取用户已知的初始事实(症状、观测数据)。
② 规则匹配
推理机扫描知识库,找出前提能被当前事实满足的所有规则,构成冲突集。
③ 冲突消解
按专一性优先、优先级排序、新鲜度优先等策略从冲突集中选定一条规则。
④ 执行与提问
执行后件:把新结论或中间假设写入数据库;若证据不足,则向用户提问获取新事实(反向推理尤为典型)。
⑤ 终止与解释
反复循环直到推出最终目标(给出结论与可信度)或无规则可用;解释机构回放规则链回答 Why/How。
正向推理系统
从事实推结论,数据驱动,适合监测、预测型任务,如化工异常预警;缺点是可能产生大量无关假设。
反向推理系统
先假设目标再寻找证据,目标驱动,提问有针对性、解释性好,适合疾病诊断、动物识别这类候选结论有限的任务——本章演示即采用反向推理。
开发步骤与知识获取
专家系统的开发不是传统意义上的"写程序",而是一项知识工程。费根鲍姆称之为"知识工程(Knowledge Engineering)",其典型生命周期包括:
① 需求分析与领域界定
选择问题范围适当、专家经验有价值且可符号化的领域;明确用户、目标与性能指标。并非所有问题都适合专家系统——有成熟数学模型的问题用传统算法即可。
② 知识获取与概念化
知识工程师通过访谈、记录、案例分析,从专家处获取知识,识别关键概念、关系与推理模式。这是整个开发中最困难、最耗时的环节。
③ 形式化与知识表示
确定用产生式、框架还是网络表示知识,设计规则结构、可信度模型与推理方向。
④ 原型实现
先建立包含少量核心规则的可运行原型,尽早让专家试用、验证思路,避免方向性返工。
⑤ 测试、扩充与完善
用大量真实案例测试,检查规则的正确性、一致性(冲突规则、冗余规则、包含规则、死循环),持续扩充知识库。
⑥ 部署与维护
培训用户、建立知识更新机制,使系统随领域知识演进而持续可用。
专家知识常是"知其然而不知其所以然"的内隐技能,专家自己也未必能完整表述;多位专家意见可能冲突;把口语经验转成形式化规则还会发生失真。这就是著名的知识获取瓶颈。缓解途径包括:结构化访谈与案例库分析、提供知识编辑与自动一致性检查工具,以及用机器学习从数据中归纳规则——这也正是专家系统与机器学习走向融合的动因。
开发工具与经典系统
三个层次的开发工具
| 层次 | 说明 | 代表 |
|---|---|---|
| 程序设计语言 | 通用语言,灵活但工作量大;AI 传统偏好 Lisp、Prolog | Prolog、Lisp、C++、Python |
| 骨架系统(外壳) | 抽去成功系统的领域知识,留下推理机与界面,填入新知识即可 | EMYCIN(抽自 MYCIN)、KAS |
| 通用/组合工具 | 提供知识表达、推理控制、解释的完整开发环境 | CLIPS、OPS5、JESS |
四座历史丰碑
DENDRAL(1965)
世界上第一个专家系统,由费根鲍姆等在斯坦福研制。根据质谱仪数据推断有机化合物的分子结构,标志着专家系统从设想走向现实。
MYCIN(1972)
细菌感染诊断与抗菌药物处方系统,约 600 条规则,采用反向推理与可信度 CF 模型,能解释推理过程,是最著名的专家系统范本(第 5 章 CF 模型即源于此)。
PROSPECTOR(1976)
矿藏勘探专家系统,使用主观贝叶斯方法处理不确定性,曾成功预测华盛顿州一处钼矿,取得巨大经济效益。
XCON / R1(1978)
DEC 公司用于 VAX 计算机配置设计的系统,数万条规则,每年节省数千万美元,是专家系统商业化的里程碑。
局限与新发展
传统专家系统受困于知识获取瓶颈、规则脆弱(域外即失效)、不会自动学习。近年来的发展方向是专家系统与机器学习、大模型融合:用机器学习自动归纳规则、用知识图谱提供结构化知识、用大语言模型承担自然语言交互与初步推理,再以规则引擎保证关键决策的可审计与确定性——这种"神经—符号"结合在医疗、金融合规等领域尤为受重视。
交互演示:动物识别专家系统
下面是一个可真实运行的产生式专家系统,内置 15 条规则,覆盖老虎、金钱豹、长颈鹿、斑马、鸵鸟、企鹅、信天翁七种动物。它采用 反向推理(目标驱动):先假设动物是某一种,再逐层寻找证据;遇到"有毛发""会飞"等原始特征时,就向你提问。求证失败则换下一个候选目标,成功时则给出完整的推理链解释(这正是解释机构的雏形)。
小提示:想识别老虎,可依次回答:有毛发→是,吃肉→是,黄褐色→是,有黑色条纹→是;想识别企鹅:有羽毛→是,不会飞→是,会游泳→是,黑白色→是。
动物识别专家系统(反向推理)
PRODUCTION · BACKWARD CHAINING① 系统提问的顺序并非随意,而是由当前假设的规则前件驱动——这是反向推理区别于问卷的关键;② 识别成功后给出的编号推理链,对应专家系统的解释机构;③ 规则库与推理代码完全分离:若要增加"海豚""鹦鹉"等动物,只需在规则库追加规则,不必改动任何推理逻辑——这正是 8.2 节强调的知识库/推理机分离原则。