这本书或许应该和作者的上一本书Building Problem Solvers结合起来阅读. 以下的翻译中大量使用了机器翻译, 因为我想本书的内容适合于使用机器翻译. 换言之, 文字太多, 令我有些不耐烦了.
人类认知的奥秘之一是我们轻松推理世界的能力. 我们拥有关于物理世界的强大且日常性的心理模型, 这些模型帮助我们烹饪, 导航, 并建造人工制品, 使我们能够构建环境, 以便更好地发挥功能. 我们有社会世界的模型, 帮助我们与其他人 (和其他动物) 建立关系. 我们有自我模型, 帮助我们决定何时在任务上投入更多努力, 或何时转换方向做其他事情. 所有这些模型有一个共同的关注点: 它们需要处理连续的属性和现象. 在日常物理推理中, 我们必须思考压力, 温度和质量等量. 我们利用各种过程在烹饪和工业生产中转化物质. 思考空间对于思考物理世界至关重要, 而空间本质上是连续的. 在社会推理中, 我们思考连续的属性, 如对事件的责任程度, 以及人与人之间喜欢或信任的程度. 在元认知中, 我们思考问题的难度, 以及解决它对我们可能正在做的其他事情的价值. 换句话说, 连续的属性, 过程和系统充斥着我们的心理生活. 然而, 大多数关于表示的解释都回避了, 或者最小化了思考连续事物的作用.
定性表示提供了对连续世界的离散且符号化描述. 这使得定性表示在日常推理中非常有用. 例如, 我们可以知道, 如果我们在桌子上倒水, 桌子下面的物体不会立即变湿. 我们不需要具体的图像或数值数据就能得出这样的结论. 此外, 我们可以轻松地在规划中使用这种知识: 如果野餐期间突然下起小雨, 我们可以把食物放在桌子下面以保持干燥. 食物具体放在哪里取决于雨量大小, 风向, 以及许多其他因素. 但这种简单的定性区分提供了一个初步计划, 并引发了一系列相关问题供进一步推理.
定性推理研究的目标是将我们关于如何推理连续现象和系统的直觉知识和方法形式化. 这种知识范围涵盖从未接受过正式数学或物理课程的普通人, 到科学家和工程师等专家的知识. 定性推理研究中开发的推理技术旨在提供人类常识推理的计算模型, 以及科学家和工程师在其专业工作中如何进行推理.
迄今为止, 大多数研究都集中在物理世界上 (因此常被称为定性物理学 (Bobrow, 1985; Weld & de Kleer, 1990)), 但这些相同的理念在社会科学和游戏策略与战术推理中也已证明富有成效. 此外, 这些理念可能延伸到我们对心理生活的模型中, 包括自我建模和元认知. 本书主张定性表示提供了人类概念结构的核心组成部分. 例如, 定性空间表示作为感知和认知之间的桥梁. 如果我们将心智使用的表示视为不同心理过程之间交流的一种货币形式, 那么定性表示似乎是一种主要的认知货币形式.
让我们现在非正式地考虑日常生活中的一些定性推理示例. 这些将帮助我们了解关于连续系统的推理如何渗透到我们的生活中. 这些例子是本书其余部分使用定性表示更详细考虑的例子之一.
考虑一个部分装满水的茶壶, 正在炉子上加热. 如果你将其无人看管一小时, 会发生什么?
我们都知道这是一个非常糟糕的主意. 有些人可能模糊地知道这一点, 而其他人则有着当看到错误重复发生时的本能反应. 然而, 你并不知道所有必要的数值或方程式, 从传统物理原理推导出将会发生什么. 尽管如此, 你知道可能会发生什么类型的事情. 你知道它会加热, 过一段时间后, 水会开始沸腾. 最终, 所有的水都蒸发掉, 茶壶开始变得极热. 如果炉子的温度足够高, 茶壶甚至可能熔化. 正如第7章所示, 考虑到我们对这种情况知之甚少, 可能会有更多的结果. 知道可能发生的行为类型是极其有价值的: 它让我们知道什么时候可能出错, 并告诉我们需要集中注意力在哪里以避免问题. 它帮助我们了解何时可能需要更多知识. 这种知识可以有多种形式. 在日常生活中, 它可能以更多经验和观察的形式出现. 在专业实践中, 它可能是数学模型, 数值模拟, 或在物理模型上进行的实验. 无论哪种情况, 初步的定性分析都为后续思考提供了框架.
这里有一个你可以尝试的实验. 找两个相同的冰格. 一个装冷水, 另一个装温水, 然后同时将它们放入冰箱. 哪个会先结冰, 温水还是冷水? 为什么? 在继续阅读之前, 试着构建一个解释.
如果你尝试, 你会发现温水结冰更快. 这是违反直觉的, 因为冷水的初始温度与冰点之间的差异比温水小. 许多人第一次面对这个问题时, 尝试引入热动量
的概念, 类比于运动. 在这个模型中, 较大的温度差异某种程度上加速了温水的冷却. 不幸的是, 热动量并不存在. 结冰还取决于什么? 较少量的水会比较大量的水结冰更快, 因为它需要散失的热量更少. 但两个冰格都装了相同量的水, 所以如果这条解释路线可行, 冰箱内部一定发生了某些事情, 影响温水冰格多于冷水冰格. 哪些过程可以影响水的量? 蒸发可以, 温水蒸发比冷水快, 所以这符合, 为该现象提供了一个潜在解释. 第II部分探讨了我们刚刚使用的表示和推理的形式化版本.
为什么会有季节? 令人惊讶的是, 相当多的儿童, 甚至哈佛毕业生, 错误地认为地球在夏季比冬季更接近太阳. 这不可能是正确的解释, 因为当美国芝加哥是冬季时, 澳大利亚布里斯班却是夏季. 再次, 在继续阅读之前, 你可能想思考一下, 重新构建你对此的了解.
回想一下, 地球的自转轴是倾斜的. 这个角度相对于地球轨道平面保持大致恒定. 朝向太阳倾斜的地球部分每单位面积接收到的太阳辐射比远离太阳倾斜的部分多; 因此, 倾向太阳的区域在那些远离太阳的区域经历冬季时正在经历夏季. 第17章描述了Scott Friedman关于概念变化的模拟, 该模拟从一个朴素的误解开始, 转向正确的模型 (Friedman, Forbus, & Sherin, 2011b, 2018), 并捕捉了Bruce Sherin及其同事们在中学生学习科学研究中发现的中间知识状态 (Sherin, Krakowski, & Lee, 2012). 同一系统也被用来模拟儿童如何学习力的直觉概念, 以及自我解释如何帮助通过阅读学习.
知识表示是一个深刻的主题, 但你只需要了解几个基本要素就能跟上本书中提出的论点.
知识是一个广泛的术语. 本书的主要焦点在于我们通过与世界互动以及通过关于世界的指导 (正式和非正式) 构建的心理模型类型. 表示这类模型需要符号表示能力. 也就是说, 我们在某种功能意义上拥有代表世界中事物的符号, 以及通过组合这些符号来构建更丰富描述的组合手段. 这种更丰富的结构是通过连接其他符号的关系建立起来的. 家庭关系是熟悉的例子, 空间关系也是 (例如, 上方, 内部). 关系也可以连接事件和其他关系, 就像当我们援引因果关系来解释为什么某事发生时那样. 例如, 朱丽叶自杀是由她相信罗密欧已经自杀以及她对他的爱所导致的. 人们明显地解释事物, 制定计划, 并构建假设和模型. 本书主张定性表示是构建这些心理生活产物的关键材料之一.
有些人认为表示的概念从根本上存在缺陷. 许多其他人 (包括我自己) 认为表示对理解人类认知至关重要. 我相信证据强烈支持这一点. 例如, 考虑一下你在阅读这个句子时正在进行的操作. 你正在使用视觉和概念处理的复杂组合来解码这些句子, 包括使用世界知识来帮助消除歧义, 甚至在处理的很早期阶段 (Camblin, Gordon, & Swaab, 2007). 如果你认为你可以在不使用表示的概念的情况下解释本书其余部分描述的现象范围, 我邀请你尝试. 但标准已经设定得非常高.
有些人认为简单的数值空间模型或纯统计模型或特征向量可以解释人类认知的大部分. 同样, 有很多理由怀疑这一点. 有证据表明视觉比较使用结构化的关系表示 (Palmer, 1999; 本卷第14章和第16章). 自然语言经常讨论事件, 其中信息是增量表达的. 很难看出如何在没有代表相关事件的符号和关系 (即角色关系) 来积累这些信息, 这些关系将事件与其谁, 什么, 何时和何地联系起来 (见第13章). 当然, 还有为什么
的问题: 解释本质上是关系性的, 而对人类关于连续系统的因果推理进行建模是本书所解决的关键问题 (第II部分). 因此, 我们假设在人类认知中使用了结构化的关系表示.
逻辑最初是作为一种尝试, 旨在编纂如何清晰思考, 因此认知科学家, 特别是人工智能研究人员, 以各种方式接受逻辑是很自然的. 理解本书不需要广泛的逻辑背景. 在这里, 我们专注于几个基本要素, 提供视角和背景.
逻辑在确保我们所写的表示具有明确含义方面很有用. 我们的目标是精确, 对我们正在讨论的概念清晰明了——如此清晰以至于计算模型可以自动地推理我们创建的描述. 形式化表示是可用于实现这一目标的工具之一. 在这里, 逻辑被用作帮助描述表示所许可的推理集合的工具. 现有的形式主义不能承担全部负担, 因为计算问题在推理中至关重要, 而逻辑与计算之间的关系仍然是一个研究课题, 所以我们谨慎地使用逻辑.
语法是关于文化的. 阅读是困难的, 是人类认知中那些令人惊叹的壮举之一. 阅读形式化系统 (例如, 表示方案, 编程语言) 可能更加困难, 因为我们对它们的经验要少得多. 阅读需要解码屏幕 (或页面) 上的标记, 这是一种视觉技能, 而这类技能需要时间来学习. 不熟悉的语法迫使我们做更多工作来解决它. 不幸的是, 视觉语言也有相同的问题, 并且往往不能很好地扩展: 例如, 一个有十几个节点的概念图往往会使观众过载.
本书采用了一种类似于Lisp的句法. 陈述具有以下形式:
(<predicate> . <arguments>)
其中<predicate>
是一个关系, 而<arguments>
是这个关系的零至任意有限多个参数. (.
用以指示不定数目的参数.) [译注: 这是Lisp系语言的特色记号罢了.] 例如,(northOf CityOfDelmenhorst CityOfVenice)
指示Delmenhorst, Germany在Venice, Italy的北边. 这种语法的优势在于它不需要学习优先级规则, 这些规则是用于对事物进行分组的约定. 例如, 在传统数学中, 表达式表示与的乘积, 再加上, 而不是
乘以加之和. 当需要表达多种关系和函数时, 传统符号就会变得不够清晰, 而明确地表达则能使事物更加清晰. 例如,
(+ (* 3 x) 2)
我们遵循常见的约定, 对表示系统中的标记使用等宽字体, 以便更清晰地将它们与日常术语区分开来.我们假定通常的逻辑联结词——and
, or
, implies
, iff
, not
——和它们在逻辑中的通常含义相同. 陈述当然可以被嵌套. 例如,
(implies (northOf CityOfDelmenhorst CityOfVenice)
(< (AverageSummerTemperatureFn
CityOfDelmenhorst)
(AverageSummerTemperatureFn CityOfVenice)))
指示它们的地理关系可以推出Delmenhorst的平均夏季气温低于Venice的平均夏季气温. 这里, <
的参数是项(term). 项提供了一种表示世界中的实体的手段 (例如, Delmenhorst和Venice这两座城市). 项可以是原子的 (例如CityOfDelmenhorst
) 或者非原子的 (例如(AverageSummerTemperatureFn CityOfDelmenhorst)
). [译注: 原子也是Lisp系语言里的一种概念.] 非原子项可由函数应用于参数得到, 例如(<function> . <arguments>)
注意到这和陈述所使用的句法是相同的. 陈述和非原子项之间的区别取决于列表的第一个元素是关系还是函数. 我们遵循Cyc的约定, 对函数使用大写字母, 并通常使用后缀Fn
来使其意图的含义对普通读者更加清晰. [译注: Cyc是一个始于1984年的人工智能项目.]选择这种语法有三个原因. 首先, 它在AI和认知科学研究中被广泛使用. 部分原因是历史因素, 部分原因是与其他语法约定所需的运算符范围和其他规则相比, 它确实非常简单. 其次, 它能很好地扩展到更现实的表示方式. 逻辑和哲学文献中的大多数例子可能使用像这样的抽象关系, 但在表示日常生活和专业推理的范围时, 必须调用更多的概念和关系. 传统语法难以很好地适应这些需求. 最后, 我喜欢它, 我认为一旦你习惯了它, 你也会喜欢它.
常量, 如CityOfDelmenhorst
, 也是项. 这个常量由三个英语单词组成的事实对人类读者来说很有意义, 但对软件来说几乎从不重要. 为了可读性, 尽可能使用直观的名称. 另一个这样的约定是通过使用概念名称后跟一个整数来引入任意常量 (例如, Truck18
旨在表示作为卡车概念实例的某物). 如下所述, 尽管使用直观的名称提供了关于术语, 关系或函数的预期含义的信息, 但它们在表示系统中的含义仅来源于关于它们的其他陈述以及它们所允许的计算.
变量通过在常量前加上
来表示 (即, ?
是一个变量, 而?x
不是). 同样, 这种约定是必要的, 因为在现实的表示中, 使用较长但更有意义的变量名更好, 以支持读者, 同时为他们提供明确的局部线索, 指示哪些是变量, 哪些不是. 量词是一种特殊类型的连接词, 它将变量引入逻辑陈述中. 量词x
forall
表示全称量化, 而量词exists
表示存在量化. 例如,
(forall ?day
(implies (SummerDay ?day)
(rainingDuringPeriodIn ?day
CityOfDelmenhorst)))
[译注: 从理论上来说, SummerDay
应该写成summerDay
, 因为它也是关系, 或者说谓词. 不过, 似乎本书里的所有幺元关系或者说谓词首字母都是大写的.] 也就是说, Delmenhorst的每个夏日都在下雨 (尽管并非字面上的真实, 但确实看起来如此). 要反驳这一点, 只需声称存在一个反例即可:(exists ?day
(and (SummerDay ?day)
(not (rainingDuringPeriodIn ?day
CityOfDelmenhorst))))
其断言了至少存在一个这样的日子, 也许不止一个, 但人们不需要确切地知道那是哪一天. 带有变量的陈述通常被称为公理或规则, 而没有变量的陈述被称为基础陈述或基础事实. 在编写公理时, 习惯上省略全称量词. 人们也可以同样地说(implies (SummerDay ?day)
(rainingDuringPeriodIn ?day CityOfDelmenhorst))
请注意, 这里没有明确的量词约束 (govern) 变量?day
. 不受量词约束的变量被称为自由变量. 大多数推理引擎要么禁止自由变量, 要么将其解释为全称量化的.在逻辑中, 阶数(order)指的是变量允许量化的事物类型. 一阶逻辑允许变量的值为实体. 二阶逻辑允许变量量化谓词. 例如,
(forall ?r
(iff (transitive ?r)
(forall (?x ?y ?z)
(implies (and (?r ?x ?y) (?r ?y ?z))
(?r ?x ?z)))))
定义了传递关系的概念.为什么阶数重要? 形式系统的一个特性是其表达能力 (expressiveness), 即你能用它表达 (或不能表达) 什么. 另一个特性是完备性 (completeness), 即对于那些你能表达的事物, 你是否总能确定它们是真还是假. 第三个特性是可处理性 (tractability), 即给定一组陈述, 确定这些陈述是否蕴涵另一个陈述 (或等价地, 这组陈述与另一个陈述的否定是否矛盾) 有多困难? 这些特性之间存在权衡. 语言越有表达力, 可处理性就越低. 推理方法越高效, 它就越不可能是完备的. 这在第3章有更多讨论.
我们如何理解逻辑表示中陈述的含义? 对此有优雅的数学答案, 以模型论的形式呈现. 其思想是在理论中的术语和陈述与它们意图表示的世界中的对象和关于它们的陈述之间建立对应关系. 在上面的例子中, CityOfDelmenhorst
意图指代德国城市Delmenhorst. 谓词演算陈述的准确性, 当被视为关于现实世界城市的陈述时, 提供了一种评估这些陈述是否正确的方法.
这里潜藏着一个有趣的问题, 大多数读者可以忽略. 编写公理的个人, 团体或系统有某种预期含义. 但模型论告诉我们, 与某个系统的任何一致对应都足以作为一个模型. 例如, AI课程中常用的积木世界的简化公理, 由大约十几条规则组成, 也以整数有序对作为它们的模型, 其中一个整数表示桌子上的水平位置 (量化), 第二个整数表示其下方的积木数量. 因此, 尽管人们给谓词命名为Block
和above
以捕捉预期含义, 但从根本上更简单的模型的存在告诉我们, 这些小型公理集不足以将其含义精确限定为仅仅是预期的含义. 事实证明, 添加足够的公理以将逻辑理论约束到其准确的预期含义需要付出相当大的努力. 它需要远远超过几个公理. 另一方面, 这使得知识表示企业在实践中与许多人对它的看法大相径庭. 知识表示是一项出人意料地灵活, 渐进和连续的事务: 随着更多公理的添加, 可能模型的集合被缩小. 这个过程可以是非线性的——例如, 发现有不会飞的鸟和呼吸空气的水生动物会彻底改变你的信念集.
当表示作为计算系统的一部分时, 存在额外的复杂性. 所有计算系统都涉及某种表示, 无论是一组数值参数还是更复杂的结构化数据. 对某些人来说, 理想的世界是一个系统所拥有的各种形式的知识都可以作为逻辑公理写下来的世界. 也许这样的世界是可以实现的, 但我个人怀疑不是. 大多数AI研究人员发现, 当某种语言更适合表达预期含义时, 用更程序化的术语来描述系统某些方面的操作会更方便. 例如, 一些谓词植根于感知过程, 如从数字墨水计算视觉结构 (第16章). 其他谓词与采取行动的系统相关联, 这些系统可以被视为运动处理的功能近似. 由于这些计算有助于定义表示的因果影响, 对它们的描述也是表示含义的一部分. 因此, 发展对使用表示的计算的清晰描述是充分指定其含义的重要部分.
如果你想了解更多, 已有许多优秀的书籍撰写关于逻辑及其在AI中的角色 (例如, Brachman & Levesque, 2004; Genesereth & Nilsson, 1987; Russell & Norvig, 2009) 以及更广泛的认知科学 (例如, Markman, 1998).
知识的组织方式可能超越单一陈述的单元, 这方面有过多种理论提议. 较早的观点是Bartlett (1932) 提出的图式 (schema) 概念, 它将一组相互关联的陈述整合在一起, 这些陈述描述特定配置或蕴含. 通过识别情境——这一过程包括将图式的变量绑定到当前情境中实体的表示——图式原型中陈述的蕴含被认为在该图式实例中成立. Minsky (1974) 的框架 (frame) 理论在几个重要方面超越了这一概念. 他提出这类框架的某些变量具有默认值, 这些默认值可作为期望和缺失信息的替代 (例如, 人们对球的默认颜色可能是红色). 他主张采用层级式记忆结构, 并通过相关框架系统之间的链接来表示视觉视角的转换和差异性诊断 (即, 如果你认为某物是马, 但它有垂直的黑色条纹, 可以考虑它是斑马).
Hayes (1985a) 证明了这些表示的某些语义方面可以通过传统逻辑简洁地捕捉. 本质上, 图式变量 (或框架终端) 可被视为逻辑变量, 图式或框架中的陈述则是某个 (有时很大的) 蕴含的合取结论. 前件可被视为一个谓词 (即, 图式名称及其作为参数的变量代表其实例化). 识别标准则是进一步的蕴含, 这些蕴含暗示特定的图式陈述. 这准确地捕捉了这些表示的部分原始意图, 但并非全部, 因为它们还对记忆检索的工作方式提出了特定假设, 而逻辑对此(有意地)保持不可知态度. 尽管如此, 这种转换是一种有益的练习, 并常被用作构建使用图式和框架的系统的实现技术.
另一方面, 案例 (case)
这一术语通常用于描述特定情境, 系统或场景. 案例代表经验的一种形式. 它们可被视为陈述的集合, 作为一个整体单元处理. 案例是案例推理 (case-based reasoning) 中知识组织的方式 (Kolodner, 1993; Leake, 2000; Riesbeck & Schank, 1989), 在案例推理中, 对当前情境的推理通过从案例库中检索一个或多个案例, 然后将它们与当前情境匹配以确定应对措施. 案例推理和类比推理都认同经验推理在人类认知中的重要性这一假设. 然而, 人工智能在案例推理研究中假设了专门的索引方案以支持检索, 且检索和匹配通常都是特定领域的. 正如我在第四章中论述的, 这并非必要: 就像人类表现源自同一认知架构在多个领域的应用, 人类类比检索和匹配的模型提供了可用于案例推理的领域独立能力. 遗憾的是, 自千禧年以来, 案例推理的许多工作已退化为使用特征向量作为其表示, 而非包含关系信息的结构化描述. 这意味着, 如上所述, 此类系统无法表示解释, 计划, 论证或证明——换言之, 无法表达使人类认知变得有趣的大部分内容. 我相信, 下文讨论的大规模表示系统的可用性变化, 以及类比处理能力的改进将扭转这一趋势.
我认为, 理解人类认知需要对推理采取广泛的视角. 逻辑解决一切
或统计解决一切
等简化模型可能在特定研究中是有用的近似, 但两者都忽略了重要现象. 例如, 一个常见的误解是使用符号化和关系化表示必然需要使用逻辑, 串行处理且不含数值或统计信息. 实际上, 可选择的空间要宽广得多, 且不断扩展. 本章简要指引了这些问题和选择. 经验丰富的认知科学家会熟悉这里描述的大多数观点, 无论他们是否同意任何特定观点.
这个世界充满各种各样的事物. 而这些事物并非静态: 它们移动, 流动, 升温, 降温, 混合, 分离, 被创造, 成长, 衰退, 以及消亡. 我们理解世界的概念结构必须支持对变化进行表示, 解释和预测的能力. 因此, 我们需要能够捕捉广泛规律性的表示方法, 以便恰当地将我们所学知识语境化. 关于世界中事物类型及其表现行为类别的表示提供了我们表达语境的心智资源. 在哲学中, 本体论是研究存在之物的学问. 因此, 对存在之物广泛类别的形式化即为本体论假设. 本体论在定性推理中发挥两个主要作用:
在对世界进行推理时, 科学家和工程师会构建模型. 他们应用关于宇宙本质的一般定律, 结合通过实践和专业规范磨练的假设和近似, 构建所研究情境或系统的模型. 我们称这种推理为模型构建. 一旦模型被构建, 根据模型的类型, 有各种方式可以利用它进行推理. 推理的结果可能直接回答模型设计用来解答的问题, 或者可能表明模型本身不足, 因此需要新模型. 我称这种说法为第一原理建模, 因为它依赖于将一般定律应用于特定情境. 许多人持有的一个合理假设是, 日常推理中的建模是通过第一原理建模进行的. 也就是说, 在推断情境中可能发生的事情时, 我们应用我们对世界的一般知识来构建模型, 然后我们利用该模型进行推理以做出预测, 生成解释, 诊断问题等. 在心理学中, 这些通常被称为心理模型 (Gentner & Stevens, 1983; Johnson-Laird, 1983).
值得对这种推理进行更精确的描述, 以便我们更仔细地检视它. 正如后续章节所述, 我同意这种说法的略微不同版本: 科学家和工程师的专业推理在大多数方面与日常推理相同, 但日常推理实际上与大多数定性推理研究者所认为的不同 (第12章). 尽管如此, 第一原理建模说明直观简单, 并且可能是人们所做的部分内容, 因此它是一个有用的起点. 此外, 这种说明在创建能够进行人类水平专业推理的系统方面已被证明非常有用, 所以为了它本身的价值而理解它是值得的.
基于第一原则的建模方法依赖于以下观点:
可能会发生什么?) 到非常具体的 (例如,
如果我们将这根线缩短一英寸, 会引入问题吗?).
领域理论中知识的通用性有助于确保覆盖范围. 给定领域中的任何新场景, 通过一个完整且正确的领域理论, 一个足够强大的模型制定算法可以构建一个模型, 通过推理可用于回答该场景的问题. 拥有并使用这种通用知识无疑是解释人类专业知识灵活性的一部分, 这一点从科学和工程的教学方式中可以得到证明. 正如第12章所述, 解释的另一部分是经验和从经验中构建的概括. 但为了清晰起见, 这里我们将只关注通用领域知识.
在定性推理文献中已经开发和使用了各种模型片段表示方法 (Bobrow et al., 1996; Falkenhainer & Forbus, 1991). 以下是我们使用的约定: