我们是如何如此迅速地学习新概念的?一个孩子看一两次“击掌” (high-five) ,就能泛化到“击低掌” (low-five) 。一个研究人员听说“小样本提示” (few-shot prompting) ,就能迅速领会其核心思想。从“1, 4, 16, 64”,我们能立即推断出模式是“4的幂”。这种从少量具体示例中归纳出通用规则的能力——一个称为*归纳 *(induction) 的过程——是人类智能的基石。我们能毫不费力地在几乎无限的概念范围内完成这一过程。
对于人工智能而言,这仍然是一个巨大的挑战。机器学习模型通常需要海量数据,而且它们的泛化能力可能很脆弱。这种差距凸显了构建智能系统的一个核心矛盾:** 我们如何像人类那样在一个庞大且富有表达力的概念空间中进行搜索,而不被评估所有概念所需的计算量压垮?**
康奈尔大学最近的一篇论文《通过自然语言上的贝叶斯推理实现类人小样本学习》 (Human-like Few-Shot Learning via Bayesian Reasoning over Natural Language) 提出了一种颇具吸引力的方法。论文认为,秘诀可能在于一种人类独有的能力: 用自然语言思考。作者引入了一个模型,该模型通过内部“自言自语”来学习新概念——用英语生成假设,然后利用贝叶斯推断来决定哪个假设最能解释数据。这种方法结合了语言的表达能力与严谨的概率推理,创造出一个既能高效学习、又能捕捉人类判断细微之处的模型。
贝叶斯大脑与规模问题
归纳的核心在于管理不确定性。如果你看到数字16作为一个示例,其背后的概念可能是“2的幂”、“平方数”、“偶数”,甚至是“只包括数字16和97”的规则。
一个强大的推理建模方式是贝叶斯定理:
\[ p(C|D) \propto p(D|C) \, p(C) \]其中:
- \( p(C|D) \) — 后验概率: 在看到数据 \( D \) 后对概念 \( C \) 的信念;
- \( p(D|C) \) — 似然: 如果 \( C \) 是真实概念,我们看到数据 \( D \) 的可能性;
- \( p(C) \) — 先验概率: 在看到数据前对 \( C \) 的初始信念,代表我们对某类解释的偏好。
如果我们将概念视为计算机程序,这就变成了贝叶斯程序学习 (BPL) ——用特定领域的编程语言 (DSL) 来表达概念,并推断出与数据匹配的程序。BPL很强大,但需要为每个领域设计一个DSL,并进行耗时且昂贵的搜索。
另一种方法——**潜在语言 **(Latent Language) ——跳过DSL,直接使用自然语言描述。给定一些示例,它会搜索一个有助于神经网络解决任务的英文描述——但通常只找到一个“最佳”描述,缺乏完整贝叶斯模型所能提供的丰富不确定性表示。
康奈尔大学的方法介于两者之间: 保留贝叶斯框架,但使用自然语言作为假设空间,并利用现代大型语言模型 (LLM) 高效地在其中搜索。
核心方法: 与贝叶斯定理的“一场对话”
该模型体现了一种双过程推理风格,类似于卡尼曼的“快思慢想”理论:
- 快速的、自下而上的过程迅速提出假设;
- 较慢的、自上而下的过程权衡并评估这些假设。
步骤 1: 提出假设 —— “快脑”
所有能用英语表达的概念集合是无限的,所以我们无法一一检查。模型使用一个提议分布 \( q(C \mid X_{1:K}) \),根据观测到的样例 \( X_{1:K} \),生成少量高质量的候选假设。
这正是像 GPT-4 这样的LLM发挥作用的地方: 输入如 16, 8, 2, 64
,它可能提出的概念包括:
- “a power of two” (2的幂)
- “divisible by 2” (能被2整除)
- “a multiple of 8” (8的倍数)
- “numbers less than 100” (小于100的数)
这就像直觉的“灵光一闪”——将无限的可能性缩小到几十个有前景的选项。
图 1: 作为贝叶斯网络的模型。自然语言概念 \( C \) 被确定性地翻译成一个程序,然后该程序用来评估数据 \( X_k \)。提议分布 \( q \) 根据观测数据提出概念。
步骤 2: 重新加权假设 —— “慢脑”
给定候选假设集合 \( \{C^{(1)}, \dots, C^{(S)}\} \),模型为每个假设计算权重:
\[ \tilde{w}^{(C)} = p(C) \, p(X_{1:K} \mid C) \]这些权重经归一化后总和为1。高权重代表既*先验合理 (高 \( p(C) \)) 、又与数据吻合度高 *(高 \( p(X_{1:K} \mid C) \)) 的概念。
关键之处在于: 为了评估似然 \( p(X|C) \),模型使用另一个LLM将每个英文描述翻译成Python函数,然后在数据上执行该程序。
步骤 3: 学习先验 —— 类人偏好
该方法的一个主要创新是调整先验 \( p(C) \) 以反映人类的直觉偏好。作者们从一个预训练语言模型开始,在其基础上加入一个小型线性层,用来预测行为实验中的真实人类判断。
优化目标是匹配将测试项标记为属于该概念的人类比例 \( r \):
[ \arg\max_{\theta} \sum_{(X_{1:K}, X_{\text{test}}, r)} r \log p_{\theta}(X_{\text{test}} \in C \mid X_{1:K})
- (1-r) \log\big(1 - p_{\theta}(X_{\text{test}} \in C \mid X_{1:K})\big) ]
这样的调优使模型更偏好于人类认为简单、自然且有说服力的概念。
实验 1: 数字游戏
数字游戏是一个经典的归纳实验: 给定几个遵循隐藏规则的数字样例,评估其他数字符合该规则的可能性。
例如,仅给出“16”时,人们可能认为多种规则合理 (“2的幂”、“平方数”,甚至“小于20的数”) ,形成分级概率。而当看到“16, 8, 2, 64”时,几乎所有人都会非常确信这是“2的幂”。
图 2: 在不同训练样例下,模型预测与人类判断的对比。模型捕捉了细微的不确定性和明确的后验信念。
性能以 \( R^2 \) 衡量——即采样的假设数量增加时,与人类评分的一致程度。
图 3: 与人类评分的拟合度 vs. 采样预算。调优先验模型 (蓝色) 仅用100个样本就达到 \( R^2 \approx 0.95 \),优于GPT-4、DreamCoder和Latent Language基线。
主要发现:
- 调优先验取胜: 仅用约100个样本即可实现近乎完美的拟合;
- 自然语言重要性: 将Python代码作为假设空间会降低性能;
- 基线表现落后: 单独使用GPT-4和DreamCoder (即便有10,000个假设) 也不如该方法。
实验 2: 学习复杂逻辑概念
为了超越简单数学概念,作者让模型学习关于形状的逻辑规则。
参与者会看到几批物体 (不同颜色、形状和大小) ,部分物体被标记为“wudsy”。隐藏规则可能是:
- 简单规则: “绿色的物体”
- 命题规则: “是圆形,除非它是蓝色的”
- 关系规则: “批次中该形状最大的一件”
图 4: 来自[55]的逻辑概念学习实验设置。物体有颜色、大小和形状,部分为“wudsy”。
模型在此任务中被调整为在线学习: 在每一批数据中生成新的提案,并执行贝叶斯更新。它与一个强大的、手工打造的BPL基线进行比较,该基线使用逻辑语法和数十亿次MCMC提案。
图 5: 与人类反应的一致性 vs. 每批样本数。调优先验模型优于GPT-4和BPL基线。
在每批仅用100个提案的情况下,模型就解释了人类学习曲线中 81% 的方差——略微超过庞大的BPL系统。在复杂概念实验中,调优先验尤为重要,因为复杂规则可以用多种不同的语言表述。
图 6: A. 模型与人类有时会学到同样的错误规则,揭示了共同的归纳偏好。C. 任务准确率接近人类水平。D. 能学习BPL假设空间之外的新概念。
灵活性优势: 对两个新概念进行测试——“具有多数颜色的物体”和“具有最少见颜色的物体”——人类均能快速掌握;BPL基线由于缺少必要原语无法表示这些概念,基于语言的贝叶斯模型则可轻松处理。这突显了语言带来的根本优势: 它提供了一个巨大且可组合的概念库,无需人工枚举。
结论: 用语言思考
该工作为类人归纳提供了一个合理解释:
- 快速的生成步骤用自然语言提出解释;
- 较慢的贝叶斯步骤用明确的先验和似然评估假设;
- 语言提供灵活、可组合的假设空间;
- 贝叶斯推理约束并理顺LLM生成的思路。
核心要点
- 自然语言作假设空间: 优于僵化DSL,与人类概念结构高度一致;
- 为LLM包裹贝叶斯框架: 让强大但不可预测的生成器具备理性;
- 根据人类判断调优先验: 有效地将人类归纳偏好注入AI系统。
尽管这并非涵盖所有人类认知的完整模型,但对于抽象符号推理,它连接了计算层目标与算法层过程——提供了一个既高效又心理学上合理的理性过程模型。
结合贝叶斯推断的永恒原理与大型语言模型的现代能力,这一方法不仅揭示了我们如何从少量信息中学到如此之多——也为创造能做到同样事情的机器指明了道路。