符号 AI 技术 · 专家系统
专家系统:产生式规则、Rete 算法、MYCIN 与 XCON
基于规则的专家系统背后的每一项技术,从 Post 的产生式到今天的业务规则引擎:匹配—选择—执行循环、前向与后向链接、Rete 匹配算法、MYCIN 的确定性因子、让这个领域成名的那些系统,以及限制了它的知识获取瓶颈。
专家系统(expert system)是这样一种程序:它在一个狭窄的专业领域内解决问题,方法是通过一个通用的推理引擎,运用从人类专家那里获取的规则所构成的知识库。由于它的知识是一组可读的规则,它可以列出产生某个结论的规则与事实,以此解释每一个结论。
专家系统把它知道什么与它如何推理分开。知识库存放与领域专家一起写下的 IF—THEN 规则;推理引擎把这些规则与当前案例的事实进行匹配,挑出一条触发、执行它,然后重复。从事实走向结论,这是前向链接(OPS5、XCON、CLIPS、Drools);从一个目标倒推回能证明它的事实,这是后向链接(MYCIN)。Charles Forgy 的 Rete 算法通过在循环之间记住部分匹配,让成千上万条规则的匹配变得很快。MYCIN 为不确定的证据加入了确定性因子。从 DENDRAL(1965 年)到 XCON(1980 年起在 DEC 投入使用),这种方法在狭窄领域取得了真实的成果,随后撞上了手工编写和维护规则的成本。同样的机制今天仍运行在业务规则引擎之中。本页是我们的符号 AI 技术指南中的一个技术家族页面。
1. 什么是专家系统
专家系统是符号 AI 在商业上最成功的形态。它由三部分组成:
- 知识库:领域规则(“如果该微生物革兰氏染色阴性、呈杆状且为厌氧菌,那么它很可能是拟杆菌”),通常有几百到几千条。
- 工作记忆(或案例数据库):存放手头问题的事实——这位病人的化验结果、这位客户的计算机订单。
- 推理引擎:一个与领域无关的程序,判断哪些规则适用于当前事实并执行它们。换一个知识库,同一个引擎就能对另一个领域进行推理。
大多数系统还有一个解释机制,根据规则轨迹回答“你为什么问这个?”和“你是如何得出这个结论的?”;以及一个用于添加和编辑规则的知识获取界面。奠基性的教训来自斯坦福的 DENDRAL:性能主要来自大量具体的领域知识,而不是某种巧妙的通用推理方法。Edward Feigenbaum 把构建这类系统的工作称为知识工程 [16]。20 世纪 80 年代专家系统的兴衰全貌,见符号 AI 的历史。
2. 产生式系统与推理引擎
2.1 产生式系统
它是什么。产生式系统由一组条件—动作规则(产生式)、一个存放事实的工作记忆,以及一个反复触发条件得到满足的规则的解释器组成。这个术语来自逻辑学家 Emil Post:他在 1943 年提出的“产生式”是用于研究形式系统的字符串重写规则 [1]。Allen Newell 与 Herbert Simon 在《人类问题求解》(Human Problem Solving,1972 年)中把产生式系统用作人类问题求解的模型 [2],此后它成为基于规则的专家系统的标准架构。这条工作的心理学分支通向 Soar 和 ACT-R,见认知架构。
一条规则。产生式的左部是一组可以含变量的条件元素,右部是一组增加、删除或修改事实的动作:
局限。每条规则单独看都容易读懂;一千条规则合在一起会做什么,却不容易看懂。规则之间的相互作用、触发顺序和无声的冲突,是产生式系统中缺陷的主要来源。
2.2 匹配—选择—执行循环
解释器只运行一个循环,称为识别—执行循环。记 为规则集合, 为第 轮的工作记忆, 为把规则中的变量替换为常量的代换:
当冲突集 为空,或某条规则执行了停机动作时,循环结束。减去 (已经触发过的实例)称为不应性(refraction):同一条规则不会在同一组事实上触发两次。
| 轮次 | 冲突集 | 选中 | 工作记忆的变化 |
|---|---|---|---|
| 1 | (R1, {o/o7}),(R2, {o/o7}) | R2(3 个条件胜过 2 个) | + Need(o7, power-supply) |
| 2 | (R1, {o/o7});R2 因不应性被移除 | R1 | + Need(o7, cabinet) |
| 3 | 空 | 无 | 停机 |
2.3 冲突消解
当有多个实例同时匹配时,由冲突消解策略来选择。常见的成分有:不应性(不在同一组事实上重复触发)、新近性(优先使用最近加入的事实的实例,使系统专注于当前的思路)、特殊性(优先条件更多的规则,使例外能够覆盖一般规则),以及显式的优先级或 salience 数值。策略改变的是行为而不只是速度:规则相同而策略不同的两个引擎,可能得出不同的结论。这种敏感性正是大型规则库难以验证的原因之一。
2.4 OPS5
它是什么。OPS5(“Official Production System”)是 Charles Forgy 在卡内基梅隆大学开发的前向链接产生式规则语言,其用户手册于 1981 年 7 月作为技术报告 CMU-CS-81-135 发表 [3]。工作记忆元素是属性—值记录;规则用模式和变量测试它们;解释器使用 Forgy 的 Rete 匹配算法运行识别—执行循环。OPS5 提供两种冲突消解策略:LEX 按实例所用全部事实的新近程度排序;MEA(手段—目的分析)则优先考虑与规则第一个条件匹配的那个事实的新近程度,而第一个条件通常就是当前目标。
它的影响。OPS5 是 R1/XCON(§5.3)的实现语言——XCON 是第一个被广泛引用的商业专家系统成功案例——也是后来引擎的样板:CLIPS、Jess 和 Drools 那种基于 Rete 的前向链接设计都源自这一脉。局限。控制流隐含在冲突消解策略里,程序员只能用“目标”或“阶段”事实来编排顺序,程序因此难以阅读。
2.5 前向链接
前向链接(正向推理)是数据驱动的推理:从已知事实出发,触发所有条件成立的规则,加入结论,重复直到没有规则再增加新东西(或出现目标事实)。上面的匹配—选择—执行循环就是一次只选一条规则的前向链接。它适合数据先到、需要得出许多结论的问题:配置(XCON)、监控、事件处理、资格与定价规则。对于没有删除操作的纯 Horn 子句规则,无论触发顺序如何,前向链接都会到达唯一的不动点;证明和完整例子见什么是符号 AI? [21]。局限:它会推出一切可推出的东西,包括与问题无关的事实;只需要一个答案时,这是浪费。
2.6 后向链接
后向链接(反向推理)是目标驱动的:从一个假设出发,找出结论能确立它的规则,把这些规则的条件当作子目标,递归进行,直到每个子目标都是已知事实,或者是系统可以向用户提出的问题。MYCIN 就是这样工作的:为了决定治疗哪些微生物,它追求“微生物的身份”这一目标,凡是推不出来的条件都变成向医生提出的问题,而且只在相关时才问。Prolog 也是后向链接,配合归结与深度优先搜索(见逻辑程序设计与定理证明)。它适合诊断与分类:候选结论数量适中、而收集数据代价较高。局限:没有额外的记录,它可能在递归规则上陷入循环;除非缓存结果,它会重复推导共享的子目标。许多引擎(包括 Drools)两个方向都支持。
3. 快速匹配:Rete 算法
3.1 Rete 算法
它是什么。Rete(拉丁语“网”)是 Charles Forgy 为多模式 / 多对象匹配问题设计的算法:一轮又一轮地找出每条规则针对每个事实的全部实例。Forgy 在 1974 年的一份工作论文中首次描述它,在 1979 年卡内基梅隆大学的博士论文中加以发展,并于 1982 年在《Artificial Intelligence》期刊上发表了标准的论述 [4]。
它解决的问题。朴素的解释器每一轮都把每条规则的每个条件与全部工作记忆重新测试一遍。但一轮只改变少数几个事实,而且许多规则共享相同的条件。Rete 同时利用了这两种规律:
- 状态保存(时间冗余)。Rete 在各轮之间保存部分匹配。当一个事实被加入或删除时,只计算这一变化带来的后果;已经匹配过的东西不再重新匹配。
- 节点共享(结构相似)。所有规则被编译进同一个网络。出现在多条规则中的条件只测试一次;多条规则共同开头的连接只计算一次。
它如何运作。alpha 网络把单个事实与单个条件进行测试,通过的事实存入 alpha 存储。beta 网络是一串双输入的连接节点,把部分匹配与下一个条件结合起来,并检查共享变量是否一致;结果存入 beta 存储。到达某条规则终端节点的完整匹配进入冲突集。
以 §2.2 的两条规则为例。它们都以 开头。Rete 建立三个 alpha 存储和两个连接,其中第一个是共享的:
如果分别编译,这两条规则需要五次条件测试和三个连接;共享之后只需三次测试和两个连接。更大的节省来自增量计算。连接对并集满足分配律,因此当新事实 到来时,只需计算新增的那一部分:
加入 Has(o9, disk) 只会触及 ,并与已存储的 做一次连接;R1 根本不会被查看, 也不会被重新计算。
图 1. R1 和 R2 的 Rete 网络。共享连接 β1 只为两条规则计算一次;新的 Has(o, disk) 事实只流经 α3 和 β2。
今天在哪里使用。Rete 及其后继运行在 CLIPS、Jess 之中,也以 ReteOO 实现的形式运行在较早版本的 Drools 中;Forgy 后来还开发了商业化的后继算法。局限。Rete 用内存换时间:beta 存储可能变得很大,连接顺序不佳的规则(在选择性测试之前先做笛卡尔积)会让它们爆炸。删除事实与添加事实一样昂贵。它每一轮的代价取决于这一轮改变了多少,因此常被描述为基本不受规则数量影响;但如果每一轮都改变大部分工作记忆,它几乎得不到好处。
3.2 TREAT 与惰性匹配
Daniel Miranker 的 TREAT(1987 年)去掉了 beta 存储,按需重新计算连接,理由是在许多程序中,维护已存储的部分匹配的代价大于它节省的代价 [5]。同样的权衡推动了现代的“惰性”匹配器:Drools 自第 6 版起默认使用的 PHREAK 由其 Rete 实现演化而来,但会把连接工作推迟到规则真正可能触发时才做,因此那些并非所有连接都有数据的规则几乎不产生开销 [22]。
4. 不确定性下的推理
4.1 确定性因子(MYCIN)
它是什么。医学规则很少是确定的:一组发现只是“提示”某种微生物。Edward Shortliffe 与 Bruce Buchanan 的确定性因子模型(1975 年)为每条规则和每个结论附上一个 区间内的数:+1 表示肯定为真,−1 表示肯定为假,0 表示两边都没有证据 [6]。它由信任增量与不信任增量两个量定义:。
它如何运作。三条规则负责传播这些数值。
- 前提。若干条件的合取,其确定程度取决于最弱的那一个:前提的汇总值取各条件 CF 的最小值。MYCIN 只有在汇总值超过 0.2 时才认为前提成立,这是一个为剪枝搜索而设的实用阈值 [7]。
- 规则应用。强度为 的规则为其结论贡献 。
- 合并。对同一假设的两个贡献 与 按下式合并。这是 Bill van Melle 重新定义了异号情形之后,自 1977 年前后起 MYCIN 与所有 EMYCIN 系统使用的形式 [7]:
完整例子。两条规则分别以 0.6 和 0.4 支持同一假设:。支持度会增长,但永远不超过 1。异号情形修正的是一个真实的失败。按最初的定义,八九条支持规则可以把累积信任推到约 0.999,而一条 CF 为 0.8 的否定规则随后会留下 ,低于 0.2 的阈值:一条反面证据抹掉了其余所有证据。修订后的函数给出 ,而两个几乎相当的贡献仍会相互抵消: [7]。该函数满足交换律和结合律,因此证据可以按任意顺序、一条规则一条规则地并入。
局限。确定性因子不是概率。David Heckerman 在 1986 年证明,最初的定义与合并函数并不一致,而任何一致的概率解释都意味着大多数真实领域并不满足的条件独立假设,因此随着规则集变大,证据可能被重复计算 [8]。这个模型保留在外壳和教科书中;在新系统里,它已被贝叶斯网络等概率模型取代。
4.2 主观贝叶斯推理(PROSPECTOR)
PROSPECTOR 走的是概率路线。Richard Duda、Peter Hart 与 Nils Nilsson 的主观贝叶斯方法(1976 年)为每条规则 设定两个由专家给出的数:充分性因子 与必要性因子 ,并用赔率形式的贝叶斯公式更新假设的赔率 [9]:
为 10,意味着观察到该证据会把赔率乘以十。当证据本身不确定时,PROSPECTOR 在两种更新之间插值。它与确定性因子模型有同样的弱点:串联许多规则时,赔率被相乘,就好像各条证据彼此独立。
5. 经典专家系统
5.1 DENDRAL
DENDRAL 于 1965 年由 Edward Feigenbaum、Joshua Lederberg、Bruce Buchanan 与化学家 Carl Djerassi 在斯坦福开始研制,它根据质谱数据推断有机分子的结构,通常被称为第一个专家系统 [10]。它的工作方式是规划—生成—测试:规划器用化学知识从质谱中推出约束,生成器只枚举满足这些约束的分子图,测试器预测每个候选的质谱并按吻合程度排序。它的姊妹系统 Meta-DENDRAL 从已知分子的质谱中学习新的裂解规则,是机器学习产出可读规则的早期案例。DENDRAL 的教训——性能在于具体知识——塑造了此后的一切。
5.2 MYCIN
MYCIN 于 20 世纪 70 年代初在斯坦福开发,是 Edward Shortliffe 的博士研究,由 Bruce Buchanan、Stanley Cohen 等人参与指导,用 Lisp 编写 [11]。它识别引起菌血症、脑膜炎等严重感染的细菌并推荐抗生素,使用约 600 条带确定性因子的后向链接规则。一条典型的规则是:如果该微生物的染色为革兰氏阴性,形态为杆状,需氧性为厌氧,那么有提示性证据(0.6)表明该微生物是拟杆菌。在 1979 年发表的一项针对十例脑膜炎病例的盲法评估中,专家认为 MYCIN 的治疗方案在 65% 的病例中可以接受,而五位教员的比例为 42.5% 到 62.5% [12]。它从未用于临床:会诊需要在当时临床流程之外的终端上逐一键入对其问题的回答,而且责任问题也没有解决。它的影响来自 EMYCIN、TEIRESIAS 及其解释机制(§6)。
5.3 XCON(R1)
R1,在数字设备公司(DEC)内部称为 XCON,由卡内基梅隆大学的 John McDermott 用 OPS5 编写成产生式系统,用来配置 VAX-11/780 计算机订单:给定客户的订单,它推断缺少什么部件、各部件应如何布置。它于 1980 年在 DEC 位于新罕布什尔州塞勒姆的工厂投入使用 [13]。McDermott 1982 年的论文描述了 772 条规则;随着 DEC 产品线的扩张,规则库在整个 80 年代持续增长,按当时的估计,这个系统每年为 DEC 节省数千万美元 [14]。R1 是前向链接最自然的形态:订单作为数据到来,随着部分配置的形成,规则相继变得可用并触发。它也是维护成本的教科书案例:DEC 的产品线不断变化,保持规则库一致需要一支常设的知识工程师团队。
5.4 PROSPECTOR
PROSPECTOR 由 Richard Duda、Peter Hart 等人于 20 世纪 70 年代末在 SRI International 构建,用于评估矿产勘探地点:它把地质学家的矿床模型表示为推理网络,并使用 §4.2 的主观贝叶斯更新。1982 年,它成为第一个有报道的由计算机程序找到此前未知矿体的案例:给定华盛顿州 Mount Tolman 的钻探前勘探数据和一位斑岩钼矿专家提供的规则,它确定了一处矿石品位矿化的位置,后经钻探证实 [15]。
6. 外壳、知识工程与解释
6.1 专家系统外壳
外壳(shell)就是拿掉了领域知识的专家系统:推理引擎、规则语言、解释机制和编辑工具都在,等待为新领域填入规则。
- EMYCIN(“空 MYCIN”)由斯坦福的 William van Melle 于 1979 年完成,通常被称为第一个外壳:它是 MYCIN 与领域无关的内核,包括后向链接、确定性因子、解释机制和知识获取程序 [17]。它被用来构建多个医学领域的咨询系统,例如用于肺功能检查的 PUFF,也用于工程领域,例如用于结构分析的 SACON。
- CLIPS(C Language Integrated Production System)于 1985 年春在 NASA 约翰逊航天中心做出原型,原因是基于 Lisp 的工具不适合 NASA 的业务计算机;3.0 版于 1986 年 7 月发布 [18]。它是一个用可移植 C 语言写成、基于 Rete 的前向链接引擎,属于公有领域,至今仍在维护。
- Jess 来自桑迪亚国家实验室,在 20 世纪 90 年代把类似 CLIPS 的规则语言带到了 Java,并影响了其后的 Java 规则引擎。
80 年代的市场以“专家可以自己写规则”为卖点销售外壳。实际上,难点在知识,而不在引擎。
6.2 知识工程
知识工程是获取、组织、编码和维护专家知识的学科。Feigenbaum 在其 1977 年 IJCAI 论文的标题中使用了这个术语,并从 DENDRAL 和 MYCIN 中总结了这一领域的经验 [16];《构建专家系统》(Building Expert Systems,Hayes-Roth、Waterman 与 Lenat,1983 年)把这个过程规范化 [19]:识别问题、把关键概念概念化、形式化、实现,并与专家一起测试,循环往复。获取知识的技术包括结构化访谈、出声思维的口语报告分析和凯利方格(repertory grid)。后来的方法论如 CommonKADS(2000 年)从提取规则转向为任务和领域建立显式模型 [20]。Randall Davis 的 TEIRESIAS(1976 年)是一个早期工具,它帮助专家调试 MYCIN 的规则:把一个错误结论追溯到导致它的那条规则 [7]。
6.3 知识获取瓶颈
专家系统的决定性成本在于把知识装进去。Feigenbaum 在 1977 年指出这是关键瓶颈 [16]。专家往往说不出自己遵循的规则;他们说的和做的并不一致;从不同专家那里获取的规则相互冲突;而知识本身不断变化,就像 XCON 的产品目录那样。每条新规则都可能与每条旧规则相互作用,所以维护成本的增长快于规则库的增长。这个瓶颈是 80 年代热潮结束的重要原因,也是从数据中获取知识的机器学习得以接棒的主要原因。
6.4 解释机制
由于结论来自规则的触发,专家系统可以精确地解释自己。MYCIN 能回答 WHY(为什么问这个问题?因为它是正在尝试的那条规则的一个条件,而这条规则服务于这个目标)和 HOW(你是如何得出这个结论的?通过这些规则,从这些事实)。解释就是推理轨迹本身,而不是事后的合理化,这正是支柱页面所说的忠实解释。它的局限在于:它解释的是规则,而不能说明规则本身是否正确。
7. 今天的专家系统:业务规则引擎
7.1 业务规则引擎
专家系统从未消失,只是换了名字。业务规则引擎是一种产生式系统,用来把决策逻辑(定价、资格审核、核保、欺诈筛查、理赔处理、税务与合规规则)放在应用代码之外,让分析人员能够阅读和修改。
- Drools 由 Bob McWhirter 和 Mark Proctor 创建,是一个开源的 Java 业务规则管理系统,支持前向与后向链接,使用源自 Rete 的引擎(PHREAK)和自己的规则语言 DRL。它在 KIE 社区中开发,该社区于 2023 年 1 月进入 Apache 孵化器;Red Hat 提供其商业版本 [22]。
- 商业决策管理产品,例如 IBM Operational Decision Manager(源自 ILOG JRules),在银行和保险公司中承担同样的角色。
- 决策表与 DMN。如今许多规则集用对象管理组织(OMG)的决策模型与标记法(DMN)标准中的决策表来编写,Drools 等引擎可以直接执行。
- CLIPS 仍在研究、教学和嵌入式系统中使用。
改变的是抱负。今天的规则引擎并不声称捕获了专业知识,它们执行的是成文的政策。这恰好是产生式规则擅长的工作:政策是显式的、可审计的、可修改的,每一个决定都能引用做出它的那条规则。
8. 时间线
| 年份 | 技术或系统 | 人物 | 贡献 |
|---|---|---|---|
| 1943 | Post 产生式 | Emil Post | 把重写规则作为形式系统;“产生式”一词的来源 |
| 1965 | DENDRAL | Feigenbaum、Lederberg、Buchanan、Djerassi | 第一个专家系统;知识胜于搜索 |
| 1972 | 《人类问题求解》 | Newell、Simon | 把产生式系统作为认知模型 |
| 1974 | Rete(工作论文) | Charles Forgy | 网络匹配;1982 年完整发表 |
| 20 世纪 70 年代初 | MYCIN | Shortliffe、Buchanan、Cohen | 后向链接、解释机制、确定性因子 |
| 1975 | 确定性因子模型 | Shortliffe、Buchanan | 处理非精确规则的单数值演算 |
| 1976 | 主观贝叶斯方法 | Duda、Hart、Nilsson | 用 LS 与 LN 更新赔率;用于 PROSPECTOR |
| 1976 | TEIRESIAS | Randall Davis | 交互式知识获取与规则调试 |
| 1977 | 知识工程 | Edward Feigenbaum | 为这门学科命名;指出获取瓶颈 |
| 约 1977 | 修订的 CF 合并函数 | William van Melle | 异号公式;被所有 EMYCIN 系统采用 |
| 1979 | EMYCIN | William van Melle | 第一个专家系统外壳 |
| 1980 | R1/XCON 投入使用 | John McDermott,DEC | 第一个被广泛引用的商业成功;OPS5 中的前向链接 |
| 1981 | OPS5 手册 | Charles Forgy | 标志性的产生式规则语言;LEX 与 MEA 策略 |
| 1982 | PROSPECTOR 在 Mount Tolman 找到矿体 | Campbell、Hollister、Duda、Hart | 第一个有报道的由程序定位未知矿床的案例 |
| 1983 | 《构建专家系统》 | Hayes-Roth、Waterman、Lenat | 知识工程流程的规范化 |
| 1985—86 | CLIPS | NASA 约翰逊航天中心 | 可移植的 C 语言规则引擎;1986 年首次发布 |
| 1986 | 对 CF 的概率分析 | David Heckerman | 揭示 CF 隐含的独立性假设 |
| 1987 | TREAT | Daniel Miranker | 不使用 beta 存储的匹配 |
| 2000 | CommonKADS | Schreiber 等 | 基于模型的知识工程 |
| 2010 年代至今 | Drools、PHREAK、DMN | KIE 社区、Red Hat、OMG | 产生式规则成为业务规则基础设施 |
9. 专家系统在哪里失效
- 脆弱性。稍稍超出规则范围的案例,要么得不到答案,要么得到一个自信的错误答案,而且系统不会提示这已超出它的能力范围。
- 知识获取瓶颈(§6.3):知识的提取代价高昂,保持其更新的代价更高。
- 规则相互作用。行为取决于规则如何组合以及冲突消解策略,因此验证一个大型规则库很难。
- 临时拼凑的不确定性处理。确定性因子会重复计算相关的证据(§4.1)。
- 没有常识,也没有感知。输入必须由人或另一个系统以符号的形式提供。
这些是符号 AI 的一般局限表现得最尖锐的地方。长处则是同一设计的另一面:在规则范围内精确、解释就是真实的计算过程、改一条规则行为就随之改变。
10. 专家系统与失效安全模型
失效安全模型是这样一种 AI 模型:它的失败会把它带向一个受控的安全状态——证据缺失时它会弃权,学习可以缩小它所做的事,却永远不能扩大它被允许做的事。专家系统同时展示了这个问题的两面。好的一面是:只有当一条由具名规则组成的链产生了某个结论时,这个结论才存在,因此“没有规则触发”是一种干净、可检查的弃权,而每个答案都能引用它的理由。不好的一面是:规则本身没有任何关口——知识工程师敲进去的东西就成了权威,而像确定性因子这样临时拼凑的数值,可以把一个结论推过一个没有任何独立机制检查的阈值。
失效安全的设计保留了第一种性质,并补上缺失的关口。提议——无论来自人、规则学习程序还是语言模型——在符号层依据来源接纳它们之前都不算知识:模型可以提议;只有底层(floor)才能接纳事实。Perslis Research 的 Peel 正是按这一原则构建的,据我们所知,它是第一个失效安全模型;确切的表述和最接近的已有工作见什么是失效安全模型?在做决定的环路中没有神经网络,它的知识是有类型、有来源的卡片而不是孤立的规则,它的学习是可读的计数。Peel 是一个研究原型。它继承了专家系统的可解释性,但并不声称解决了它的脆弱性:在已接纳的知识之外,它的回答是“未知”。关于 Perslis 更广泛地如何使用符号层,见Perslis 的符号 AI,以及论文 The Orchestration Gap。
11. 常见问题
- 什么是专家系统?
- 专家系统是一种在狭窄专业领域内解决问题的程序,它通过通用的推理引擎,运用从人类专家那里获取的规则。它把知识库与推理过程分开,并能列出产生某个结论的规则与事实来解释这个结论。
- 专家系统由哪些主要部分组成?
- 由关于领域的规则知识库、存放当前案例事实的工作记忆,以及把规则与事实匹配并触发规则的推理引擎组成。大多数系统还有回答“为什么”和“如何”问题的解释机制,以及添加和编辑规则的工具。
- 前向链接和后向链接有什么区别?
- 前向链接是数据驱动的:从已知事实出发,触发所有条件成立的规则,直到无法再增加新事实。后向链接是目标驱动的:从一个假设出发,沿着能证明它的规则倒推,把这些规则的条件变成子目标。XCON 使用前向链接,MYCIN 使用后向链接。
- 什么是 Rete 算法?
- Rete 是一种用于产生式系统的模式匹配算法,由卡内基梅隆大学的 Charles Forgy 提出,于 1982 年发表。它把规则编译成一个网络,共享多条规则共有的测试,并在各轮之间保存部分匹配,因此工作记忆的每次变化都被增量处理,而不必把每条规则与每个事实重新匹配一遍。
- MYCIN 的确定性因子是如何工作的?
- 每条规则和每个结论都带有一个介于 -1 与 1 之间的确定性因子。一条规则的贡献等于它自身的因子乘以其条件中最弱的那一个。两个正贡献 X 与 Y 按 X + Y(1 - X) 合并,两个负贡献按 X + Y(1 + X) 合并,异号的贡献按 (X + Y) / (1 - min(|X|, |Y|)) 合并。
- 第一个专家系统是什么?
- DENDRAL 通常被称为第一个专家系统,它于 1965 年由 Edward Feigenbaum、Joshua Lederberg、Bruce Buchanan 和 Carl Djerassi 在斯坦福开始研制,根据质谱数据推断有机分子的结构。随后出现了 MYCIN、R1/XCON 和 PROSPECTOR。
- 专家系统为什么衰落?
- 知识必须从专家那里获取并由人手工写成规则,既慢又贵;而随着世界变化,大型规则库很难保持一致。这些系统在规则之外很脆弱,专用 Lisp 硬件的市场在 1987 年崩溃,而机器学习提供了从数据中获取知识的另一条路。
- 专家系统今天还在使用吗?
- 在使用,主要以业务规则引擎的名义。Drools、IBM Operational Decision Manager 和 CLIPS 等产生式规则引擎在银行、保险公司和政府部门中运行定价、资格审核、核保、欺诈与合规规则,所用的匹配算法往往源自 Rete。
12. 参考文献
- E. L. Post. Formal Reductions of the General Combinatorial Decision Problem. American Journal of Mathematics 65(2):197–215, 1943.
- A. Newell, H. A. Simon. Human Problem Solving. Prentice-Hall, 1972.
- C. L. Forgy. OPS5 User’s Manual. Technical Report CMU-CS-81-135, Carnegie Mellon University, July 1981.
- C. L. Forgy. Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem. Artificial Intelligence 19(1):17–37, 1982.(此前:On the Efficient Implementation of Production Systems,博士论文,卡内基梅隆大学,1979 年。)
- D. P. Miranker. TREAT: A Better Match Algorithm for AI Production Systems. Proceedings of AAAI-87, 1987.
- E. H. Shortliffe, B. G. Buchanan. A Model of Inexact Reasoning in Medicine. Mathematical Biosciences 23:351–379, 1975.
- B. G. Buchanan, E. H. Shortliffe (eds.). Rule-Based Expert Systems: The MYCIN Experiments of the Stanford Heuristic Programming Project. Addison-Wesley, 1984. 第 10 章“Uncertainty and Evidential Support”给出了修订后的合并函数。
- D. Heckerman. Probabilistic Interpretations for MYCIN’s Certainty Factors. In L. N. Kanal, J. F. Lemmer (eds.), Uncertainty in Artificial Intelligence. North-Holland, 1986. arXiv:1304.3419
- R. O. Duda, P. E. Hart, N. J. Nilsson. Subjective Bayesian Methods for Rule-Based Inference Systems. Proceedings of the AFIPS National Computer Conference 45, 1976.
- R. K. Lindsay, B. G. Buchanan, E. A. Feigenbaum, J. Lederberg. DENDRAL: A Case Study of the First Expert System for Scientific Hypothesis Formation. Artificial Intelligence 61(2), 1993.
- E. H. Shortliffe. Computer-Based Medical Consultations: MYCIN. Elsevier, 1976.
- V. L. Yu et al. Antimicrobial Selection by a Computer: A Blinded Evaluation by Infectious Diseases Experts. JAMA 242(12):1279–1282, 1979.
- J. McDermott. R1: A Rule-Based Configurer of Computer Systems. Artificial Intelligence 19(1):39–88, 1982.
- V. E. Barker, D. E. O’Connor, J. Bachant, E. Soloway. Expert Systems for Configuration at Digital: XCON and Beyond. Communications of the ACM 32(3):298–318, 1989. doi:10.1145/62065.62067
- A. N. Campbell, V. F. Hollister, R. O. Duda, P. E. Hart. Recognition of a Hidden Mineral Deposit by an Artificial Intelligence Program. Science 217(4563):927–929, 1982. doi:10.1126/science.217.4563.927
- E. A. Feigenbaum. The Art of Artificial Intelligence: Themes and Case Studies of Knowledge Engineering. Proceedings of IJCAI-77, 1977.
- W. van Melle. A Domain-Independent Production-Rule System for Consultation Programs. Proceedings of IJCAI-79, 1979.
- G. Riley. About CLIPS. clipsrules.net. https://www.clipsrules.net/AboutCLIPS.html
- F. Hayes-Roth, D. A. Waterman, D. B. Lenat (eds.). Building Expert Systems. Addison-Wesley, 1983.
- G. Schreiber, H. Akkermans, A. Anjewierden, R. de Hoog, N. Shadbolt, W. Van de Velde, B. Wielinga. Knowledge Engineering and Management: The CommonKADS Methodology. MIT Press, 2000.
- S. Russell, P. Norvig. Artificial Intelligence: A Modern Approach, 4th ed. Pearson, 2020.
- KIE Community. Drools 6 Performance with the PHREAK Algorithm. blog.kie.org, February 2014. https://blog.kie.org/2014/02/drools-6-performance-with-the-phreak-algorithm.html