Out-of-Distribution (OOD) 泛化研究综述
1. OOD泛化的定义与挑战
1.1 问题定义
独立同分布(IID)假设的局限性
传统监督学习基于一个核心假设:训练数据和测试数据服从相同的统计分布(Independent and Identically Distributed, IID)。在数学上,这表示:
在经典的经验风险最小化(ERM)框架下:
然而,现实世界的应用场景中,这个假设往往无法成立。测试数据的分布可能由于时间演变、空间变化或采样偏差等因素而偏离训练分布。
OOD泛化的正式定义
Out-of-Distribution(OOD)泛化问题可以定义为:
在训练阶段,模型只能访问来自源分布 的数据;在测试阶段,模型需要泛化到与训练分布不同的未知目标分布 。
这种设定下,,且 在训练时完全未知。
1.2 分布偏移的类型
| 类型 | 描述 | 数学表示 |
|---|---|---|
| 协变量偏移 (Covariate Shift) | 特征分布发生变化 | , $P(Y |
| 概念偏移 (Concept Shift) | 条件概率分布变化 | $P_{tr}(Y |
| 联合偏移 (Joint Shift) | 两者都发生变化 |
1.3 核心挑战
1.3.1 快捷学习 (Shortcut Learning)
快捷学习是OOD泛化的核心挑战之一。当模型面临多个可用于预测的特征时,它们往往倾向于依赖最容易学习的特征(即”快捷”),而非真正具有因果关系的特征。1
快捷的典型表现:
- 图像分类器可能依赖背景纹理而非物体本身
- 文本分类器可能依赖特定的关键词而非语义
- 依赖训练数据中的虚假相关性(spurious correlations)
快捷与相关概念的联系:
| 术语 | 描述 | 上下文 |
|---|---|---|
| Clever Hans行为 | 模型给出正确答案但基于错误原因 | 心理学起源 |
| 虚假相关 | 训练数据中的偶然关联 | 统计学 |
| 混杂因素 | 混淆因果关系的变量 | 因果推理 |
| 偏差 | 系统性误差 | 统计学/ML |
1.3.2 训练-测试性能差距
研究表明,当面临严重的分布偏移时,仅基于平均训练误差优化的模型可能表现极差,甚至不如随机猜测。这是因为模型贪婪地吸收了所有数据相关性(包括虚假相关)来提高预测精度。
2. 主要方法分类
根据学习方法在整体学习流程中的位置,OOD泛化方法可以分为三大类:
┌─────────────────────────────────────────────────────────────────────┐
│ OOD 泛化方法分类 │
├─────────────────────────────────────────────────────────────────────┤
│ 1. 无监督表示学习 │
│ ├── 无监督领域泛化 (Unsupervised Domain Generalization) │
│ └── 解耦表示学习 (Disentangled Representation Learning) │
├─────────────────────────────────────────────────────────────────────┤
│ 2. 监督模型学习 │
│ ├── 不变性表示学习 │
│ │ ├── IRM (Invariant Risk Minimization) │
│ │ ├── Group DRO │
│ │ └──环境推断方法 │
│ ├── 因果学习方法 │
│ │ ├── 因果表示学习 │
│ │ └── 结构因果模型 │
│ └── 数据增强策略 │
│ ├── Mixup及其变体 │
│ └── 选择性增强 (LISA) │
├─────────────────────────────────────────────────────────────────────┤
│ 3. 优化方法 │
│ ├── 分布鲁棒优化 (DRO) │
│ │ ├── Wasserstein DRO │
│ │ ├── f-散度 DRO │
│ │ └── CVaR-DRO │
│ └── 稳定学习 (Stable Learning) │
└─────────────────────────────────────────────────────────────────────┘
3. 不变性学习 (Invariant Risk Minimization, IRM)
3.1 核心思想
IRM由Arjovsky等人于2019年提出,其核心思想是:在所有训练环境中表现良好的预测器,其在未见过的测试环境中也能表现良好。2
IRM背后的直觉来自因果学习的洞察:真正具有因果关系的特征在不同的数据生成环境下是不变的,而虚假相关的特征则会在不同环境下发生变化。
3.2 数学形式化
给定 个训练环境 ,每个环境有自己的数据分布 。IRM的目标是找到一个数据表示 和一个分类器 ,使得:
- 在每个环境下,分类器 都是该环境下 最优的线性分类器
- 这种最优性在所有环境下是一致的
IRM约束可以形式化为:
其中 是环境 下的风险函数。
IRMv1惩罚项(实际可计算的近似):
3.3 IRM的实现
# IRM的PyTorch伪代码实现
class IRM():
def __init__(self, model, penalty_weight=1e4):
self.model = model
self.penalty_weight = penalty_weight
def irm_penalty(self, logits, y, weights):
"""计算IRM惩罚项"""
gradient = torch.autograd.grad(
losses.mean(),
weights,
create_graph=True
)[0]
return (gradient ** 2).sum()
def forward(self, x, y, env_weights):
"""前向传播计算IRM损失"""
logits = self.model(x)
losses = F.cross_entropy(logits, y, reduction='none')
weighted_losses = env_weights * losses
# 计算ERM损失
erm_loss = weighted_losses.mean()
# 计算IRM惩罚项
penalty = self.irm_penalty(logits, y, env_weights)
return erm_loss + self.penalty_weight * penalty3.4 IRM的局限性与改进
已知的局限性:
- 非线性IRM的计算困难:完整的非线性IRM约束在实践中难以优化
- 与训练可扩展性的矛盾:深度学习理论强调大模型的重要性,但IRM在大模型上可能失效
- 可能捕获”错误”的不变性:在某些简单问题上,IRMv1可能学习到自然但非期望的不变性
改进方向:
| 方法 | 论文 | 核心贡献 |
|---|---|---|
| Bayesian IRM (CVPR 2022) | BIRM | 结合贝叶斯推断处理不确定性 |
| Sparse IRM | ICML 2022 | 稀疏不变性约束 |
| Ensemble IRM | Ahuja et al. | 博弈论视角的IRM |
4. 数据增强策略
4.1 Mixup及其变体
Mixup是最常用的数据增强策略之一,通过线性插值生成虚拟样本:
其中 。
Mixup的局限性:
- 混合标签可能导致训练信号模糊
- 可能损害OOD检测性能(标签平滑和mixup会产生相反效果)
- 在回归任务中,混合标签问题更为严重
4.2 选择性增强 (LISA)
LISA(Learning Invariant Predictors with Selective Augmentation)通过选择性插值避免标准Mixup的问题。3
LISA的两种策略:
- 标签内增强 (Intra-label LISA):插值具有相同标签但来自不同域的样本
- 目标:消除域相关的虚假相关
- 域内增强 (Intra-domain LISA):插值来自相同域但不同标签的样本
- 目标:促进不变预测器的学习
def lisa_loss(model, x, y, domain):
"""
LISA损失函数的简化实现
"""
lambda_ = torch.rand(1).item()
# 标签内增强:相同标签,不同域
intra_label_mask = (y.unsqueeze(0) == y.unsqueeze(1))
for label in torch.unique(y):
label_mask = (y == label)
domains = domain[label_mask]
if len(torch.unique(domains)) < 2:
continue
# 随机选择不同域的样本对
...
# 域内增强:相同域,不同标签
intra_domain_mask = (domain.unsqueeze(0) == domain.unsqueeze(1))
# 计算混合损失
mixed_x = lambda_ * x[i] + (1-lambda_) * x[j]
mixed_y = lambda_ * y[i] + (1-lambda_) * y[j]
return F.cross_entropy(model(mixed_x), mixed_y)4.3 其他增强策略
| 方法 | 描述 | 适用场景 |
|---|---|---|
| C-Mixup | 专门为回归任务设计的Mixup变体 | 回归 |
| CutMix | 用一个样本的块替换另一个样本的对应区域 | 图像分类 |
| Multiple Input Mixup | 多输入混合,同时用于OOD检测和泛化 | 检测+泛化 |
5. 领域泛化方法 (Domain Generalization)
5.1 问题设定
领域泛化假设训练数据来自多个异构的源域,目标是学习一个能在未见过的目标域上表现良好的模型。
5.2 方法分类
5.2.1 基于表示学习的方法
解耦表示学习 (Disentangled Representation Learning)
核心思想:将数据分解为因果因素和虚假因素,只使用因果因素进行预测。
β-VAE 是经典的解耦方法:
其中 控制解耦强度。
因果VAE (CausalVAE) 进一步引入因果结构:
5.2.2 基于元学习的方法
元学习通过在多个领域上训练,使模型学会”如何学习”,从而在未见领域上快速适应。
Model-Agnostic Meta-Learning (MAML) 的领域泛化变体。
5.2.3 自监督领域泛化
DARLING 等方法利用大规模无标注数据学习可泛化的表示:
- 不依赖ImageNet预训练的偏见
- 通过对比学习捕获领域无关特征
6. 分布鲁棒优化 (Distributionally Robust Optimization, DRO)
6.1 核心框架
DRO的核心思想是:优化在最坏情况分布下的性能,而非平均性能。4
通用DRO公式:
其中 是不确定性集合(ambiguity set),包含经验分布及其邻域:
6.2 不确定性集合的类型
6.2.1 Wasserstein距离
特点:
- 几何解释清晰
- 支持对抗样本生成
- 计算复杂度较高(需要优化求解器)
6.2.2 f-散度族
包括KL散度、散度、全变差距离等:
特点:
- 计算相对高效
- 可转换为凸优化问题
- 对极端偏移敏感
6.2.3 CVaR-based DRO
条件风险价值(CVaR)度量最坏 比例样本的损失:
6.3 DRO的实现库
dro 是最新的Python库,支持14种DRO公式和9种模型骨架:
| 类别 | 支持的方法 |
|---|---|
| 精确优化 | WDRO, χ²-DRO, KL-DRO, CVaR-DRO, TV-DRO, MMD-DRO |
| 近似优化 | 神经网络DRO, 树模型DRO |
| 混合方法 | Sinkhorn-DRO, HR-DRO, MOT-DRO |
from dro import LinearDRO
import dro.src.data.dataloader_classification as data_loader
# 加载数据
train_data, test_data = data_loader.classification_basic(n=1000, p=20)
# 训练Wasserstein DRO模型
model = LinearDRO(
loss_type='logistic',
dro_type='WDRO',
dro_params={'epsilon': 0.1}
)
model.fit(train_data['X'], train_data['y'])7. 因果学习方法
7.1 因果视角下的OOD泛化
从因果视角看,分布偏移来源于干预(intervention)或混杂因素(confounder)。
结构因果模型 (SCM):
其中 是预测特征, 是外生变量。
7.2 因果特征分离 (Causal Feature Separation)
核心思想:显式分离因果特征和虚假特征,只使用因果特征进行预测。
关键挑战:
- 因果特征的识别
- 因果结构的先验知识获取
- 非线性因果关系的建模
7.3 倾向性得分方法
通过估计倾向性得分来控制混杂偏差:
其中 是域/环境指示变量。
8. 理论分析
8.1 不变性理论
核心定理:如果一个预测器在所有环境下都是最优的,那么它必然依赖于不变特征。
这为IRM等方法提供了理论支撑:当且仅当预测器使用不变(因果)特征时,才能在分布偏移下保持最优性能。
8.2 泛化界分析
对于领域泛化,典型的泛化界可以表示为:
其中 是领域数量, 是样本量。
8.3 因果学习理论
因果推断理论提供了分布偏移下学习的可能性条件:
- 不变性条件:因果机制在干预下保持不变
- 可识别性条件:能从观测数据中恢复因果关系
- 稀疏性条件:因果图通常是稀疏的
9. 2024-2025年最新进展
9.1 Shortcut Learning研究
论文:Navigating Shortcuts, Spurious Correlations, and Confounders (2024)1
主要贡献:
- 统一了shortcut learning的术语体系
- 建立了shortcut与因果、偏差、安全的联系
- 提出了shortcut检测和缓解的系统框架
9.2 CLIP驱动的领域泛化
论文:CLIP-Powered Domain Generalization and Adaptation: A Comprehensive Survey (2025)
主要贡献:
- 利用大规模视觉-语言预训练模型
- CLIP提供了丰富的语义表示
- 减少对特定领域标注数据的依赖
9.3 时间序列OOD泛化
论文:Out-of-Distribution Generalization in Time Series: A Survey (2025)
主要挑战:
- 非平稳学习动态
- 多尺度时间依赖
- 潜在因素的多样性
9.4 图神经网络OOD泛化
论文:A Survey of Out-of-Distribution Generalization for Graph Machine Learning
关键发现:
- 因果驱动方法在图数据上效果显著
- 图结构信息可以帮助识别虚假相关
9.5 Neural Collapse与OOD检测
论文:Controlling Neural Collapse Enhances Out-of-Distribution Detection and Transfer Learning (2025)
核心发现:
- Neural Collapse程度与OOD检测性能存在关联
- 控制类表示的结构可以同时改善OOD检测和迁移学习
9.6 OOD评估方法
论文:A Survey on Evaluation of Out-of-Distribution Generalization (2024)
关注点:
- 现有评估方法的系统性分析
- 提出更可靠的OOD泛化评估协议
10. 基准数据集
| 数据集 | 描述 | 领域 |
|---|---|---|
| ColoredMNIST | MNIST数字+颜色标签关联 | 图像 |
| PACS | 跨艺术风格的图像分类 | 图像 |
| DomainNet | 多域图像识别 | 图像 |
| CMNIST | 相关vs不相关特征设置 | 合成 |
| NICO++ | 上下文变化的图像分类 | 图像 |
| Waterbirds | 背景-主体虚假相关 | 图像 |
11. 实践建议
11.1 方法选择指南
| 场景 | 推荐方法 |
|---|---|
| 有多域训练数据 | IRM, Group DRO, 环境推断 |
| 仅有单域数据 | 数据增强、因果推断、表示解耦 |
| 计算资源有限 | ERM + 简单增强、标签平滑 |
| 高风险应用 | DRO、集成方法 |
11.2 实施注意事项
- 环境标签的价值:如果有环境/域标签,优先使用环境感知方法
- 增强的权衡:某些增强可能损害OOD检测能力
- 评估的完整性:同时评估ID和OOD性能,避免一个指标的提升牺牲另一个
12. 未来研究方向
- 理论-实践差距:减少理论保证与实际效果之间的差距
- 大规模预训练:探索大模型(如LLM、CLIP)的OOD能力
- 自适应方法:根据测试分布动态调整策略
- 可解释性:理解为什么某些方法有效
- 组合方法:结合多种方法的优势
参考文献
相关资源:
- OOD泛化方法汇总:http://out-of-distribution-generalization.com
- DRO Python库:https://python-dro.org
- IRM实现:https://github.com/reiinakano/invariant-risk-minimization
- NeurIPS 2024 OOD Tutorial:https://neurips.cc/virtual/2024/tutorial/99523
Footnotes
-
Steinmann et al. “Navigating Shortcuts, Spurious Correlations, and Confounders: From Origins via Detection to Mitigation.” arXiv:2412.05152, 2024. ↩ ↩2
-
Arjovsky et al. “Invariant Risk Minimization.” arXiv:1907.02893, 2019. ↩
-
Yao et al. “Improving Out-of-Distribution Robustness via Selective Augmentation.” NeurIPS 2022. ↩
-
Kuhn et al. “Distributionally Robust Optimization.” arXiv:2411.02549, 2024. ↩