2026/10/17 0:00:53

分布外泛化(OOD)全解析:从ERM到因果不变性的技术路线与避坑指南

分布外泛化(OOD)全解析:从ERM到因果不变性的技术路线与避坑指南 简介这份资源是清华大学崔鹏等学者撰写的《分布外泛化(Out-Of-Distribution Generalization)》综述论文面向深度学习研究者、算法工程师及关注模型鲁棒性的高年级学生系统回应了训练与测试数据分布不一致时模型性能骤降这一核心难题。压缩包内仅含1个PDF文件约5.34MB即论文全文便于精读与归档。论文从OOD泛化问题的形式化定义切入将现有方法按学习流程划分为无监督表示学习、监督模型学习与优化策略三类并讨论因果推理、不变性学习、稳定学习及分布鲁棒优化之间的理论联系同时梳理常用数据集与评估指标最后给出未来研究方向。目前已有2740人学习下载适合希望快速建立OOD泛化知识框架、把握领域脉络并寻找研究切入点的读者参考。1. 分布外泛化为什么模型在测试集上“翻车”不是玄学一个在 ImageNet 上刷到 SOTA 的模型部署到真实场景后准确率可能直接掉到随机猜测水平——这不是段子是分布外泛化Out-of-Distribution Generalization简称 OOD领域反复验证过的现象。经典机器学习建立在 i.i.d. 假设之上训练数据和测试数据独立同分布。但现实里数据采集的时间、地点、设备、人群偏好都在变测试分布 Pte(X,Y) 几乎不可能等于训练分布 Ptr(X,Y)。一旦这个假设被打破ERM经验风险最小化会贪婪地吸收训练集中所有相关性——包括那些在测试分布中根本不成立的伪相关。模型越“拟合”训练集在分布偏移下崩得越彻底。这篇综述的价值在于它第一次把 OOD 泛化从定义、方法分类、理论联系到评估基准串成了一条完整链路而不是散落在各个子领域的零散技巧。搞懂这条链路才能理解为什么有些方法在特定 benchmark 上有效、换个场景就失效。2. 问题定义i.i.d. 假设到底在哪里断裂2.1 从 ERM 到 OOD 的数学表述经典监督学习的目标是找一个模型 fθ: X → Y使得在测试分布上的期望损失最小f*θ arg min_{fθ} E_{X,Y ~ Pte}[ℓ(fθ(X), Y)]ERM 的做法是用训练集上的平均损失去近似这个期望L_ERM (1/n) * Σ_{i1}^{n} ℓ(fθ(xi), yi)当 Ptr(X,Y) Pte(X,Y) 时大数定律保证 ERM 的解收敛到最优解。但 OOD 场景下 Ptr ≠ PteERM 的近似就失去了理论保证。更麻烦的是测试分布 Pte 在训练阶段是未知的——你没法用测试数据调参也没法做交叉验证。这就把问题从“优化”变成了“在未知分布偏移下做决策”。2.2 协变量偏移最常见也最可分析的偏移形式综述把协变量偏移Covariate Shift作为主要讨论对象定义为Ptr(Y|X) Pte(Y|X) 且 Ptr(X) ≠ Pte(X)意思是标签生成机制不变但输入特征的边缘分布变了。比如训练集里“草地上的牛”占 90%“沙滩上的牛”占 10%测试集里反过来。P(Y|X) 没变——牛还是牛——但 P(X) 变了模型如果学到“绿色背景→牛”这种伪相关就会在沙滩场景下翻车。协变量偏移之所以重要是因为它允许我们在不假设测试分布具体形式的前提下通过多环境数据来约束模型。综述里提到的领域泛化、因果学习、稳定学习本质上都在用不同方式处理协变量偏移。2.3 与领域适应的边界领域适应Domain Adaptation假设测试分布的部分信息已知——要么有标注的 Pte(X,Y)要么有无标注的 Pte(X)。有了这个先验就能用对抗训练、分布对齐等手段做理论保证的迁移。OOD 泛化更苛刻测试分布完全未知训练阶段连无标注测试数据都拿不到。这个区别决定了 OOD 方法必须依赖更强的假设——比如因果不变性、环境不变性——而不是简单的分布匹配。3. 方法分类三条技术路线的底层逻辑3.1 无监督表示学习把先验知识嵌入表征空间这条路线认为如果学到的表示本身就编码了数据生成过程中的不变因子那么下游分类器在分布偏移下会更鲁棒。具体分两支解耦表示学习Disentangled Representation Learning试图把数据中的变化因子分开比如把“物体形状”和“背景纹理”解耦。典型方法是 VAE 的变体通过 β-VAE 或 FactorVAE 对隐空间施加独立性约束。但解耦本身不保证 OOD 泛化——如果解耦后的因子仍然与标签有伪相关模型照样会走捷径。因果表示学习Causal Representation Learning更进一步要求学到的隐变量对应真实的因果变量。比如用结构因果模型SCM描述 X 和 Y 之间的生成过程然后通过干预或反事实推理来识别因果方向。这条路线理论优雅但实现上依赖较强的假设——比如因果变量之间无环、干预可观测——在真实高维数据上很难满足。3.2 监督模型学习改架构、改训练策略这条路线不碰表示学习直接在模型层面做文章。综述里列了三类因果学习Causal Learning的核心思想是找到跨环境不变的因果机制。比如用不变风险最小化IRM的思想要求模型在所有训练环境上的最优分类器一致。IRM 的损失函数可以写成# IRM 损失环境风险 梯度惩罚 def irm_loss(envs, model, lambda_penalty): risk sum(env_loss(env, model) for env in envs) / len(envs) grad_norm sum(torch.norm(torch.autograd.grad( env_loss(env, model), model.parameters(), create_graphTrue )[0]) ** 2 for env in envs) return risk lambda_penalty * grad_norm这里的lambda_penalty控制不变性约束的强度。env_loss是每个环境上的经验风险。梯度惩罚项迫使模型在各环境上的最优参数一致——如果某个特征只在特定环境有效梯度方向会冲突惩罚项就会变大。但 IRM 有个已知问题当环境数量少或环境间差异小时惩罚项可能退化为零模型又回到 ERM。稳定学习Stable Learning从选择偏差出发通过样本重加权来消除伪相关。核心是学一组样本权重 w(x)使得加权后的特征之间相互独立。这样即使测试分布变了特征间的伪相关也不会被模型利用。实现上通常用对抗训练或矩匹配来优化权重。领域泛化Domain Generalization直接用多领域数据训练要求模型在未见领域上表现好。常见策略包括领域对齐如 CORAL、MMD、元学习如 MLDG、数据增强如 MixStyle。但领域泛化的效果高度依赖领域划分的质量——如果训练领域覆盖不了测试领域的偏移方向再好的对齐也没用。3.3 优化策略直接构造鲁棒目标这条路线不关心模型结构或表示直接改优化目标。分布鲁棒优化DRO把 OOD 问题转化为一个 min-max 问题min_{fθ} max_{P ∈ Q} E_{P}[ℓ(fθ(X), Y)]其中 Q 是围绕训练分布的一个不确定性集合。如果 Q 定义为所有与训练分布 Wasserstein 距离小于 ρ 的分布就得到 Wasserstein DRO。ρ 越大鲁棒性越强但模型也可能过于保守。不变性优化则把不变性约束直接写进目标函数比如用方差惩罚项要求模型在不同环境上的风险方差最小。4. 理论连接因果视角下的统一框架4.1 不变性与因果机制的等价关系综述用因果推断的语言把不同方法串了起来。核心观察是如果 Y 由 X 中的因果特征决定且因果机制跨环境不变那么任何满足不变性约束的模型都必然依赖因果特征。IRM、稳定学习、因果表示学习本质上都在用不同方式逼近这个不变性。区别在于IRM 在模型输出层面约束稳定学习在样本权重层面约束因果表示学习在隐空间层面约束。4.2 环境划分的隐含假设所有 OOD 方法都依赖某种“环境”概念——训练数据被划分为多个环境模型要求跨环境不变。但环境怎么划分综述里没有给出标准答案。常见做法是按时间、地点、采集设备划分或者用聚类算法自动分组。环境划分的质量直接决定不变性约束的有效性如果环境划分本身就有偏学到的“不变性”可能只是另一种伪相关。4.3 评估基准与指标综述整理了 OOD 泛化的常用数据集和评估指标。数据集方面DomainBed、WILDS、OOD-Bench 是几个主要基准覆盖图像、文本、图数据等模态。评估指标上除了标准的准确率还强调最差环境准确率Worst-Group Accuracy和平均环境准确率。最差环境准确率更能反映模型在极端偏移下的鲁棒性——一个模型可能在平均准确率上很高但在某个困难环境上直接崩掉。5. 避坑与常见问题OOD 实践中的翻车记录5.1 环境数量太少导致不变性约束失效现象用 IRM 训练时训练损失正常下降但测试环境准确率跟 ERM 差不多甚至更差。原因IRM 的梯度惩罚项需要至少两个环境才能产生冲突信号。如果环境数量少或环境间差异小各环境的最优梯度方向一致惩罚项趋近于零模型退化为 ERM。解决增加环境数量或人为构造环境划分如按数据增强类型分组。如果无法增加环境考虑改用 DRO 或稳定学习它们对环境的依赖更弱。5.2 测试分布偏移方向与训练环境不匹配现象在 DomainBed 上刷到 SOTA换到真实业务数据后效果暴跌。原因DomainBed 的测试领域通常与训练领域共享某些底层特征如都是自然图像而真实业务的偏移可能来自完全不同的维度如传感器噪声、用户行为变化。训练环境覆盖不了测试偏移方向时不变性约束就失去了意义。解决先做偏移诊断——用简单的分布距离度量如 MMD、Wasserstein比较训练和测试数据的特征分布确认偏移主要来自哪个维度。如果偏移方向在训练环境中没有对应考虑引入领域知识做数据增强或特征工程。5.3 过度鲁棒导致欠拟合现象DRO 的 ρ 设得太大模型在所有环境上的准确率都下降包括训练环境。原因DRO 的 min-max 目标要求模型在最坏分布上也表现好。如果不确定性集合 Q 太大最坏分布可能远离真实数据流形模型为了“防御”这个不存在的分布而牺牲了正常性能。解决用验证集调 ρ从较小的值开始逐步增大观察最差环境准确率和平均准确率的权衡曲线。通常存在一个拐点超过后平均准确率下降速度超过最差准确率提升速度。5.4 伪相关特征在训练环境中占主导现象模型在训练环境上准确率 99%测试环境上掉到 60%但特征重要性分析显示模型主要依赖背景纹理而非物体形状。原因训练数据中背景与标签的伪相关太强ERM 会优先利用这个捷径。不变性约束虽然理论上能抑制伪相关但如果伪相关在多数训练环境中一致存在约束信号会被淹没。解决先做数据层面的去偏——比如用风格迁移做数据增强打破背景与标签的关联。或者在损失函数中显式加入对伪相关特征的惩罚项比如用对抗训练让特征提取器无法预测环境标签。5.5 评估指标选择不当掩盖真实问题现象模型在平均准确率上比 baseline 高 2%但在最差环境上低 10%。原因平均准确率会被简单环境的高分拉高掩盖模型在困难环境上的崩溃。OOD 场景下最差环境的表现往往比平均表现更重要。解决同时报告平均准确率和最差环境准确率并给出每个环境的详细结果。如果最差环境准确率低于随机猜测说明模型在该环境下学到了负迁移的特征需要回退到更保守的方法。6. 设计取舍OOD 泛化的边界与验证方法OOD 泛化领域有一个根本性的张力假设越强理论保证越漂亮但适用场景越窄。因果表示学习假设隐变量对应真实因果变量理论上能保证跨任意干预的泛化但真实高维数据上几乎无法验证这个假设。IRM 假设存在跨环境不变的最优分类器在环境划分合理时有效但环境划分本身没有理论指导。DRO 假设测试分布落在训练分布附近的一个球内ρ 的选择直接决定鲁棒性和保守性的权衡。我一般会这么理解OOD 方法的选择本质上是在先验知识的多少和泛化保证的强度之间做取舍。如果你对数据生成过程有较强的领域知识——比如知道哪些特征是因果的、哪些是伪相关的——那就用因果学习或稳定学习把知识编码进约束。如果领域知识弱但能拿到多个环境的数据IRM 或领域泛化是更务实的选择。如果连环境划分都不可靠DRO 至少能提供一个可调的鲁棒性下界。验证 OOD 方法是否真的有效不能只看 benchmark 上的数字。一个实用的做法是构造一个已知因果结构的合成数据集在合成数据上验证方法能否恢复因果特征。如果方法在合成数据上都失败在真实数据上的成功大概率是过拟合 benchmark。另一个做法是做偏移方向的外推测试在训练时故意留出一个偏移方向比如只训练白天数据测试夜间数据看模型能否泛化到未见偏移。如果方法只在见过的偏移方向上有效说明它学到的还是伪相关。从那以后我每次评估 OOD 方法都强制走一遍合成数据验证和偏移外推测试不再只看 DomainBed 的排行榜。希望帮到你。本文还有配套的精品资源点击获取