贝叶斯认知模型 逆向工程思维
Bayesian Models of CognitionReverse Engineering the Mind
https://dokumen.pub/bayesian-models-of-cognition-reverse-engineering-the-mind-1nbsped-9780262049412-9780262381048-9780262381055.html
18 概率程序作为统一的思维语言
本章概述
第18章聚焦“概率性思维语言”(Probabilistic Language of Thought, PLoT)这一核心框架,主张人类高阶认知可被理解为在一种通用概率编程语言中进行的推理。该章系统阐述了如何将概念建模为随机函数,将直觉理论(如物理、心理)表达为可组合、可生成的程序系统,并通过Church等概率编程语言实现对因果推理、反事实判断、心理理论(Theory of Mind)、概念习得等复杂认知能力的统一建模。重点强调:认知并非直接执行算法,而是基于生成性世界知识,通过条件推理(如贝叶斯逆向规划、心智模拟、抽样)灵活应对多样情境。该框架不仅在行为实验中展现出高度的定性与定量拟合,还为概念学习、语言习得与社会认知的交互提供了统一的计算基础,指向未来在算法、神经机制与人工智能层面的整合方向。
![]()
![]()
![]()
18 概率程序作为统一的思维语言
本书前面各章逐步展开了一幅日益强大且普适的概率模型图景。在每一步中,我们都引入了一类新的模型,并论证它能够捕捉此前章节中的模型所无法解释的认知的重要方面。其中一些模型严格地推广了之前更简单的模型,但许多新模型类别彼此之间却是互不相容的:语法无法用图模型表达(反之亦然),非参数模型无法用逻辑模型表达(反之亦然),等等。如果我们追求的是为认知建立一套简洁的原理体系,那么这种模型的激增就令人担忧,也让我们不禁思考:是否存在一种概率模型的形式体系,能够统一所有这些模型类别?
与此同时,我们所讨论的模型类别在表达能力和普适性上不断增强,我们也会好奇这一进程的边界究竟在哪里。从认知科学的角度来看,复杂性的一个自然上限由可计算性(computability)约束所决定。如果认知即计算,那么认知系统必然受限于只能使用可计算的概率模型;也就是说,给定某些随机输入,从该概率分布中抽样的过程必须能由一个计算机程序执行。
在本章中,我们探讨:若仅以可计算性为约束,贝叶斯方法在认知科学中究竟能走多远。我们将发展一种形式体系——基于随机λ演算(stochastic λ-calculus)的通用概率程序(universal probabilistic programs)——它统一并扩展了前面各章描述的所有模型类别。我们将介绍一种特定的概率编程语言,称为 Church(Goodman, Mansinghka, Roy, Bonawitz, & Tenenbaum, 2012),它能够表达任何可计算的概率模型,并提供一种简单而有效(尽管未必总是实用)的程序,用于在该类模型中执行任何可计算的贝叶斯推理。
首先,我们将概述这一方法的理论基础:引入随机λ演算,继而介绍 Church 语言,并说明此类语言具有通用性(universality)。接着,我们将展示 Church 如何表达本书其他章节中一系列熟悉的乃至新颖的建模概念。事实上,我们提出:Church(或任何具备计算通用性的概率编程语言)为建模人类所有概念提供了一个框架——即作为概率思维语言(Probabilistic Language of Thought, PLoT)中的函数。我们将回顾 PLoT 假说(Goodman, Tenenbaum, & Gerstenberg, 2014),以及它如何将概念视为人类认知的基本单元,从而提供一种统一的视角。
18.1 概率程序与随机λ演算
我们首先定义随机λ演算——一种仅用少数基本构造就能表示复杂生成模型的数学系统。它基于λ演算,而λ演算是确定性计算的主要模型之一。在介绍这一数学基础之后,我们将添加若干特性以简化建模过程,使其成为认知科学中更实用的概率编程语言(PPL)。具体而言,我们将采用 Church 这一PPL(Goodman 等,2012),它优雅地扩展了随机λ演算这一简洁的数学系统,并基于 Lisp 的 Scheme 方言实现。
我们应如何着手构建一种组合式的形式系统(即一种“语言”)来表达关于复杂世界状态的概率分布?直观上,第一个线索来自将分布表示为生成过程(generative processes)的想法:即世界通过一系列随机步骤演化成当前状态的过程。尽管生成过程是表达概率知识的有用方式,但采用这种表示只是将我们的问题转化为:如何为生成过程本身构建一种组合式语言。这一问题的解决方案源于一个简单思想:如果我们已经用组合方式描述了一个从开始到结束的确定性计算过程,然后在其中某些点引入随机性,那么我们就得到了一个随机过程——它遵循原有的计算步骤,只是在某些节点做出随机选择。通过这种方式,生成的不再是单一的确定性输出,而是一个输出分布,且该分布继承了原始确定性过程的全部组合性。
随机λ演算正是通过在一种通用计算系统(λ演算)中加入基本随机性节点,形式化地实现了这一思想。
λ演算的核心在于一种简洁而普适的方式:构造新函数并将函数应用于参数。在此基础上,我们将增加一种选择操作(choice operation):一种随机决定使用两个子计算中哪一个的机制。由此得到的系统——随机λ演算——如下定义所示,用于描述随机计算。
![]()
![]()
![]()
在 λ 演算中,我们通过代换(substitution)来建模函数应用。然而需要注意的是,代换并不总是有定义的:λ 项与代换之间可能会发生“名字冲突”(name collisions),此时我们需要在尝试代换之前对变量进行重命名。
随机 λ 演算由以下归约规则(reduction rules)所规定,这些规则通过重命名、代换和随机选择,将一个 λ 项转化为一个更简单的项,具体如下:
![]()
这套归约规则提供了一种计算模型。为了将其与更常见的计算概念(如算术)联系起来,我们需要指定标准值(例如 true、false、0、1、2...)和标准运算符(and、or、+、...)应如何被编码为 lambda 项。例如,布尔逻辑可以被编码为:True = (λ(x)(λ(y)x)),False = (λ(x)(λ(y)y)),and = (λ(x)(λ(y)((x y) x))),等等。(证明这些定义的行为符合预期是一个很好的练习:例如,函数 and 与 True 和 False 组合后会归约为 False,等等。)与其直接将所有这些编码描述为 lambda 项(虽然可行),我们更倾向于将它们作为*基本操作(primitives)来使用,而不具体说明其编码——这是一种处理它们的更方便的方式,也是编程语言中的标准做法。
请注意,对于一个给定的 lambda 项,通常存在许多不同的可应用的归约序列。对于普通的 lambda 演算(即不含选择操作符的随机 λ-演算子集),Church-Rosser 定理保证了归约顺序无关紧要。¹ 对于随机 λ-演算,这一性质不再成立。例如,项 ((λ(x)(=x x))(0 ⊕ 1)) 如果我们首先归约操作数(使用选择归约),结果将总是 true;但如果我们首先将操作数代入操作符(使用 β-归约),结果有时会是 false。因此,我们必须选择一种约定;我们假设在应用时,操作数总是在应用 β-归约之前尽可能地被归约(这被称为“急切”或“按值调用”顺序)。根据此约定,项 ((λ(x)(=x x))(0 ⊕ 1)) 将总是归约为 true(尽管随机选择可能导致 0 或 1)。
我们可以将 lambda 项视为指定生成过程:它们为我们提供了计算步骤(包括基本的随机选择)的指令,我们应遵循这些步骤以计算出一个最终值(该值将是一个无法再归约的 lambda 项)。我们期望生成模型能够指定分布,事实上,我们可以讨论通过将 lambda 项归约至无法再归约为止所得到的最终值的分布。某个特定归约序列的概率将与其中使用选择归约的次数相关,而某个最终值的概率则是对所有可能归约路径概率的求和。
定义:对于 lambda 项 M, N,令 μₘ(N) = Σᵣ∈Rₘ,ₙ 2⁻ᶜ⁽ʳ⁾,其中 Rₘ,ₙ 是从 M 归约到 N 的有限归约序列的集合,C(r) 是在 r 中使用选择归约的次数。如果 Σₙ μₘ(N) = 1,我们称 μₘ 为由 M 诱导的分布,并称分布 μₘ 由 M 表示。
并非每个 lambda 项都能诱导出一个恰当的分布:有些项具有不可数个无限归约序列(“非停机计算”),这意味着有限归约的概率将小于 1。
正如我们将在本章稍后更详细描述的那样,随机 λ-演算是足够通用的,足以捕捉认知科学中我们可能合理想要的所有分布。简单地使用我们现在可以直接描述的随机计算来表达认知过程——作为旨在描述心智算法本质的输入-输出函数——似乎是自然的。然而,贝叶斯认知科学的一个关键转变是,转而使用分布来表示关于世界的生成性知识,然后通过条件推理将其应用于推理、决策及其他认知过程。以这种方式使用随机 λ-演算,使我们能够将大量潜在的输入-输出函数描述为同一组关于世界的信念的不同条件推理。令人惊讶的是,我们可以在不进一步增加建模语言计算表达力的情况下完成这一转变,因为随机 λ-演算本身已经能够表达条件推理背后的计算。然而,在我们能进一步解释这一点之前,我们将首先通过添加一些从计算机编程语言中借鉴的句法特性,将随机 λ-演算转变为一种更便于表达心理表征和过程的语言。
18.2概率编程语言:Church
我们现在从一个本质上是数学对象的随机λ演算(stochastic λ-calculus),转向概率编程语言 Church(Goodman 等,2012)——该语言以发明λ演算的阿隆佐·丘奇(Alonzo Church)命名。
这一转变并非在根本表达能力上的改变,而是一系列附加特性和库的引入,使得编写实用模型变得更加直接。
其中许多新增内容将以非常非正式的方式处理,特别是那些属于 Scheme 编程语言(Church 所基于的语言)的标准特性(参见,例如,Abelson & Sussman, 1996)。
我们在此仅对使用 Church 的概率编程语法和思想做一个简要介绍。更多细节和大量示例可在《认知的概率模型》在线书籍中找到,该书网址为 http://v1.probmods.org。我们鼓励读者探索这一资源,以获得本书所呈现诸多思想的补充视角,并探索基于浏览器的 WebChurch 方言(同样可访问 http://v1.probmods.org)中的众多可运行编码示例。我们还推荐查阅第二版在线书籍 http://probmods.org,该书采用一种更新的概率编程语言 WebPPL(http://WebPPL.org/),其基于 JavaScript。
概率编程语言与有向图模型类似,它们既提供了一种更严格的数学形式化方法来描述复杂的概率模型,也提供了用于在这些模型中执行自动化或半自动化、可扩展推理的实用实现工具。但概率程序在粒度上更细——包括在规范语言中包含更多的模型细节——并且覆盖范围更广,能够捕捉具有动态、无界和递归结构的模型。像 Church 这样的通用语言,自然地在同一语言中表达了贝叶斯推理算法,而我们正是用这种语言来编写生成模型并处理元生成模型类别或输出为我们更熟悉的生成模型的生成模型——因此,任意模型的贝叶斯学习也可以在我们用于在这些模型内进行推理的同一框架中表达为推理。
Church 使用从 Lisp 语言家族继承而来的语法(McCarthy, 1960)。因此,运算符位于其参数之前,并写在分组括号内:例如,(+ 1 2) 编码了“将 1 和 2 相加”的操作。λ演算的两个附加功能使指定函数更容易:允许使用多个参数以及通过 define 将值绑定到名称。例如,我们将编写 (define add2 (lambda (x y) (+ x y))) 来定义一个名为 add2 的函数,该函数将其两个输入相加。我们现在可以重用此函数来定义一个新函数,该函数对四个输入执行类似的求和操作:(define add4 (lambda (w x y z) (add2 (add2 x y) (add2 w z))))。我们还允许在定义函数时省略 lambda 的快捷方式:(define (add2 x y) (+ x y))。当我们以这种方式定义函数时,我们允许它引用自身的名称——也就是说,可以递归地定义它。
或许随机 λ 演算与 Church 之间最大的区别在于,Church 增加了基本随机过程(Elementary Random Procedures, ERPs)来取代均匀选择操作。例如,ERP flip 代表伯努利分布(它“抛掷一枚硬币”,其“正面”为 true,“反面”为 false,具有给定概率):(flip 0.7) 在 70% 的时间内结果为 true。每次调用该函数时,都会生成一个新的随机值——硬币每次都重新抛掷。
这些随机原语可以像普通函数一样组合。例如,(and (flip 0.5) (flip 0.5)) 是一个更复杂的过程,它取两个随机布尔值的合取。当且仅当两次抛掷都为 true 时,该过程才返回 true。我们可以结合 ERPs 和递归来定义结构更有趣的生成过程。例如,我们可以使用 flip 和条件 if 函数³ 递归地定义几何分布:(define (geom p) (if (flip p) (+ 1 (geom p)) 0))。
请注意,flip 实质上是选择归约算子的替代品,因为我们可以将 (M ⊕ N) 定义为 (if (flip 0.5) M N);下文我们将讨论如何使用 ⊕ 来编写 flip。
一个 Church 程序指定的不是一个单一计算,而是一个关于计算的分布。这种概率程序的采样语义(sampling semantics)(参见 Goodman 等人,2012,了解详情)意味着概率的组合是通过函数的常规组合来实现的,并且它允许我们使用现代编程语言中所有表示抽象的工具来指定概率模型。我们不会在此处提供关于函数抽象及其他此类工具威力的入门教程,但我们会以我们希望直观且具启发性的方式使用它们。
随机 λ 演算的其他几个有用扩展,在广泛的应用中都非常有用,包括构造任意符号表达式、等式运算以及记忆化(memoization)。Church 中的这些语言特性与认知科学中长期研究和争论的人类概念表征核心理论相平行。对于认知建模而言,最熟悉(也是最具争议性)的可能是使用任意符号。在 Church(如同在 Lisp 中)中,一个符号是一个基本值,其唯一属性是它等于自身,而不等于任何其他符号:(equal? 'bob 'bob) 为真,而 (equal? 'bob 'jim) 为假。(单引号语法只是简单地表明其后的内容是一个符号。)至关重要的是,符号可以用作唯一的标识符,以承载某些概念知识。例如,它们可用于指代函数,就像我们之前使用 define 创建 add2 函数,然后通过名称重用该函数来创建 add4 一样。符号也可以与函数一起使用,以表示关于一组无界对象的知识。例如,函数
![]()
接收一个人 x,并随机返回一个眼睛颜色(例如,(eyecolor 'bob) 可能返回 'blue)。也就是说,函数定义封装了关于如何生成眼睛颜色的知识——独立于被询问的是哪个人——一个人仅由一个符号('bob)表示,该符号通过 eyecolor 函数与另一个符号('blue)相关联。
当然,这种表示对象属性的方式存在一个缺陷:如果我们两次询问 Bob 的眼睛颜色,我们可能会得到不同的答案!Church 包含一个名为 mem 的算子,它接收一个函数并返回一个记忆化(memoized)版本:该版本对函数参数的每个不同值仅进行一次随机选择,之后再调用时,会返回首次评估时存储的答案。例如,eyecolor 函数的一个记忆化版本,
![]()
![]()
因此,符号可以被用作“索引”,以恢复随机属性;也可以作为标签,使我们能够检索关于对象及其关系的已存储信息。这两种用法在概念上非常相似,尽管它们的语法不同,并且可以组合使用。例如,我们可以在一个函数的定义中通过名称访问另一个函数,并传递当前关注的对象:
![]()
这个(虽为错误但或许直观的)眼睛颜色模型断言:眼睛颜色有时纯粹是随机的,但大多数时候取决于某位父母的眼睛颜色——这一依赖关系通过在 eyecolor 函数内部调用 father 或 mother 函数来实现,依此类推。因此,符号及其符号化引用(symbolic reference)是关键的语言构造,使我们能够从较简单的成分构建出对复杂概念和情境的表征。
本章余下部分将提供更多例子,并进一步阐明为何以及如何将 Church(以及更广义的概率编程)视为认知建模的一种统一计算框架。特别地,我们将聚焦于它在统一表征人类多样概念及概念驱动推理方面的潜力——这种观点被称为“概率思维语言”(probabilistic language of thought)。但首先,我们将利用 Church 及其递归定义能力,说明我们如何将底层的数学形式体系——随机 λ 演算——视为描述生成模型的一种通用理论形式体系。
18.3 通用性(Universality)
我们在本章开头提出的目标是:探索仅受可计算性(computability)限制的认知模型空间。但究竟什么是可计算模型?一种合理的可计算概率模型定义是:由一个可计算分布所定义的模型。
定义:一个可计算概率分布由一个可计算函数(即一个确定性的 lambda 项)p:D×N→Bool所规定:p(x,n)给出 x的概率的第 n位(二进制)数字。
不难看出,由随机 λ 演算项所诱导的分布是可计算的(此处给出的该分布定义,加上一种枚举归约序列的策略,即可构成一个算法,用于将概率计算到任意给定精度)。那么反过来是否也成立?即随机 λ 演算是否能够表示任意可计算分布?
我们首先考察一个简单情形,然后陈述更一般的定理。
引理 18.1:每一个可计算的二项分布(binomial distribution)都可由某个随机 λ 演算项表示。
![]()
因此,随机 λ 演算与可被描述为可计算分布的模型在表达能力上是等价的。那么在实践中,我们为何会选择其中一种表示而非另一种呢?概率程序具有两个相关的优点:它们使模型的 生成结构显式化 ,并且天然具有 组合性 (而分布的组合法则则很复杂,需要进行积分)。这两种形式体系之间的等价性使我们确信,我们所拥有的模型类别已足够广泛——仅受可计算性的限制——因此我们大胆提出一个论题。
论题(通用性):任何可计算的概率模型都可以被表示为随机 λ 演算中的一个表达式。
这是一个论题,而非定理或假设,因为我们意在使其适用于任何合理的“可计算概率模型”概念,而非特指某一种具体模型。(参见:Church-Turing 论题,即普通 λ 演算能穷尽所有可计算函数。)
18.4 条件推理(Conditional Inference)
推理是如何进入这一系统的?在贝叶斯认知科学中,我们不仅关注指定生成模型(即刻画智能体对世界信念的模型),还关注在这些模型上进行条件推理,以描述学习、推理以及其他信念更新过程。人们很自然地会认为,我们需要在随机 λ 演算中引入一个新的算子来表达条件化(conditioning)。但令人惊讶的是,事实并非如此——条件化可以直接在 Church 中定义。
具体而言,条件化可通过一个递归函数来实现,该函数对应于拒绝采样(rejection sampling)的概念(参见第 6 章)——这是一种随机递归,体现了朴素但始终可靠的“猜测-检验”(guess-and-check)推理方法。
假设我们有一个分布 dist(一个不带输入参数的随机函数),它通过从中抽样来表示我们感兴趣的生成模型;另有一个谓词 pred(一个确定性函数,其输入类型与 dist 的输出类型相同,并返回 True 或 False),它代表我们希望据以进行信念条件更新的某条信息。那么,我们可以定义一个高阶随机函数 condition,它以模型 dist 和信息 pred 为输入,并返回一个来自新分布的样本——该新分布等于在谓词为 True 的条件下对 dist 进行条件化后的分布:
![]()
也就是说,我们不断从 dist 中抽样,直到获得一个满足 pred 的样本,然后返回该样本。这通过采样语义直接实现了贝叶斯信念更新:condition 接受由 dist 所指定的先验模型,并有效地构建一个新的模型(通过一个生成样本的过程来指定),该新模型表示后验分布,即在证据“pred 为真”的条件下对 dist 进行条件化后的分布。
在 Church 中,我们通常使用一种更便捷的条件语法,即 query 函数。该函数指定一个特定的感兴趣随机变量(或称“查询表达式”),并可自动转换为如下形式:
![]()
我们的初始分布现在由查询表达式(query-expression)在由……定义……所给出的生成式世界模型的上下文中求值得到,而我们的条件化谓词则是条件表达式(condition-expression)在同一上下文中求值得到。
例如,如果我们想要计算从几何分布中抽取的两个样本的条件分布,并以它们的和小于 4 为条件,我们可以写作:
![]()
![]()
在这些例子中,“; ; . . .”语法表示代码注释。请注意,这里存在一个区分:定义部分(definitions)代表可跨多个查询重复使用的概率知识,而查询表达式(query)和条件表达式(condition)则代表当前特定的问题。
在本例中,具体的人物只需在当前问题中引入,因为概念性知识是定义在任意符号之上的。但同时也要注意,为了使该模型定义良好,定义部分必须包含对函数(如 (mother ...) 和 (father ...))的某些具体说明,以确保它们能返回有效值。这可以是非常复杂的机制,例如一个家谱的生成过程;也可以非常简单,比如 (define (mother x) gensym),它返回一个随机生成的、任意的“通用符号”(实际上是一个个体母亲的占位符名称——但就 eyecolor 函数而言,这个占位符可以拥有眼睛颜色)。
尽管我们可以用拒绝采样器(rejection sampler)来定义条件推理,但这并不意味着 query 必须通过拒绝采样来实现。事实上,概率编程语言(PPLs)通常会提供基于计算贝叶斯统计中其他算法的 query 实现(参见第6章),例如 Metropolis-Hastings(Hastings, 1970)、序贯蒙特卡洛(Sequential Monte Carlo;Doucet, de Freitas, & Gordon, 2001),以及当然还有精确枚举(exact enumeration;参见第3章)。
自 Church 及其他早期概率编程方法(如 BLOG,Milch & Russell, 2006;或 Anglican,Wood, Meent, & Mansinghka, 2014)问世以来,工程层面的工作一直聚焦于开发越来越强大的推理算法和更具可扩展性的推理框架。重要的创新包括:哈密顿蒙特卡洛(Hamiltonian Monte Carlo, HMC;Carpenter 等, 2017);使用神经网络编码器进行变分推理以学习变分近似后验分布,如 Pyro(Bingham 等, 2019)和 Turing(Ge, Xu, & Ghahramani, 2018);以及元编程(meta-programming)与可编程推理(programmable inference),用于灵活组合不同的建模与推理模式,如 Venture(Mansinghka, Selsam, & Perov, 2014)和 Gen(Cusumano-Towner, Saad, Lew, & Mansinghka, 2019)。
这些工程创新——以及仍在开发中的更多创新——对于实现概率编程的承诺至关重要。但必须强调的是,即使是我们目前已有的概率编程语言(PPLs),也已是非凡的产物和智力成就,因其兼具通用性与简洁性。以 Church 为例,它是一种足够贴近人类意识思维粒度的编程语言,任何人都能学会,并可用于描述任何计算机可能实现的概率生成模型和概率推理算法。
在线书籍 http://v1.probmods.org 和 http://probmods.org 中为 Church 及其后继者 WebPPL 所实现的简单推理算法,远非最高效的算法,也并非为大规模实际问题部署而设计。但它们此刻就可在你的网页浏览器中运行,并且是通用推理算法:原则上,只要你愿意等待足够长的时间,它们就能计算出任何可计算的条件贝叶斯推理。
随着概率编程在工程层面不断推进,该领域应从这些“原则上可行”的可能性,逐步迈向日益实用的工具:即提供最简便、最稳健的方式来实现本书中所有模型的编程语言与平台,并为将贝叶斯方法扩展至对人类认知更整合、更大规模的解释提供有效路径。
18.5 从概率程序到概率思维语言(Probabilistic Language of Thought)
到目前为止,本章已定义了一种统一的理论形式体系——随机 λ 演算,它涵盖了本书所介绍的各种概率建模形式(实际上涵盖任何可计算模型);我们将这一形式体系嵌入到一种优雅且概念上自然的认知建模编程语言——Church 中;并描述了一类非常通用且实用的贝叶斯推理算法,用于实现 query 函数,读者可通过 probmods 在线书籍在网页浏览器中直接使用。
本章余下部分将更深入地探讨如何利用概率程序对人类思维进行建模,具体包含两个目标:第一,更具体地展示像 Church 这样的概率编程语言(PPL)如何表达多种多样的认知模型;第二,说明它如何提供一种“逆向工程”(reverse-engineering)的视角,来思考人类思维中某些根本性方面——而这些方面若仅使用前几章介绍的更熟悉的贝叶斯建模工具则难以触及。
本书的核心观点是:稳健且资源理性的概率推理(robust, resource-rational probabilistic inference)处于人类认知的核心。要对心智进行逆向工程,我们需要一套恰当的理论、表征和算法工具包,以支持在不确定知识下的学习与推理——包括概率版本的层级结构、关系系统、逻辑、语法,以及许多其他形式的符号结构与抽象。
然而,我们尚未将这种理性概率推理方法与人类心智或许最根本的特性联系起来:生产力(productivity)。我们所能思考的念头集合,以及我们所能思考的情境集合,是开放式的(open-ended)——它们并非毫无约束,但却是无界的(unbounded)。相比之下,我们在世界中的经验却是有限的,并在许多方面受到限制,而我们的思维却并非如此。正因如此,泛化能力(generalization)也必须处于认知的核心。
在无穷无尽的新颖情境中,既能理性又能富有生产力地进行泛化,并在不确定性下稳健地推理,这仍是计算认知科学面临的一项核心开放挑战。而应对这一挑战,正是贝叶斯认知建模方法必须借助概率编程工具的最重要原因。
认知中富有生产力的泛化(productive generalization)何以可能?对此,最古老且或许最有力的提议是:我们的思维具有组合性(compositional)——也就是说,我们的思想由概念(concepts)构建而成,这些概念作为知识的基本单元,能够以某种类似“思维语言”(Language of Thought, LoT)的方式进行组合与重组,从而让我们能够灵活地对无限多样的新颖情境进行推理(Fodor, 1975, 1998;Carey, 2009;Spelke, 2022)。
概率编程(probabilistic programming)为我们提供了一种扩展这一 LoT 观点的途径:将概念视为一个组合系统,用于对一个开放世界中的情境进行概率推理;每一种情境都指定了一个概率分布,描述在已知某些信息的前提下,我们预期在世界中会观察到什么。
事实上,我们可以将随机 λ 演算和 Church 重新诠释为一种概率思维语言(Probabilistic Language of Thought, PLoT)的形式化实现:在其中,心理表征通过类似语言的概念组合方式构建而成,但这些表征的语义内容并非如传统 LoT 提案那样是对“可能世界”的逻辑刻画;相反,它指定了一个关于或然世界(more or less probable worlds)的概率分布,该分布以我们已知或可想象为真的所有信息为条件。
Goodman、Tenenbaum 和 Gerstenberg(2014)最初提出概率思维语言假说(PLoT 假说),旨在统一关于人类概念及其在心智生活中作用的不同观点——这些观点传统上源自互不相容的计算范式。为避免过度简化,我们可以将这些观点大致分为统计观与符号观。
统计观强调理性的概率推理,并将概念视为我们预测性泛化的核心——这正是本书前几章所聚焦的推理类型。概念提供了一种识别世界结构的方式,能够通过贝叶斯推理从少量正面例子中学习并泛化(Tenenbaum, 2000)。它们总结了世界中的稳定规律,例如对象、属性和事件的典型分布,这些可由原型模型(prototype models)和样例模型(exemplar models)编码(Murphy, 2002),并进一步推广至非参数贝叶斯模型(Sanborn 等, 2010a)。
符号观则强调概念如何作为组合性思维的构建模块(如前所述):它们能灵活组合,形成无限多样的思想,从而对无限多的情境进行富有生产力的推理;它们还能组合生成新概念,成为更复杂思想的基石。与此相关的是,概念的意义与功能很大程度上源于它们在解释性结构(explanatory structures)中所扮演的角色——既包括大规模的抽象思想体系,也包括关于因果如何产生效应的精细机制性解释。这些概念的解释性面向传统上由“理论论”(theory theory;Gopnik, 2003)及其他基于推理角色或概念角色(inferential or conceptual roles;Block, 1998)的理论来处理,并已通过因果图模型、层级贝叶斯模型和关系型非参数模型等形式化(参见第1章示例,以及第4、8、9章的详细内容)。
就本文目的而言,我们将所有这些理论归入“符号观”之下,因为在传统理解中,它们的实现被认为必须依赖某种逻辑、关系或其他表达性强的符号表征机制,这种机制要么取代、要么补充统计推理机制。
我们可以非正式地表述 PLoT 假说如下:
概率思维语言假说(非正式版本):概念通过其在一种类语言的(组合性且递归的)世界建模与推理系统中所扮演的角色,对可能的实体、关系、事件、情境和类型进行概率生成性知识的编码。
PLoT 为我们提供了一种思考概念的方式,将概念的统计功能、组合功能与解释功能整合起来,跨越了上述不同观点,从而比任何单一的传统计算方法更能捕捉人类推理的丰富性。它可被看作是通过引入源自符号方法的细粒度组合性观念,使概念的统计观变得更加灵活且系统化;同时,它也可被看作是通过将符号方法嵌入一个用于推理与决策的概率框架中,使其在不确定世界中的推理更具实用性。
让我们进一步剖析这些主张。由于概念是同时具备概率性(probabilistic),它们能够支持在不确定性下的渐进式推理(graded inferences)和归纳学习(inductive learning),并将这种能力富有生产力地扩展至无限多样的新情境中。又因为它们既是生成性的(generative)又是递归的(recursive),它们能够表征从高度抽象层次到具体因果机制、再到丰富可能性空间的世界知识;因此,它们所支持的概率推理不仅限于对现实世界的统计预测,更服务于因果推理、解释、规划与想象。
随机 λ 演算及其在 Church 中的实现,使我们能够将这些思想形式化如下:
概率思维语言假说(形式化版本):概念是通用概率编程语言(universal PPL)中的随机函数。
在 Church 中,知识被编码为随机(且可能递归)的函数定义。这些函数描述了随机过程的组成部分,可相互组合以刻画各种情境、提出各类问题,并通过合理的概率猜测来回答这些问题。正如概念通常被视为人类思维中稳定且可重用的单元,随机函数正是 Church 程序中编码知识的基本单元。
将概念等同于 Church(或任何通用 PPL)中的随机函数,并结合 query 构造,立即就能涌现出概念所应具备的所有理想特性:
表征关于世界的不确定性;
组合生成无限多更复杂的概念;
支持统计学习、泛化与概率推理;
以及在无界空间中进行因果与解释性推理。
这一形式体系还使我们能够对关于概念本质与起源的经典问题给出更精确的回答:
什么是意义?
不同概念的意义如何关联?
它们如何被习得和使用?
我们对这些问题的回答可以是微妙的。例如,表面上看,一个随机函数的意义就是它的定义,而概念之间的关系由构成关系(constituency)决定——如本章早前的例子中,eyecolor 的意义就是其定义,它仅通过调用 mother 和 father 函数而与其他概念产生关联。然而,当我们考虑由条件推理(即 query)所产生的概念间的推理关系时,便能看到意义与概念关联的更多维度:
对亲缘关系的条件化会影响对眼睛颜色的判断,反之亦然;
对头发颜色的条件化可能间接影响对眼睛颜色的判断,等等。
在下一节中,我们将通过一个简单团队游戏领域的扩展示例,阐明这些基础性问题,并探讨 PLoT 假说的经验充分性(empirical adequacy)。
18.6 将 PLoT 付诸实践:贝叶斯拔河与乒乓球
作为 PLoT 如何被用来捕捉人类在理解新情境和进行富有生产力的概率推理方面所展现出的惊人灵活性的一个例子,考虑你在观看诸如拔河这类团队比赛时可能做出的一些推理。在每场比赛中,我们看到两支队伍通过拉拽一根沉重绳子的两端来比拼力量。如果一支包含本章第一作者(NG)的队伍输给了包含第二作者(TG)的队伍,这可能提供微弱证据,表明 TG 比 NG 更强壮。如果每队只有两人,我们可能比在每队有八人的情况下更相信 TG 的力量优势。如果 TG 在一对一拔河中击败了 NG,而 NG 随后又在类似的一对一比赛中击败了其他三人,我们可能会认为 TG 不仅比 NG 强,而且相对于总体人群而言具有绝对意义上的强大力量——尽管我们只直接观察到 TG 参与了一场比赛。然而,如果我们后来得知 NG 在与 TG 的比赛中并未尽力,但在之后的比赛中却全力以赴,我们对 TG 力量的信心可能会减弱。
这种推理显然是概率性的:我们可能对这些命题做出合理猜测,但远非确定;观察到 TG 参与更多比赛后,我们会对其力量更有把握。但我们的推理也具有高度的抽象性:它并不局限于某组特定的拔河选手。我们可以用类似方式推理任意规模和组成的队伍之间的比赛,即使引入新选手也不会感到困扰。我们还能将队伍视为整体进行推理:如果 Alpha 队赢了前四场比赛,却输给了此前从未交手过的 Bravo 队,我们会判断 Bravo 队很可能比平均水平更强。Bravo 队人数越少,我们就越可能认为其中某位特定成员比普通人更强。类似的推理模式也适用于其他团队竞赛中的技能与成功推断:无论是数学竞赛队还是双打乒乓球队,我们都能对上述所有情境做出类比推理。
我们的推理还能从复杂的证据组合中得出复杂的结论。例如,假设参与者被分成两人一组。如果我们得知,每当 NG 所在队伍与 TG 所在队伍比赛时,NG 都很懒散(未尽力),但 NG 的队伍却赢下了所有这些比赛,这既暗示 NG 比 TG 更强,也暗示 NG 通常很懒散。如果我们随后得知 NG 的队友比人群中任何其他个体都更强,我们可能会修正前一个信念(关于 NG 的力量),但不会修正后一个(关于他的懒散)。如果我们得知 NG 的队伍赢下了所有二对二比赛,却对他的队友一无所知,我们仍可合理推测:无论这位队友是谁,其力量很可能高于平均水平;如果我们还得知 NG 在全力以赴的情况下输掉了多场一对一比赛,这一推测就更加可靠。
最后,我们在这一领域的推理还能模块化地与其他领域知识结合,或根据领域知识的细微差别进行调整。例如,如果我们观察到 TG 轻松地搬起多个非常重的箱子,我们可能会合理预期他的拔河队能击败大多数对手。但这很可能不会提升我们对他数学队(甚至乒乓球双打队)会异常成功的信心。如果我们知道 NG 正试图讨好 TG(例如为了获得某种好处),那么我们在评估力量时可能不会太看重他的失败;同样,如果我们知道 NG 在比赛中收到了一条分散注意力的短信,也会如此。
我们该如何解释人们从如此多样化的证据模式中得出的广泛而灵活的推理?需要对认知系统做出哪些假设,才能解释这些推理的生产力(productivity)与渐进性(gradedness)?什么样的表征既足够抽象以灵活扩展到新颖情境与问题,又足够具体以支持我们对世界做出的所有细致预测?
PLoT 正提供了应对所有这些问题的途径,而其在 Church 这类语言中的实现,使我们能够构建定量可预测的理性模型,具体刻画一个人在这一领域(或任何同样丰富的领域)中所能做出的全部判断。
18.6.1 拔河的形式化
让我们使用 Church 来形式化一个关于拔河领域的简单而直观的理论,捕捉此处描述的一些概念,并展示它们如何用于推理。该理论围绕比赛(matches)、队伍(teams)和个体(people)构建。我们观察到一组比赛,每场比赛发生在两支由人组成的队伍之间。每个人的力量(strength)是固定的,但在某场特定比赛中,一个人可能懒惰(lazy)也可能不懒惰;懒惰会降低该人在该场比赛中的拉力。比赛由集体拉力更强的队伍获胜。
请注意,我们这里有一组表达对该领域常识性理解的概念——如力量、懒惰、拉拽和获胜——它们可用于推理各种情境和问题:例如,不同人员之间比赛的可能结果、不同选手的力量或懒惰程度,或不同类型的选手或队伍之间各类假设性比赛的结果。
在 Church 中,我们可以使用符号(symbols)作为这些类型中未指定个体或实体的占位符。这意味着我们无需预先定义有多少人参与、队伍规模多大,或一场比赛有多少轮次。符号可根据需要通过单引号构造,例如 'alice、'bob、'team-bayes 和 'match-17。在随机 λ 演算中,符号仅用于变量,但在 Church 中,我们可以将符号用作值——甚至那些除了“代表自身”之外别无他用的值(因此我们可以判断两个符号是否相等)——在需要时动态地区分情境和对象,这非常有用。
我们唯一需要预先指定的知识是一个抽象概念定义的词汇表,这些概念通用于对该领域中实体(人、队伍、比赛)及其属性和关系的推理。我们通过一个函数定义单个选手的力量(strength),该函数从高斯分布中抽样(设任意均值 M = 10,标准差 SD = 3):
![]()
假设懒惰的人在比赛中仅发挥其实际力量的一半。一支队伍在某场比赛中的总力量,是该队每位成员在该场比赛中所贡献力量的总和,其中需考虑每位队员在该场比赛中可能懒惰的情况:
![]()
请注意,该定义使用了 map 函数,它将一个函数应用于列表中的每个元素;在这里,该函数是一个 lambda 表达式,用于编码“在某场比赛中懒惰会使一个人的力量减半”这一规则,而列表则是变量 team,它表示参与该场比赛的某支队伍所包含的人员集合。
最后,我们规定比赛获胜方的判定方式:我们简单地规定,总力量更大的队伍获胜:
![]()
综上所述,这一组函数定义构成了一个用于推理拔河比赛的概念词汇表;它同样可适用于许多其他团队运动,例如我们接下来报告的一项实验中,参与者对一场乒乓球锦标赛进行推理的情形。
借助这套概念,我们可以针对众多场景提出大量问题,并充分利用 Church 中多种形式的组合性(compositionality)。例如,我们可以提问:在仅知道 Bob 曾与 Mary 组队参加过一场比赛,并击败了由 Sue 和 Bill 组成的另一支队伍的情况下,Bob 有多强?
![]()
这里的……CONCEPTS……是本讨论中所引入的定义的简写——这些概念使我们不仅能够对某位玩家在当前情境下的实力进行推断,还能在各种可能的情境下进行推断:这些情境涉及由任意数量人员组成的队伍,以各种可设想的比赛结果和不同的赛制相互对抗。借助这些概念,我们同样可以轻松地提出这样的问题:如果我们观察到鲍勃参加了一场三人团队对阵六人团队的非对称比赛,他的实力如何?
![]()
![]()
我们鼓励你尝试这些示例以及接下来将要介绍的其他示例,使用 WebChurch(一种可在浏览器中在线运行的 Church 语言实现),访问地址为
http://v1.probmods.org/play-space.html。在运行每段代码之前,先思考你预期会看到哪些推断结果;这样做既能帮助你培养对概率推断的直觉,也能让你体会到 PLoT 如何捕捉你自己直觉思维的细微之处。
首先,请输入以下代码(开头和结尾处包含一些 WebChurch 特有的语法):
![]()
![]()
但在运行代码之前,请先思考一下:相较于之前鲍勃赢得一场2对2比赛的证据,现在这条“鲍勃赢得一场3对6比赛”的证据会如何以不同的方式影响你对他实力的推断。直觉上,这将提供更强的证据,表明鲍勃的实力比之前推断的要强得多。运行此处所示的代码后,你应该能在后验分布中看到这一效果:均值现在应约为13(大致比先验均值高出整整一个标准差)。
这种在不同可能情境下进行富有成效的扩展的能力——包括涉及不同的人、不同的队伍组合以及每场比赛不同的获胜者——使得Church的实现成为一种强大的通用人类推理模型。这种方式定义领域知识,与概率生成模型(如贝叶斯网络)中更常见的知识表示方式形成鲜明对比:在贝叶斯网络中,我们需要预先指定一个固定且有限的随机变量集合(例如 strength-of-bob 等),而Church程序则类似于一种规范,从中可以构建出无限多个不同的贝叶斯网络。
Church捕捉概念的“生产性使用”的另一种体现,是它能够通过函数组合形成复杂的语句——每引入一个新概念,可构造的查询数量就会呈组合式增长。我们可以利用这种组合性来刻画可能观察到的复杂数据模式,或回答复杂的推理问题。例如,考虑这样一个问题:“已知鲍勃和玛丽一起战胜了简和吉姆,且简的实力超过玛丽两倍以上,那么鲍勃的实力如何?”此时只需保留之前的WebChurch代码,将条件语句(conditioning line)替换为:
![]()
为了询问“在已知鲍勃和玛丽连续两次(在第1场和第2场比赛中)击败了简和吉姆,并且已知简和吉姆各自的实力至少是玛丽的1.5倍的情况下,鲍勃比简和吉姆都更强的可能性有多大”,请将查询语句 (strength 'bob) 替换为:
![]()
同样,我们可以看到,Church 的这一组定义使我们能够即时构建变量和关系,而这些在传统的贝叶斯网络中必须预先指定。在这里,所构建的不仅仅是简单的变量(例如鲍勃的实力),还包括相当复杂的条件。
18.6.2 一项量化实验
到目前为止所给出的例子定性地展示了概率程序中的推理如何对直觉性推理进行建模,但这种描述在行为实验的量化评估中也表现良好。Gerstenberg 和 Goodman(2012)的研究中,参与者被提供一系列乒乓球锦标赛的信息,并被要求对选手的相对实力做出判断。图18.1展示了一个单人锦标赛的例子(所有比赛均为一对一的团队对抗)。在此例中,大多数人认为 TG 相对较强,而 BL 可能略弱于平均水平。
![]()
这一推断可以用 Church 中的以下查询来描述:
![]()
Gerstenberg 和 Goodman(2012)实验1中的参与者既观看了单人锦标赛,也观看了双人锦标赛(具体呈现的证据模式见表18.1和表18.2)。参与者始终被要求对选手A的实力做出判断。他们还获得了一些与我们建模假设相对应的基本情境信息:每位选手都具有固定的、不随比赛变化的实力,但任何选手在任何一场比赛中都有较小的可能性未能发挥出全部实力,因此即使是强选手有时也可能输给较弱的选手。
![]()
在实验2中,参与者只看到单人锦标赛,但他们还额外获得了一位评论员(类似于体育解说员,且始终说真话)提供的信息:某位特定选手(不是选手A)在某场比赛中表现懒散。我们分两个阶段询问参与者对选手A实力的判断:第一阶段是在他们仅看到比赛结果之后;第二阶段是在他们还听到评论员报告之后,以评估他们如何更新自己的信念。
在实验1和实验2中,我们的Church模型均能准确预测人类对选手实力平均估计值的变化(分别见图18.2和图18.3)。人类参与者的平均判断与模型估计值之间的相关性极高(实验1:r = .98;实验2:r = .97)。此外,模型与单个参与者判断之间的中位相关性也很高(实验1:r = .92;实验2:r = .86),表明这种高度吻合并非仅仅是群体平均后的聚合效应,而是几乎每位未受训练的参与者直觉判断中都体现出的模式。
![]()
![]()
这些结果从量化角度证明了人类推理中存在我们试图通过PLoT(概率语言思维理论)所捕捉的那种强泛化能力。我们向参与者呈现了一种新颖的情境——它与熟悉的情境有一定相似之处,但同时也具有自身独特的特征:
包括单人和双人队伍、锦标赛中多个相互重叠的对局、选手可能懒散的情况,以及以观察到的比赛结果和语言评论形式呈现的信息。人们在没有任何额外训练的情况下,就能理性且富有成效地整合这些多样而异质的证据,形成对某位选手潜在实力的合理整体估计。目前还有更多研究正在进行,以探究这种能力的边界究竟在哪里——我们已经知道,在某些问题上,人类判断与模型预测开始出现分歧。但总体而言,令人印象深刻的是:仅凭概率性思维语言(Probabilistic Language of Thought)这一套极为简单却又极为通用的机制,就能在质性和量化两个层面上,很好地解释人类在全新领域中直觉推理的模式。
18.7 直觉理论(Intuitive Theories)
此处给出的例子具体展示了如何在概率性思维语言(Probabilistic Language of Thought, PLoT)中将概念表示为函数,这样的概念系统如何支持既具生产性又具概率性的推理,以及这些推理如何以高度的量化准确性捕捉人类推理的输出。然而,与人类常识推理核心中的概念系统相比,这些例子的范围仍相当有限。在本节中,我们将讨论同样的机制如何描述那些构成日常思维骨干的抽象概念——这些概念难以被纳入更传统的计算框架(无论是贝叶斯框架还是其他框架)。
直觉理论(Gopnik & Wellman, 2012;Wellman & Gelman, 1992;Carey, 1985, 2009;Gerstenberg & Tenenbaum, 2017)与其更为人熟知的科学理论对应物类似,包含一套相互关联、相互定义的概念系统,用以刻画一个关于实体的基本本体论(ontology):包括这些实体的属性、彼此之间的关系,以及支配这些实体如何随时间演化和相互作用的因果规律。例如,直觉物理学(intuitive physics)是一套用于推理物理对象的系统,而直觉心理学(intuitive psychology)则用于推理有意图的行动者(intentional agents)。之所以称其为“理论”,是因为正如科学理论一样,直觉理论中的核心构造通常并非直接可观测的。然而,直觉理论也规定了那些不可观测的状态、属性和过程如何影响可观测的经验——从而支持预测、解释、学习和推理等能力。
某种形式的直觉理论甚至可以在年幼的婴儿身上找到,并且在某种程度上也为许多其他物种所共有;它们可能是我们拥有的最早、最古老的抽象概念(Carey, 2009)。它们为儿童在最初几年中的诸多概念成就提供了脚手架,同时也是自然语言意义的核心构件。随着儿童语言能力的发展,这些理论也经历了根本性的转变——通过语言输入而得到丰富、深化和拓展,并继续作为成人对世界常识性理解的基础。
出于上述种种原因,直觉理论长期以来一直是发展心理学家、认知心理学家、语言学家和哲学家探索的核心对象。但直到最近——随着概率程序(probabilistic programs)的出现——我们才拥有了在计算层面表征它们所需的工具。
直觉理论是否真的需要概率程序的全部表达能力?在前面的章节中,我们讨论过几种先前提出的、试图捕捉民间理论(folk theories)某些方面的方法。贝叶斯网络(Bayesian networks)是其中一个自然的候选:当被因果地解释时,它们提供了一种形式化方式,说明人们如何利用直觉理论从观察到的结果反向推理世界中不可观测的原因,以及如何从稀疏的观察模式中学习因果关系(Gopnik et al., 2004;Rehder, 2003;Goodman et al., 2006;Griffiths & Tenenbaum, 2005, 2009)。然而,这些努力最终受限于一个事实:贝叶斯网络(如同之前的神经网络一样)无法捕捉思维中真正的生产性(productivity)。一个关于物理或心理的直觉理论必须能够处理无限多样的新情境——这些情境在具体细节上各不相同,但在抽象结构上却具有一致性,正如我们在描绘拔河或乒乓球等因果领域理论时所展示的那样(尽管规模小得多)。
分层贝叶斯模型(Hierarchical Bayesian models),尤其是那些建立在结构化关系表示(如一阶逻辑模式)之上的模型,曾被提出作为增强贝叶斯网络表征能力的一种途径,并对直觉理论中的抽象因果推理与学习的某些方面给出了合理的解释(例如,Tenenbaum, Griffiths, & Kemp, 2006;Tenenbaum, Kemp, Griffiths, & Goodman, 2011;Goodman, Ullman, & Tenenbaum, 2011;Gopnik & Wellman, 2012)。但这些方法仍然缺乏足够精细的组合性(compositionality),无法充分刻画我们对物理世界和社会世界的理解。
PLoT 在这方面使我们迈出了重要的一步。贝叶斯网络和直觉理论的分层贝叶斯模型都可以自然地写成 Church 程序,在保留其对因果推理、抽象和学习的洞见的同时,Church 程序走得更远——使我们能够捕捉那些在概率建模传统中此前一直难以形式化的常识性物理和心理的核心表征。
18.7.1 心智模拟、抽样与物理直觉理论
Church 程序的抽样语义、心智模拟(mental simulation)以及许多直觉理论所依赖的因果性之间存在着核心联系。Church 程序通过程序中的函数依赖关系,自然地表达了人类知识中因果性和生成性的方面。这些函数依赖关系决定了抽样过程中的因果流向:那些输出被用作另一函数输入的函数必须先被求值。每一次运行 Church 程序都可以被解释为动态生成一个与程序中所规定的因果规律一致的可能世界(Chater & Oaksford, 2013)。由于抽样过程是随机的,Church 程序实际上定义了一个关于可能世界的概率分布,而不同的推理模式可以被看作是在这一基本抽样过程之上的不同形式的心智模拟。
尽管“对可能世界进行心智表征与模拟”的观念已有众多支持者(Craik, 1943;Hegarty, 2004;Johnson-Laird, 1983),PLoT 视角将这一思想自然地整合进一种同时具备概率性、因果性且表达能力足够强的心智模型观中,从而能够捕捉核心的直觉理论。
接下来,我们将通过一些具体例子来阐明这一观点的含义。这些例子来自第15章中深入探讨过的直觉物理领域。人们可以利用其物理直觉理论对运动物体的轨迹做出多种判断,包括预测物体未来的运动位置、推断物体潜在的物理属性或初始条件、解释物体为何以某种方式运动,以及对“实际因果性”(actual causation)进行判断——即判断某一特定物理事件是否导致了另一特定事件的发生。
考虑对第15章中台球场景的一个扩展:除了两个台球 A 和 B 以及带有开口门的实体墙之外,我们还引入了一块砖块和一个可激活或关闭的传送门。图18.4以图示方式展示了在这个世界中球 A 与球 B 之间的因果互动,假设运动物体之间遵循简单的牛顿弹性碰撞规则。我们可以请某人预测:当 A 与 B 接触时,B 将如何运动;或者,如果只看到 B 的运动,判断 A 最可能来自何处;又或者,在完整观察这四种场景中的任意一种后,判断球 A 与球 B 的碰撞是否导致 B 穿过了屏幕左侧的红色门、是否阻止了 B 穿过该门,抑或两者皆非。
![]()
概率程序与基于抽样的推理工具使我们能够对这些因果判断给出精确的形式化描述,这种描述不仅与心智模拟的直觉高度一致,而且在行为实验中也展现出很强的量化拟合度(参见 Gerstenberg, Goodman, Lagnado, & Tenenbaum, 2021)。
要解释这些判断,我们首先需要在适当的抽象层次上表征相关的物理知识。尽管该领域看似简单,但 A 与 B 之间已经存在无限多种可能的互动方式。我们希望构建一个模型,能够对每一种可能情境都给出因果判断。我们并不希望为每个感兴趣的因果互动单独指定一个新模型(如果采用贝叶斯网络形式,我们就不得不这样做;参见 Pearl, 2000),而是希望表征支配我们世界中物体互动的普遍规律。
在 Church 中表征人们对物理物体运动的知识的一种方式,是编写牛顿力学某些方面的概率性、近似版本。Church 程序中的函数通过输入物体的质量和速度,以及更一般的环境因素(如摩擦力和重力),来计算惯性时间演化和碰撞结果。
到目前为止,这些都属于标准的确定性模拟例程(因此我们省略细节)。关键在于,与第15章中的模型一样,我们还假设在每次碰撞之后(也可能在其他时刻),每个物体的动量都会引入一些噪声,从而产生相对于牛顿力学轨迹的“噪声版本”。第15章回顾的研究表明,人们在许多类似领域中的直觉物理判断,都可以很好地用这种“带噪声的牛顿模拟”来描述(Sanborn, Mansinghka, & Griffiths, 2013;Battaglia, Hamrick, & Tenenbaum, 2013;Smith et al., 2013;Smith & Vul, 2013)。
一旦我们有了一个能捕捉人们直觉物理的 Church 程序,就可以将对未来事件的预测(例如:球 B 会穿过门吗?)建模为简单的前向模拟;而对过去事件的推断(例如:球 A 最可能从哪里来?)则可以通过给定当前状态对过去进行查询,模拟出可能导致当前状态的可能历史。
更微妙的是,Church 程序还可用于评估概率性反事实(probabilistic counterfactuals)——例如:“如果 A 与 B 没有发生碰撞,球 B 会穿过门吗?”——这正是第15章所解释的实际因果性判断的关键要素。与 Pearl(2000)在贝叶斯网络中提出的反事实推理理论一致,Church 程序中反事实的评估包含三个步骤:
第一,根据实际发生的情况,对程序中所有随机选择进行条件化,以估计真实世界中不可观测变量的值。第二,通过干预生成真实世界的程序执行过程,来实现反事实前提(例如,碰撞未发生)的真实性。这种干预会打破程序的正常流程,将某些函数输入设为期望值。例如,要模拟“如果没有 A 与 B 的碰撞会发生什么”,我们可以在碰撞发生前的瞬间将球 A 的速度设为零,或将 A 移出场景。第三,为了评估反事实命题的真假,我们重新计算从干预点开始下游的所有函数。这一过程生成一个反事实世界状态的样本;重复运行该过程(允许不同的随机函数求值),即可表达人们对相关反事实世界中“本可能发生什么”的不确定性。
请注意,Church 能够实现这一过程的关键特性在于:它指定了对特定情境进行抽样的过程,并以程序执行轨迹(execution trace)的形式显式表达了导致某一情境的因果历史步骤。反事实判断正是通过一系列“模拟”步骤生成想象中的反事实世界,而这些世界附近的可能世界分布则由心智模拟内在的概率性所诱导。
正如第15章所解释的那样,人们在此类场景中对实际因果性的量化判断,与这种概率性反事实分析密切相关(Gerstenberg et al., 2021)。当判断一个事件是否导致另一个事件发生时,人们似乎在估计某种类似于“候选原因对产生结果是否必要”的概率:即在候选原因不存在的反事实世界中,那个实际上发生了的结果本不会发生的概率。
通过在 Church 这样的概率编程语言(PPL)中实现这些计算,我们不仅能轻松处理简单熟悉的台球场景(如第15章所示),也能同样轻松地处理图18.4所示的大量新颖而复杂的场景——其中包含台球桌上极少或从未出现过的物体(如砖块、传送门),但我们仍能通过心智模拟对其进行推理。
考虑图18.4中上方的一对示意图。在图18.4(a)中,如果没有与球 A 的碰撞,球 B 本会撞到砖块而弹开;而在图18.4(b)中,球的运动轨迹完全相同,但由于砖块位置略有不同,我们可以推断:即使没有与 A 的碰撞,球 B 也会穿过门。正如预测的那样,人们对“A 是否导致 B 穿过门”的判断在图18.4(a)中显著高于图18.4(b)(Gerstenberg et al., 2021)。
在下方的一对案例中,相关反事实世界的对比是通过比较传送门开启(图18.4(c))与关闭(图18.4(d))的情境实现的。同样,这两个案例中物体的运动完全相同,但只有在图18.4(c)所示传送门开启的情况下,人们才判断 A 阻止了 B 穿过门——因为只有在这种情况下,若没有与 A 的碰撞,B 才会先穿过传送门、继而穿过门。
这些例子展示了人们直觉理论的灵活性,以及将理论体现为用于心智模拟的概率生成器,如何在新颖情境中支持模块化的反事实与因果思维。一旦人们学会了球如何从固体物体(无论是墙壁、其他球还是砖块)上刚性反弹,同样的模拟机制就可直接适用。一旦人们理解了传送门的工作方式,他们便能毫不费力地想象其效果,并将其纳入自己的模拟和因果判断中。而且,由于这些机制是在高度抽象的层面上表达的,相同的模拟与推理程序也能用于更广泛的直觉物理判断。
图18.5展示了若干非常不同的推理任务,它们都可以在 WebChurch 中通过其内置的刚体模拟器以查询的形式实现。图18.5(c)中的最后一个例子延续了 Gerstenberg 等人(2018)的研究精神,他们对人们在模拟的“Plinko 盒子”中进行这类逆向物理推理开展了大量定量且系统的实验研究。Plinko 盒子下方的直方图显示了一个近似的后验分布(基于200次马尔可夫链蒙特卡洛(MCMC)抽样),表示在观察到底部球的最终位置服从以水平位置200为中心(范围0到350)、标准差为10的正态分布的前提下,推断出球最初从盒子顶部边缘哪个水平位置被投入的可能性。注意后验分布中的三个峰值如何对应三种定性上不同的假设:最可能的情况是球从中间投入并垂直下落;但也可能是从盒子左侧或右侧附近投入,经左或右圆形障碍物反弹后最终落在中间——不过如果是这样,球就必须是从左侧障碍物的右侧或右侧障碍物的左侧投入的。
![]()
这种结构丰富且细节精细的后验信念状态——对人类推理者而言也极具直觉性——在 Church 中可通过通用的基于抽样的近似推理与通用的近似物理模拟相结合而轻松计算得出。尽管具体实现细节可能有所不同,但这种基于抽样推理与模拟的模块化组合,在计算上和心理上都是合理的,可作为人类心智如何进行此类推理的一种解释。
18.7.2 递归推理与心理直觉理论
这种灵活的、基于抽样的推理与因果推理的一般框架,不仅适用于直觉物理领域,也适用于任何我们能用概率程序表达人类直觉理论的领域。例如,我们可以将人们对“行动者 A 的论点是否说服了行动者 B 更加努力”这一判断,建模为实际发生事件的函数,以及人们对“即使 A 什么都没说,B 是否仍会更加努力”的主观信念程度。
一个捕捉人们对心理学直觉理解的概率程序,看起来会与捕捉物理直觉理解的程序不同,但我们仍可用相同的过程来理解人们的因果判断:即比较实际结果与对相关反事实世界进行心智模拟所得到的结果。
为了说明我们如何捕捉直觉心理学的核心概念——即一种概率模型,描述行动者如何根据其心理状态理性地行动,力求在自身信念约束下尽可能高效地满足其欲望——我们可以先从本章早前提到的拔河模型的一个扩展入手。
现在,我们不再将某位选手在某场比赛中的“懒惰”简单地建模为一个随机事件,而是将其视为该选手做出的一个理性选择(未必是有意识的!)。也就是说,当面对特定比赛中的己方队伍和对手时,选手可能会估计双方队伍实力差距极大——要么己方队伍非常强,要么对方队伍非常弱——以至于全力以赴并不值得。我们可以在 Church 模型中这样表达:假设选手会自问:“我该如何行动,才能让我的队伍获胜?”这可以转化为如下查询:
![]()
这里我们使用了一些无害的辅助函数,例如用于查找某位选手所属队伍的函数。参数 L 控制选手先验的懒惰倾向;这提供了一种纳入“效率原则”的简单方式:即倾向于避免不必要的努力。该查询中的条件语句明确了选手的目标——让自己的队伍赢得比赛——并假设这一目标能够实现。查询的输出是选手对“如何实现该目标”的一个合理猜测,即采取“努力”或“不努力”的行动。
于是,对一场比赛哪支队伍会获胜的推理,现在会引发一个子推理(subinference),用于建模每位选手根据各自队伍成员情况所做出的是否全力以赴的选择。我们还可以进一步扩展该模型,纳入每位选手可能拥有的关于其他选手实力的私有证据,并将该选手对两支队伍总体实力的信念形成过程表达为另一组嵌套的子推理。
由于 query 可在随机 λ 演算(stochastic λ-calculus)中被定义,因此在形式上,将一个 query 嵌套在另一个 query 内部是一种良定义的概率推理。在典型的认知概率模型中,我们使用 query 来建模某个主体的推理(如推理、学习等),因此包含嵌套 query 的模型可被解释为“对推理的推理”(inference about inference)。使用嵌入式 query 来捕捉另一主体选择行为的模式,是一种建模直觉心理学的通用范式(Stuhlmüller & Goodman, 2014)。
例如,建模一个近似理性的行动者的一种通用方式,是将其行动选择建模为一种推理:即在给定其对世界当前状态和动态的信念下,何种行动更可能实现其目标(Goodman et al., 2012;Botvinick & Toussaint, 2012;Stuhlmüller & Goodman, 2014):
![]()
在这段代码中,state 是一个变量,用于编码行动者对当前世界状态的信念;transition 是一个函数,用于编码行动者对转移模型(transition model)或环境动态(environment dynamics)的信念:我们可以将其视为一个因果模型(可以是确定性的,也可以是随机的),它以先前的状态(以及可选的所采取的行动)为输入,输出下一个世界状态。这里的 goal? 是一个函数,用于编码行动者希望在世界中看到的结果:我们可以将其视为一个谓词(predicate),它以某个状态为输入,并根据该状态是否满足行动者的愿望返回真(True)或假(False)。
这种形式化为信念-欲望心理学(belief-desire psychology)的核心概念提供了一种自然的“推理角色语义”(inferential role semantics;Block, 1986)。什么是行动者的目标?它是一个可应用于世界状态的谓词,并支配着行动者的行为选择:当行动者持有该目标时,人们预期他会选择那些他相信能导致该谓词在未来世界状态中为真的行动。行动者对世界因果结构的信念是什么?它们由一个函数表示,该函数以行动者对当前世界状态的信念以及他可能采取的任何行动为输入,输出一个预期的未来状态;如果该未来状态满足行动者当前的目标,那么人们就可以合理地预期他会采取该行动。
现在,我们可以通过将表示概率性理性规划过程的这个查询(query)嵌套在一个用于目标推断的外层查询中,来建模经典的“心理理论”(Theory-of-Mind)推理。在外层查询中,我们以“行动者在给定状态下采取了某个行动”为条件,询问:从某个目标先验分布中抽取的哪个目标最有可能通过上述推理过程导致了该行动的选择:
![]()
这对应于第14章以及Baker、Tenenbaum和Saxe(2007)所描述的“心理理论”(Theory-of-Mind)的贝叶斯逆向规划(Bayesian inverse planning)观点的一个基于抽样的简单版本。嵌套查询的形式允许将规划(planning)与逆向规划(inverse planning)的计算灵活地交织在一起,从而对多种行动者在广泛社会情境中的思维与行为进行推理。许多示例可见于基于Church的在线书籍中“关于推理的推理”(Inference about inference)一节(http://v1.probmods.org/inference-about-inference.html),或其后续使用WebPPL的版本。
另有两本著作更深入地探讨了使用概率程序对行动者建模(均基于WebPPL):
《使用概率程序建模行动者》( Modeling Agents with Probabilistic Programs ,Evans, Stuhlmüller, Salvatier, & Filan, 2017;https://agentmodels.org/)基于马尔可夫决策过程(MDPs)和部分可观测马尔可夫决策过程(POMDPs)构建了规划的PPL模型(见第7章),并将其用于建模人们对行动者目标、偏好和信念的直觉推理(作为贝叶斯逆向规划,见第14章),以及对有限理性行动者行为的预期和简单多智能体交互(如玩简单游戏)的建模。
《概率语言理解》( Probabilistic Language Understanding ,Scontras, Tessler, & Franke, 2017)采用PPL方法,将交际视为一种理性、目标导向的行动,通过理性言语行为(Rational Speech Act)模型来刻画语言理解——即对说话者交际意图的贝叶斯推理(见第16章)。
Zhi-Xuan、Mann、Silver、Tenenbaum和Mansinghka(2020)将贝叶斯逆向规划的概率编程扩展到更抽象的符号规划场景中,使用Gen概率编程语言(Cusumano-Towner等,2019)和规划领域描述语言(Planning Domain Description Language)来表示行动者的世界模型、目标和计划。Gen还支持对有限理性行动者近似规划算法的显式概率建模,从而使目标推断在行动者可能犯各种规划错误的情况下依然稳健。
当然,要构建充分的人类直觉心理学模型,还需要许多额外的组成部分——例如,行动者如何形成关于彼此的高阶信念、如何体验情绪,或如何进行道德判断。然而,研究者已经能够相当轻松地用概率编程语言表达心理理论的核心方面(尤其是广义的逆向规划框架),这充分展示了PLoT方法在此领域乃至更广泛范围内捕捉人类常识推理的潜力。将逆向规划方法扩展至对行动者情绪的推理(Houlihan, Kleiman-Weiner, Hewitt, Tenenbaum, & Saxe, 2023)、对社会角色与关系的交际推理(Radkani, Tenenbaum, & Saxe, 2022),以及其他丰富的社会认知推理,是当前人类认知的概率编程模型研究中最活跃、最令人兴奋的方向之一。
18.8 概念习得(Concept Acquisition)
到目前为止,我们已勾勒出一种将概念视为概率编程语言(PPL)中随机函数的观点,并将直觉理论视为相互关联的概念系统(或函数库)。我们也描述了这些直觉理论如何用于刻画人们用于理解世界的复杂因果知识。如果概念构成一个有用的(随机)函数库,那么概念学习是什么?
从例子中形成新概念本质上是一个归纳问题——在我们的情形中,即程序归纳(program induction)问题。这可以被形式化为对一组最能解释我们在世界中经验的概念进行贝叶斯推理:在条件“生成了我们所观察到的例子”下,最可能的新概念是什么?所假设的概念是在一种有效的思维语言中形成的,该语言基于迄今为止已习得的概念——即所有可通过组合底层PLoT及已定义函数符号而构成的表达式。我们可以将这些假设视为由一个高阶的“程序生成程序”(program-generating program)所产生的,即一个随机元程序(stochastic meta-program),它在我们的PLoT中生成可能解释给定观察例子的候选随机程序。
于是,概念学习就简化为一个标准的Church查询:在条件“该过程的输出(即由随机元程序生成的随机程序的输出)等于所观察到的例子”下,我们查询那些既可能由元程序生成、又满足该条件的PLoT中的符号表达式。
因此,将概念学习视为概率性程序归纳,在哲学和数学上是良好定义的。然而,在如此庞大的组合空间中进行推理极具挑战性,要完全实现这一愿景,仍需大量研究。尽管如此,该方法已在许多足够简单、可进行行为实验研究的归纳学习场景中取得成功,例如:
布尔范畴学习(Goodman等,2008b);
关系概念学习(Kemp, Goodman, & Tenenbaum, 2008a);
动作概念学习,如手写字符背后的绘图程序(Lake, Salakhutdinov, & Tenenbaum, 2015);
数概念学习(Piantadosi等,2012b);
列表例程学习(Rule等,即将发表);
语法表达式学习(Yang & Piantadosi, 2022);
时空序列学习(Mills, Cheyette, & Tenenbaum, 2023)。
第19章将深入探讨这项工作,包括多个贝叶斯程序学习的详细案例研究,以及最成功用于学习此类表达性表征的基于抽样的推理算法的具体示例。
当然,人类的概念学习并不总是、也不仅仅是归纳出一个最能解释一组观察例子的模型。PLoT观点恰好适合纳入更丰富的学习动态与机制。特别是,社会与交际因素(无论是否涉及自然语言经验)可发挥关键作用。Shafto、Goodman和Frank(2012)表明,在概念学习中对例子社会语境的推理——例如,由一位乐于助人的教师以交际方式生成的例子——可以强有力且理性地引导学习者超越例子本身进行泛化。
自然语言为概念形成提供了极其丰富的证据,尤其在儿童认知发展中:例如,Piantadosi等(2012a)建模了自然语言中的数词序列如何为儿童学习自然数概念提供关键输入。
PLoT为我们思考社会互动、语言习得与概念习得交汇处的各类“启动”(bootstrapping)现象(如句法与语义启动在动词学习中的作用,以及语用推理在量词学习中的作用)提供了一种强大框架。当然,要理解这些社会与语言因素如何与基于例子的归纳学习整合成完整的概念习得理论,仍需大量进一步研究;这也需要建立在通用的概率编程工具之上,例如用于建模语用语言理解的工具(Goodman & Stuhlmüller, 2013;Lassiter & Goodman, 2013),以及将自然语言意义表征以组合性和概率性方式锚定在基于PLoT的世界模型中以支持推理的框架(Goodman & Lassiter, 2015;Wong, Grand等,2023)。
对我们而言,关键在于:PLoT为我们提供了一种概念理论、一种将概念学习视为概率推理的方法,以及一个统一框架,用于建模人们对社会认知和语言意义的直觉理论,使我们能够以富有成效的方式探索这些交互作用。
需要注意的是,尽管PLoT的概念学习观强调组合性,但它并不排斥另一种观点:许多自然概念最初在心智中不过是未加分析的原子或占位符符号,其丰富内容是后来才获得的。引入此类占位符符号的动因可能来自自然语言(如听到一个新词)、来自自然类知识与具体例子的交互(如Margolis, 1998;Carey, 2015所建议),或其他解释性压力。随着学习者在新领域中接触更多例子并积累更广泛的经验,关于该概念实例与其他实体之间的因果关系、更深层的因果内容,以及与其他概念的联系,可以逐步、归纳地整合进函数定义的网络之中。
这种更丰富的归纳方法的一个重要含义是:概念学习可以改变某一领域中的有效思维语言(effective language of thought)——当习得的概念被作为原语(primitives)加入语言后,新的心智程序和新概念便可基于此进行组合。尽管这种新的有效语言在数学表达能力上与底层的通用PLoT(它为所有过去和未来的概念生成假设)相同,但特定的思想可能变得简洁得多——用更短的程序表达,从而在计算上更易处理。这具有诸多认知含义。特别是,随着有效思维语言的演化,它会形成一种不断演化的归...
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.