推理机
| 推理机 | |
|---|---|
| 上级分类 | program |
| 所属实体 | 知識庫系統 |
| 表现概念 | forward chaining、backward chaining、推论 |
推理机(英語:inference engine)是人工智能系统中的一个软件组件,负责将逻辑规则应用于知识库以推导出新的信息。最早的推理机是专家系统的组成部分,典型的专家系统由知识库和推理机构成:知识库存储关于世界的事实,推理机则将逻辑规则应用于知识库并推导出新知识,每一条新事实都可能触发更多规则,形成迭代过程。推理机主要采用两种工作模式:正向推理(forward chaining)和反向推理(backward chaining)。正向推理从已知事实出发断言新事实;反向推理则从目标出发反向推导,确定需要断言哪些事实才能达成目标。[1]
此外,推理的概念已扩展至经过训练的人工神经网络生成预测或决策的过程。在此背景下,推理机也可指执行这些操作的特定系统部分(甚至硬件)。此类推理在图像识别、自然语言处理和自动驾驶等应用中发挥着关键作用,其特征是数据输入量大且需要实时处理。
架构
[编辑]推理机所使用的逻辑通常表示为IF-THEN规则(即逻辑学中的假言推理,modus ponens)。在专家系统和推理机出现之前,人工智能研究者主要关注更强大的定理证明器环境,这些环境实现了完整的一阶逻辑(包含全称量化和存在量化)。然而,研究者发现这种强大的证明能力也是其缺点:全称量化常对无穷集合做出陈述,在计算机上执行时可能导致无限循环。专注于IF-THEN规则仍为开发者提供了一种非常强大且计算高效的通用逻辑表示机制,并且有心理学研究表明人类在存储复杂知识时也倾向于使用IF-THEN表示。[2]
一个经典的假言推理例子是“如果你是人,那么你终有一死”,可表示为伪代码:Rule1: Human(x) => Mortal(x)。在正向推理中,推理机在知识库中查找匹配Human(x)的事实,为每个匹配添加Mortal(x);例如发现“苏格拉底是人”,则推导出“苏格拉底终有一死”。在反向推理中,系统给定目标(如“苏格拉底是否终有一死”),搜索知识库确认苏格拉底是否为人。若尚不知晓,推理机可弹出窗口向用户提问“苏格拉底是人吗?”,并将回答纳入推理。[3]这种解释能力使系统能够向用户实时展示推理链条,说明为何需要某个信息。
推理机通过三个步骤循环运行:匹配规则 → 选择规则 → 执行规则。第一步找出所有当前知识库内容触发的规则;第二步对匹配的规则进行优先级排序;第三步按序执行规则,然后将新事实或新目标加入知识库,重复循环直至无新规则可匹配。[4]
推理策略
[编辑]正向推理从已有事实出发,正向运用规则。当规则的条件部分与已有事实匹配时,将该规则放入候选队列,通过冲突消解选择一条启用规则进行推理,并将其结论存入数据库作为下一步的证据。重复此过程直至再无可用规则或求得所需解。
反向推理(目标驱动)首先提出某个假设,然后寻找支持该假设的证据。若所需证据都能找到,说明原假设正确;若无论如何都找不到所需证据,则说明原假设不成立,需要另做新的假设。
双向推理则是正向推理与反向推理同时进行,在推理过程中的某一步骤上“碰头”的一种推理方式。
在效率方面,Rete算法是一种广泛使用的模式匹配算法,能够高效地确定哪些规则被当前事实所触发,特别适用于规则数量较大的正向推理系统。[1]
实现
[编辑]早期的推理机主要专注于正向推理,通常以Lisp编程语言实现。Lisp因其强大的符号处理能力成为早期AI研究的常用平台。当时的常见做法是将某个专家系统所使用的推理机重新封装为可复用工具供其他研究者使用。例如,MYCIN是早期的医学诊断专家系统,从中提取的EMYCIN推理机可供其他研究者使用。[1]
随着专家系统从研究原型走向实际部署,速度和鲁棒性成为关注重点。最早且最流行的正向推理引擎之一是OPS5,它使用Rete算法优化规则触发的效率。另一种广泛采用的技术是Prolog逻辑编程语言,它专注于反向推理,并有多种商业版本进行效率和鲁棒性优化。[5]
在开源领域,CLIPS(C语言集成产生式系统)是一个广泛使用的正向推理引擎,此外还有RefPerSys等系统。[6]
参考文献
[编辑]- ^ 1.0 1.1 1.2 Hayes-Roth, F.; Waterman, D.; Lenat, D. Building Expert Systems. Addison-Wesley. 1983. ISBN 0-201-10686-8 (英语).
- ^ Feigenbaum, E.; Barr, A. The Handbook of Artificial Intelligence, Volume I. Addison-Wesley. 1986: 195. ISBN 0201118114 (英语).
- ^ Barzilay, R.; et al. A New Approach to Expert System Explanations. USAF Rome Laboratory Report. ADA457707 (英语).
- ^ Griffin, N. L.; Lewis, F. D. A rule-based inference engine which is optimal and VLSI implementable. IEEE International Workshop on Tools for Artificial Intelligence: 246–251. 1989. doi:10.1109/TAI.1989.65327 (英语).
- ^ Sterling, L.; Shapiro, E. The Art of Prolog. MIT Press. 1986. ISBN 0-262-19250-0 (英语).
- ^ Pitrat, J. Artificial Beings, the conscience of a conscious machine. Wiley. 2009. ISBN 978-1848211018 (英语).