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的目标是找到一个数据表示 和一个分类器 ,使得:

  1. 在每个环境下,分类器 都是该环境下 最优的线性分类器
  2. 这种最优性在所有环境下是一致的

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 * penalty

3.4 IRM的局限性与改进

已知的局限性:

  1. 非线性IRM的计算困难:完整的非线性IRM约束在实践中难以优化
  2. 与训练可扩展性的矛盾:深度学习理论强调大模型的重要性,但IRM在大模型上可能失效
  3. 可能捕获”错误”的不变性:在某些简单问题上,IRMv1可能学习到自然但非期望的不变性

改进方向:

方法论文核心贡献
Bayesian IRM (CVPR 2022)BIRM结合贝叶斯推断处理不确定性
Sparse IRMICML 2022稀疏不变性约束
Ensemble IRMAhuja et al.博弈论视角的IRM

4. 数据增强策略

4.1 Mixup及其变体

Mixup是最常用的数据增强策略之一,通过线性插值生成虚拟样本:

其中

Mixup的局限性:

  • 混合标签可能导致训练信号模糊
  • 可能损害OOD检测性能(标签平滑和mixup会产生相反效果)
  • 在回归任务中,混合标签问题更为严重

4.2 选择性增强 (LISA)

LISA(Learning Invariant Predictors with Selective Augmentation)通过选择性插值避免标准Mixup的问题。3

LISA的两种策略:

  1. 标签内增强 (Intra-label LISA):插值具有相同标签但来自不同域的样本
    • 目标:消除域相关的虚假相关
  2. 域内增强 (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 因果学习理论

因果推断理论提供了分布偏移下学习的可能性条件:

  1. 不变性条件:因果机制在干预下保持不变
  2. 可识别性条件:能从观测数据中恢复因果关系
  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. 基准数据集

数据集描述领域
ColoredMNISTMNIST数字+颜色标签关联图像
PACS跨艺术风格的图像分类图像
DomainNet多域图像识别图像
CMNIST相关vs不相关特征设置合成
NICO++上下文变化的图像分类图像
Waterbirds背景-主体虚假相关图像

11. 实践建议

11.1 方法选择指南

场景推荐方法
有多域训练数据IRM, Group DRO, 环境推断
仅有单域数据数据增强、因果推断、表示解耦
计算资源有限ERM + 简单增强、标签平滑
高风险应用DRO、集成方法

11.2 实施注意事项

  1. 环境标签的价值:如果有环境/域标签,优先使用环境感知方法
  2. 增强的权衡:某些增强可能损害OOD检测能力
  3. 评估的完整性:同时评估ID和OOD性能,避免一个指标的提升牺牲另一个

12. 未来研究方向

  1. 理论-实践差距:减少理论保证与实际效果之间的差距
  2. 大规模预训练:探索大模型(如LLM、CLIP)的OOD能力
  3. 自适应方法:根据测试分布动态调整策略
  4. 可解释性:理解为什么某些方法有效
  5. 组合方法:结合多种方法的优势

参考文献


相关资源:

Footnotes

  1. Steinmann et al. “Navigating Shortcuts, Spurious Correlations, and Confounders: From Origins via Detection to Mitigation.” arXiv:2412.05152, 2024. 2

  2. Arjovsky et al. “Invariant Risk Minimization.” arXiv:1907.02893, 2019.

  3. Yao et al. “Improving Out-of-Distribution Robustness via Selective Augmentation.” NeurIPS 2022.

  4. Kuhn et al. “Distributionally Robust Optimization.” arXiv:2411.02549, 2024.