Appearance
OOD / Distribution Shift
OOD (Out-of-Distribution) 指模型在训练数据分布之外的数据上进行推理的现象。当输入数据的分布 $P(X)$ 与训练分布显著偏离时,模型性能通常会急剧下降。Distribution Shift (分布偏移) 是机器学习系统在实际部署中面临的最核心挑战之一。
核心概念
分布偏移的主要类型
| 类型 | 定义 | 示例 |
|---|---|---|
| Covariate Shift (协变量偏移) | $P(X)$ 变化,$P(Y | X)$ 不变 |
| Concept Shift (概念偏移) | $P(Y | X)$ 变化,$P(X)$ 不变 |
| Label Shift | $P(Y)$ 变化,$P(X | Y)$ 不变 |
| Domain Shift (领域偏移) | $P(X)$ 和 $P(Y | X)$ 均可能变化 |
OOD Detection (分布外检测)
OOD 检测旨在识别输入是否属于训练分布,通常与分类任务结合:
- 密度方法: 使用流量模型或自编码器估计 $P(X)$,低密度区域标记为 OOD
- 分类方法: 利用 softmax 置信度、能量函数 (Energy Score) 或欧氏距离判断 OOD
- 距离方法: 基于特征空间中与训练样本的距离(如 MMD、Mahalanobis 距离)
- 梯度方法: 利用输入梯度大小或梯度一致性检测 OOD
关键论文与技术
| 论文 | 作者 | 年份 | 核心贡献 |
|---|---|---|---|
| "A Survey on Out-of-Distribution Detection" | Yang et al. | 2021 | OOD 检测全面综述,系统分类为密度/重建/分类/距离/梯度/能量基方法 |
| "Energy-based Out-of-distribution Detection" | Liu et al. | 2020 (NeurIPS) | 提出能量分数替代 softmax 置信度进行 OOD 检测 |
| "Maximum Softmax Probability" | Hendrycks & Gimpel | 2017 | 基线方法:使用最大 softmax 概率检测误分类和 OOD 样本 |
| "ODIN" | Liang et al. | 2018 (ICLR) | 温度缩放 + 输入扰动提升 OOD 检测 |
| "Domain Adversarial Neural Networks (DANN)" | Ganin et al. | 2016 (JMLR) | 对抗性领域自适应框架 |
领域自适应与泛化
- Domain Adaptation (DA): 利用标注的源域数据和无标注/少标注的目标域数据,学习跨域共享表示
- Domain Generalization (DG): 更困难的设定——在训练时无法见到目标域,要求模型学习不变的特征表示
- 常见 DG Benchmarks: PACS、VLCS、Office-Home、TerraIncognita、DomainNet
重要框架与工具
- OpenOOD: 综合性 OOD 检测基准测试框架
- PyTorch-OOD: OOD 检测方法统一实现库
- MMD (Maximum Mean Discrepancy): 核方法衡量分布差异
与相关概念的关系
- OOD Detection vs Anomaly Detection: OOD 检测关注分布差异,异常检测关注稀有/异常样本;两者方法重叠但目标不同
- OOD vs Calibration: 良好校准的模型有助于更可靠的 OOD 检测
- OOD vs Robustness: 对抗鲁棒性关注局部扰动,OOD 关注全局分布差异
- DA vs Transfer Learning: 领域自适应是迁移学习的子集,专注解决分布偏移问题
实际应用与挑战
- 医疗 AI: 不同医院的设备、操作流程导致影像分布差异
- 自动驾驶: 不同城市、天气、时段的视觉环境差异
- 推荐系统: 用户行为和商品库随时间变化
- 核心挑战: 实际分布通常未知且动态变化,难以预先识别和适配
Sources
- Yang et al., "Generalized Out-of-Distribution Detection: A Survey" (2021)
- Liu et al., "Energy-based Out-of-distribution Detection" (NeurIPS 2020)
- Hendrycks & Gimpel, "A Baseline for Detecting Misclassified and Out-of-Distribution Examples in Neural Networks" (ICLR Workshop 2017)
- Ganin et al., "Domain-Adversarial Training of Neural Networks" (JMLR 2016)
- OpenOOD: https://github.com/Jingkang50/OpenOOD