Skip to content

因果学习

一、核心洞见:相关不是因果

当今机器学习的绝大多数方法,本质上都在做同一件事:从数据中发现统计相关性。给定足够多的数据,模型能够精确地估计 \(P(Y|X)\),即"看到X时,Y出现的概率是多少"。但这里有一个根本性的问题:

相关性不等于因果性(Correlation does not imply causation)。

这个问题并非学术上的吹毛求疵。冰淇淋销量和溺水人数高度正相关,但禁止卖冰淇淋不会减少溺水。一个只学到统计相关性的模型,在面对分布偏移、新环境、需要干预决策的场景时,会系统性地犯错。

因果学习(Causal Learning) 的目标,正是让AI系统学习变量之间的因果关系,而不仅仅是统计关联。这一领域的思想根基来自 Judea Pearl,他因对因果推断的形式化贡献获得了2011年图灵奖。


二、因果层级:看、做、想

Pearl提出了一个深刻的分类框架,将对世界的认知分为三个层级,称为因果层级(Causal Hierarchy)

层级 名称 典型问题 数学形式
第一层 关联(Association) 看到X,Y会怎样? \(P(Y \mid X)\)
第二层 干预(Intervention) 如果我主动改变X,Y会怎样? \(P(Y \mid do(X))\)
第三层 反事实(Counterfactual) 如果当时X不同,Y会怎样? \(P(Y_x \mid X', Y')\)

第一层:关联(看)

这是纯粹的观察层面。"看到病人吃了药,病好了",\(P(\text{康复} \mid \text{吃药})\) 可能很高。但这并不意味着药有效——也许只有轻症病人才会选择吃药,重症病人直接住院了。观察数据中的相关性被混杂因子(Confounders, 混杂因子) 污染了。

当前绝大多数机器学习模型,包括大语言模型,都工作在这一层。它们极其擅长捕捉数据中的统计模式,但无法区分真正的因果机制和虚假的相关性。

第二层:干预(做)

干预层面回答的是:如果我主动改变某个变量,结果会怎样?这里的关键符号是 \(do(X)\),它表示的不是"观察到X发生了",而是"我强制让X发生"。

\(P(Y \mid X)\)\(P(Y \mid do(X))\) 可以是完全不同的。

经典例子:观察数据中,带雨伞的人遇到雨天的概率很高——\(P(\text{下雨} \mid \text{带伞})\) 很大。但如果你强制每个人都带伞(\(do(\text{带伞})\)),天气不会因此改变。带伞和下雨有共同原因(天气预报说要下雨),但带伞不会导致下雨。

干预推理是医学、经济政策、工程控制等领域的核心需求。随机对照实验(RCT)正是人类用来获取干预层面知识的黄金方法。

第三层:反事实(想)

这是因果推理的最高层级。反事实问的是:在已经发生的事实基础上,如果某个条件不同,结果会怎样?

"这个病人吃了药后康复了。如果他当时没吃药,他还会康复吗?"

反事实推理要求我们不仅理解因果机制,还能在心中"回退"到某个时间点,改变条件,然后重新"推演"整个过程。这是人类日常思维中极为常见的能力——后悔、规划、归责、学习教训,都依赖反事实推理。

Pearl的核心论断是:

当前的机器学习基本停留在第一层。人类智能在三个层级上都能运作。要实现类人智能,必须攀升因果层级。


三、结构因果模型:因果推理的形式语言

结构因果模型(Structural Causal Model, SCM, 结构因果模型) 是Pearl提出的因果推理的数学框架。一个SCM由三部分组成:

  1. 有向无环图(DAG):节点代表变量,有向边代表因果关系(\(X \rightarrow Y\) 表示X是Y的直接原因)
  2. 结构方程:每个变量由其父节点和噪声项决定,\(Y = f(X, U)\)
  3. 外生变量的分布:噪声项 \(U\) 的概率分布

SCM的强大之处在于,它能统一处理因果层级的三个层面:

  • 关联:从DAG导出的条件独立性关系
  • 干预:通过 do-calculus 和图手术(graph surgery)来计算干预效果
  • 反事实:通过结构方程的"溯因-干预-预测"三步法

关键技术概念

混杂因子(Confounders):同时影响原因变量和结果变量的第三方变量。混杂因子是因果推断最主要的障碍——它让观察到的相关性不等于因果效应。

后门准则(Backdoor Criterion):Pearl给出的判断标准——如果我们能找到一组变量Z来"阻断"从X到Y的所有后门路径(即混杂路径),那么在Z上进行条件化就能从观察数据中恢复因果效应。

前门准则(Frontdoor Criterion):当混杂因子无法直接测量时的替代策略。通过一个中间变量M(X影响M,M影响Y,且M不受混杂因子直接影响),仍然可以识别因果效应。

do-calculus:Pearl发明的一组推理规则,可以系统性地将包含 \(do\) 算子的表达式转化为可从观察数据中估计的表达式。do-calculus是完备的——如果一个因果效应在理论上可以从观察数据中识别,do-calculus一定能推导出来。


四、因果学习为何对类人智能至关重要

鲁棒泛化

统计模型在训练分布上表现很好,但一旦分布偏移,性能就会骤降。因果模型不同:

因果机制是模块化的,跨环境保持不变。

如果模型学到的是"按下开关导致灯亮"这个因果机制,那么不管房间的颜色、时间、天气怎么变,这个机制都成立。而一个只学到统计相关性的模型,可能把"天黑了"和"灯亮了"关联起来,换一个白天按开关的场景就会失效。

样本效率

知道因果结构,极大地缩小了假设空间。如果你知道温度只取决于加热功率和散热条件,你就不需要考虑房间颜色、背景音乐等无关变量。这正是人类学习如此高效的原因之一——我们天生倾向于寻找因果解释,而非记忆所有的统计规律。

反事实推理

规划和想象的本质就是反事实推理:"如果我走这条路会怎样?如果我选择另一个方案呢?" 没有反事实推理能力,智能体就只能靠试错,无法在心中预演不同的行动方案。

可迁移性

因果机制具有模块性(Modularity):改变一个机制不影响其他机制。这意味着因果知识可以在不同环境之间迁移和复用,而统计模型在新环境中往往需要重新训练。


五、因果表示学习:连接深度学习与因果推断

传统因果推断有一个默认假设:因果变量是已知的、可直接观测的。但在现实中,我们面对的往往是原始的像素、音频波形、文本序列——高级因果变量(如"物体位置"、"光照条件"、"用户意图")隐藏在低级数据之中。

因果表示学习(Causal Representation Learning) 正是 Yoshua BengioBernhard Scholkopf 等人推动的方向,旨在解决这个桥接问题:

如何从低级观测数据中自动发现高级因果变量及其因果关系?

这个问题的核心困难在于可识别性(Identifiability):仅从观测数据中,我们能在多大程度上唯一地恢复出真正的因果结构?无约束的情况下,答案通常是悲观的——存在无穷多个等价的因果模型可以解释同一份数据。

近年来的关键进展是发现,在适当的假设下(如数据来自多个不同的环境、或存在时间结构、或满足特定的独立性条件),因果结构是可以被识别的。这为"从数据中学习因果结构"提供了理论基础。


六、GFlowNets:将因果图搜索变成生成问题

GFlowNets(Generative Flow Networks, 生成流网络)Yoshua Bengio 团队提出的一类新型生成模型,它在因果学习中扮演着独特的角色。

传统的因果结构学习面临一个组合爆炸问题:\(n\) 个变量可能形成的DAG数量随 \(n\) 超指数增长。贪心搜索容易陷入局部最优,MCMC采样效率低下。

GFlowNets的核心思想是把DAG的搜索问题转化为一个序列生成问题

  1. 把构建一个DAG看作一系列"添加边"的动作
  2. 训练一个生成模型,使其按照与后验概率(或奖励)成正比的概率来生成DAG
  3. 生成过程满足"流守恒"条件,确保采样的正确性

GFlowNets的独特之处在于它同时连接了三个领域

领域 连接方式
强化学习 将DAG生成看作序列决策问题
生成模型 学习一个DAG上的生成分布
能量基概率建模 目标分布可以用能量函数定义

这种方法的优势在于:它不只给出一个"最优"的因果图,而是给出因果图上的完整后验分布——这对于表达因果结构的不确定性至关重要。


七、与其他类人智能方向的连接

因果学习与世界模型

一个真正的世界模型,必须支持干预推理:

"如果我做了X,世界会怎样变化?"

这正是因果层级第二层的核心能力。仅仅能预测"下一步会发生什么"是不够的——世界模型还需要能回答"如果我改变了某个条件,下一步会怎样"。没有因果结构的世界模型,本质上只是一个高级的模式匹配器,无法支持规划和决策。

因果学习与伪因果问题

在前序笔记中我们讨论过捷径学习(Shortcut Learning)伪因果:模型把统计相关性误当作因果机制。因果学习正是对抗伪因果的根本途径——如果模型能区分"X和Y一起出现"与"X导致Y",它就不会被虚假相关性所欺骗。

因果学习与基础模型

2025年的前沿趋势是将因果方法与基础模型相结合。大语言模型拥有丰富的世界知识,但这些知识是以统计相关性的形式存储的。如何将因果推理能力注入基础模型,或者利用基础模型的知识来辅助因果发现,正成为一个活跃的研究方向。


八、关键挑战与开放问题

可识别性问题

仅从观察数据中,何时能唯一恢复因果结构?

这是因果表示学习的核心理论问题。没有可识别性保证的因果学习方法,可能学到的是错误的因果结构。近年来在非线性ICA、多环境学习等框架下取得了重要进展,但完全一般性的可识别性条件仍然是开放的。

规模化挑战

现实世界的因果系统可能涉及成千上万个变量,DAG空间的搜索代价极高。如何将因果发现算法扩展到大规模、高维数据,是实际应用的瓶颈。

与深度学习的深度整合

因果推断和深度学习目前在很大程度上仍是两个相对独立的社区。因果方法通常假设变量已知且有限,深度学习处理的是高维原始数据。真正打通两者,需要因果表示学习领域的进一步突破。


九、逻辑链

  1. 当前ML主要在因果层级的第一层(关联)工作,人类智能在三个层级上都运作。
  2. SCM提供了形式化的因果推理框架,统一处理关联、干预、反事实。
  3. 因果学习带来鲁棒泛化、样本效率、反事实推理和可迁移性——这些都是类人智能的关键能力。
  4. 因果表示学习试图从原始数据中发现因果变量,是连接深度学习与因果推断的桥梁。
  5. GFlowNets将因果图搜索转化为生成问题,同时连接了RL、生成模型和能量基建模。
  6. 真正的世界模型必须支持干预推理,因果结构是世界模型的核心组件。
  7. 可识别性是因果学习的根本理论挑战——不解决可识别性,因果发现就缺乏保证。

评论 #