先讲一个场景。2011年美国著名的智力竞赛节目《危险边缘》。两位人类冠军选手肯·詹宁斯和布拉德·鲁特坐在台上。他们旁边是一台叫做 Watson 的计算机。主持人念出题目“这位美国总统在任期间美国经历了最长的经济扩张期。”Watson 的答案灯亮了。“克林顿。”正确。比赛结束Watson 以压倒性的优势获胜。肯·詹宁斯在答题纸上写道“我代表人类欢迎我们的计算机霸主。”Watson 是怎么做到的它没有真正理解问题。它做的是推理。从海量的知识库里用推理规则一步一步找到答案。这就是推理规则在人工智能中的应用。人工智能需要推理人工智能从诞生的第一天起就面临一个核心问题机器能思考吗1950年图灵提出了著名的图灵测试。如果一台机器能在对话中让人分不清它是人还是机器那么这台机器就可以被认为是会思考的。但思考是什么思考在很大程度上就是推理。从已知的信息推导出未知的结论。从观察到的现象推断出背后的原因。从给定的规则推算出具体的结果。这些都是推理。而推理规则正是把这种能力赋予机器的工具。第一个应用专家系统什么是专家系统1970年代人工智能研究者有一个想法能不能把专家的知识装进计算机医生的诊断经验律师的法律知识工程师的设计规则。把这些知识用逻辑规则的形式存储起来。然后让计算机用推理规则模拟专家的思维过程。这就是专家系统。专家系统的结构专家系统有两个核心部分。知识库存储规则。规则1如果发烧 AND 咳嗽 AND 流鼻涕那么可能是感冒。 规则2如果发烧 AND 咳嗽 AND 胸痛那么可能是肺炎。 规则3如果是感冒那么建议多休息多喝水。 规则4如果是肺炎那么建议立即就医。推理引擎运用推理规则。推理引擎拿到用户的症状在知识库里用假言推理一条一条匹配规则得出诊断结论。一个具体的例子病人来了说“我发烧咳嗽而且胸口很痛。”推理引擎开始工作已知事实 发烧 真 咳嗽 真 胸痛 真 第一步匹配规则2 规则2发烧 ∧ 咳嗽 ∧ 胸痛 → 可能是肺炎 前提发烧真∧ 咳嗽真∧ 胸痛真 真 用假言推理得出可能是肺炎 第二步匹配规则4 规则4肺炎 → 建议立即就医 前提肺炎真 用假言推理得出建议立即就医 最终结论建议立即就医。每一步都是假言推理。每一步都有规则支撑。这就是专家系统的工作原理。历史上著名的专家系统MYCIN1970年代斯坦福大学用于诊断血液感染疾病。知识库里有600多条规则。诊断准确率达到了69%。而当时的医学专家平均准确率是80%。差距不大但已经令人震惊。一台机器能做到接近专家水平的医学诊断。DENDRAL1960年代斯坦福大学用于分析化学分子结构。它的推理能力甚至超过了很多化学家。第二个应用逻辑编程Prolog 语言1972年法国科学家阿兰·科尔默劳尔发明了一种编程语言。叫做 Prolog。Prolog是 Programming in Logic 的缩写。用逻辑编程。这种语言和普通编程语言完全不同。普通编程语言你告诉计算机怎么做。Prolog你告诉计算机是什么。然后Prolog 自己用推理规则找到答案。Prolog 的例子% 定义事实 父亲(张三, 张小明). % 张三是张小明的父亲 父亲(张三, 张小红). % 张三是张小红的父亲 父亲(李四, 李小强). % 李四是李小强的父亲 % 定义规则 兄弟(X, Y) :- % X和Y是兄弟如果 父亲(Z, X), % Z是X的父亲 父亲(Z, Y), % Z也是Y的父亲 X \ Y. % 且X和Y不是同一个人 % 查询 ?- 兄弟(张小明, 张小红). % 回答trueProlog 在背后用的就是推理规则。它拿到查询在事实库里用假言推理一步一步找到答案。这个过程叫做归结推理。归结推理归结推理是逻辑编程的核心。它的基本思想是反证法。想证明结论 Q 是真的先假设 Q 是假的然后和已知的事实、规则一起推导如果推出了矛盾说明假设错误Q 是真的。想证明张小明和张小红是兄弟 假设张小明和张小红不是兄弟 已知规则 如果有共同父亲且不是同一人就是兄弟 已知事实 张三是张小明的父亲 张三是张小红的父亲 张小明 ≠ 张小红 从事实出发 张三是张小明的父亲 ✓ 张三是张小红的父亲 ✓ 张小明 ≠ 张小红 ✓ → 张小明和张小红是兄弟 这和假设矛盾 所以假设错误张小明和张小红是兄弟。第三个应用知识图谱什么是知识图谱2012年谷歌发布了知识图谱。知识图谱是一个巨大的知识网络。里面存储了数十亿个实体和它们之间的关系。实体北京、中国、天安门、故宫、明朝... 关系北京 是 中国的首都 天安门 位于 北京 故宫 建于 明朝 ...当你在谷歌搜索北京有什么著名景点谷歌不只是搜索网页它在知识图谱里用推理规则找到答案。知识图谱中的推理知识图谱里有一种重要的推理叫链式推理。就是假言三段论的应用。已知 A 是 B 的父亲 B 是 C 的父亲 推理规则 如果 X 是 Y 的父亲Y 是 Z 的父亲 那么 X 是 Z 的祖父。 推出 A 是 C 的祖父这个推理在知识图谱里可以无限延伸。已知 李白 是 唐朝诗人 唐朝 属于 中国历史 中国历史 是 中华文明的一部分 推出 李白 是 中华文明的一部分谷歌、百度的知识图谱每天都在做数十亿次这样的推理。本体推理知识图谱里还有一种推理叫本体推理。本体是对概念和关系的形式化描述。本体规则 所有的猫都是哺乳动物。 所有的哺乳动物都是动物。 所有的动物都是生物。 已知 咪咪 是 猫。 推出 咪咪 是 哺乳动物。假言推理 咪咪 是 动物。假言三段论 咪咪 是 生物。假言三段论这种推理让知识图谱能够自动发现那些没有被明确写出来的知识。第四个应用自动定理证明机器能证明数学定理吗1976年数学界发生了一件大事。四色定理被证明了。四色定理说任何地图只需要四种颜色就能让相邻区域颜色不同。这个定理数学家们研究了一百多年。最终的证明用了计算机。计算机检验了1936种特殊情况每种情况都用推理规则验证。这是历史上第一个用计算机辅助证明的重大数学定理。自动定理证明的原理自动定理证明用的是归结原理。把要证明的定理转化成逻辑公式。然后用推理规则一步一步推导出矛盾或者结论。想证明如果 n 是偶数那么 n² 是偶数。 转化为逻辑公式 ∀n偶数(n) → 偶数(n²) 用归结推理 假设存在 nn 是偶数但 n² 不是偶数。 因为 n 是偶数n 2k某个整数k n² (2k)² 4k² 2(2k²) 2(2k²) 是偶数。 矛盾 所以原命题成立。现代自动定理证明工具Coq法国国家信息与自动化研究所一个交互式定理证明系统。数学家用它证明了四色定理的完整形式化版本。还证明了编译器的正确性。Lean微软研究院一个现代定理证明系统。数学家们正在用它把整个数学形式化地重新证明一遍。这个项目叫做数学图书馆Mathlib。第五个应用机器学习中的规则提取机器学习和推理的结合现代机器学习特别是深度学习能从数据中学习模式。但它有一个问题黑盒。你不知道它为什么做出这个决定。这在很多场景里是不可接受的。医疗诊断你需要知道为什么。法律判决你需要知道为什么。金融风控你需要知道为什么。于是研究者们把机器学习和推理规则结合起来。让机器学习从数据中提取规则。然后用这些规则做可解释的推理。决策树可解释的推理决策树是最简单的例子。年龄 30 / \ 是 否 / \ 收入 5万 学历 本科 / \ / \ 是 否 是 否 / \ / \ 批准贷款 拒绝 批准贷款 拒绝每一个节点都是一个判断。从根节点到叶节点就是一条推理链。已知年龄35岁收入6万。 推理过程 年龄35 30是。→ 走左边 收入6万 5万是。→ 走左边 结论批准贷款。这就是假言三段论在机器学习里的应用。神经符号人工智能最前沿的研究叫做神经符号人工智能。把神经网络感知和符号推理思考结合起来。神经网络负责从原始数据中提取特征。符号推理负责用推理规则做逻辑推断。例子看图回答问题 输入一张图片图片里有一只红色的大球和一个蓝色的小方块。 问题红色的球比蓝色的方块大吗 神经网络 识别出红色球大小大 识别出蓝色方块大小小 符号推理 规则如果 A 的大小是大B 的大小是小那么 A 比 B 大。 已知红色球大小大蓝色方块大小小 推出红色球比蓝色方块大。 回答是的。这种结合让人工智能既能感知又能推理。第六个应用自然语言处理中的推理文本蕴含自然语言处理里有一个任务叫文本蕴含。给你两段文字判断第一段是否蕴含第二段。文字1张三是一名医生他每天在医院工作。 文字2张三有工作。 问题文字1蕴含文字2吗 推理 张三是医生已知 医生是一种职业常识 有职业的人有工作规则 → 张三有工作结论 答案是的文字1蕴含文字2。这背后用的是假言三段论。问答系统Watson 在《危险边缘》里的表现就是问答系统的典型应用。问题这位美国总统在任期间美国经历了最长的经济扩张期。 推理过程 步骤1识别问题类型 → 问的是美国总统 步骤2提取关键信息 → 最长的经济扩张期 步骤3在知识库里搜索 → 找到克林顿执政期间美国经历了1991-2001年的经济扩张 步骤4验证 → 这是美国历史上最长的经济扩张期吗是的。 步骤5得出结论 → 克林顿每一步都是推理。每一步都有规则支撑。第七个应用规划和决策自动规划机器人要从 A 点走到 B 点。中间有障碍物。怎么规划路径这是一个推理问题。已知 当前位置A 目标位置B 障碍物C、D 规则 如果当前位置是 XX 的右边是 YY 没有障碍物 那么可以移动到 Y。 推理 当前在 AA 的右边是 EE 没有障碍物 → 可以移动到 E 在 EE 的右边是 FF 没有障碍物 → 可以移动到 F 在 FF 的右边是 B → 到达目标 路径A → E → F → B这是假言三段论反复应用的结果。博弈推理下棋也是推理。已知当前棋局状态 规则如果走这一步对手可能走那一步 推理哪一步能让我最终获胜AlphaGo 下围棋不只是用神经网络评估局面还用了大量的推理来搜索最优的走法。推理规则的局限性说了这么多应用也要说说局限性。知识获取瓶颈专家系统最大的问题是知识获取。把专家的知识转化成规则非常困难。专家自己很多时候说不清楚自己是怎么想的。这叫做知识获取瓶颈。不确定性现实世界充满了不确定性。“如果发烧可能是感冒”这是概率不是必然。纯粹的逻辑推理处理不了概率。于是研究者们发展出了概率推理。把推理规则和概率论结合起来。开放世界假设逻辑推理通常假设知识库里没有的就是假的。这叫封闭世界假设。但现实世界是开放的。知识库里没有的可能只是我们不知道不代表是假的。这是推理规则在现实应用中面临的挑战。最后说一句从1950年图灵提出图灵测试到1970年代的专家系统到1980年代的逻辑编程到2000年代的知识图谱到今天的神经符号人工智能。人工智能的发展从来没有离开过推理规则。即使是今天最强大的大语言模型ChatGPTGPT-4在它们的背后也有推理的影子。研究者们正在努力让这些模型不只是记住知识而是真正地会推理。假言推理让机器能从原因推结果。拒取式让机器能从结果排除原因。假言三段论让机器能做链式推理。归谬法让机器能证明定理。这些两千多年前亚里士多德就发现了。今天它们成了人工智能的基石。人类最古老的思维工具正在驱动最现代的智能机器。这是一件很美妙的事情。