测试时适应综合分类体系
概述
本页面基于arXiv:2411.03687的综合性综述,整理了测试时适应(Test-Time Adaptation, TTA)领域的完整分类体系。该综述收集并分析了400+篇相关论文,提出了基于调整组件的分类框架。
核心问题
如何使在源域训练的模型能够适应目标域的分布偏移?
TTA的核心优势:
- 仅需源域数据进行训练
- 在测试时在线适应目标域
- 无需存储或访问源域数据
五维度分类体系
测试时适应
├── 模型调整 (Model Adaptation)
├── 推理调整 (Inference Adaptation)
├── 归一化调整 (Normalization Adaptation)
├── 样本调整 (Sample Adaptation)
└── 提示调整 (Prompt Adaptation)
1. 模型调整方法
核心思想:在测试时更新模型的参数或表示。
1.1 统计量更新
| 方法 | 论文 | 核心思想 |
|---|
| TENT | ICLR 2021 | 更新BN均值/方差,最小化熵 |
| EATA | CVPR 2022 | 熵最小化 + 多样性正则化 |
| LAME | NeurIPS 2022 | 标签平滑 + 置信度传播 |
| SAR | ICLR 2023 | 稳定性判据过滤高熵样本 |
TENT公式:
θ∗=θ−α∇θEx∼ptarget[H(p(y∣x;θ))]
1.2 表示更新
| 方法 | 论文 | 核心思想 |
|---|
| TPT | CVPR 2023 | 多次前向+置信度选择 |
| DeYO | ICCV 2023 | 置信度+稳定性双判据 |
| C-TTA | ICLR 2026 | 连续原型更新 |
1.3 外部记忆
| 方法 | 论文 | 核心思想 |
|---|
| EMA | - | 指数移动平均更新记忆 |
| CoTTA | CVPR 2023 | 连续TTA + 记忆增强 |
2. 推理调整方法
核心思想:修改推理过程而非模型参数。
2.1 测试时数据增强
| 方法 | 论文 | 核心思想 |
|---|
| TTA | - | 多尺度/翻转集成 |
| StableTTA | 2026 | NSS + 稳定增强 |
StableTTA流程:
# 1. 稳定数据增强
for i in range(N):
x_aug = stable_mixup(x) # 或 stable_cutmix
z_i = model(x_aug)
z_i = NSS(z_i, K) # 非显著抑制
# 2. 聚合
z = mean(z_1, ..., z_N)
2.2 集成方法
| 方法 | 论文 | 核心思想 |
|---|
| Monte Carlo | - | MC Dropout集成 |
| SWAG | NeurIPS 2019 | 随机权重平均 |
2.3 测试时学习
| 方法 | 论文 | 核心思想 |
|---|
| Test-Time Training | ICML 2020 | 自监督辅助任务 |
| TTT | ICML 2023 | 嵌套学习更新 |
3. 归一化调整方法
核心思想:调整BatchNorm或其他归一化层的统计量。
3.1 BN统计量更新
| 方法 | 更新内容 | 适应策略 |
|---|
| TENT | μ,σ | 熵最小化 |
| NOTE | μ,σ | 在线估计 |
| LAME | μ,σ | 拉普拉斯适应 |
3.2 归一化层替换
| 方法 | 原归一化 | 替换为 |
|---|
| AdaBN | BN | 逐层BN |
| BN-Adapt | BN | 源/目标BN |
3.3 归一化参数调整
| 方法 | 调整内容 |
|---|
| NormAdapt | γ,β |
| SR-IRL | 层归一化 |
4. 样本调整方法
核心思想:在输入模型之前调整测试样本。
4.1 输入变换
| 方法 | 变换类型 | 目的 |
|---|
| TTA | 翻转/旋转/裁剪 | 增强多样性 |
| AdvProp | 对抗变换 | 分布对齐 |
| Mixup-TTA | Mixup | 插值增强 |
4.2 特征对齐
| 方法 | 对齐目标 |
|---|
| AdaBN | BN统计量 |
| MMD | 最大均值差异 |
| CORAL | 二阶统计量 |
4.3 伪标签
| 方法 | 伪标签使用 |
|---|
| STAC | 伪标签自训练 |
| TVT | 伪标签传递 |
5. 提示调整方法
核心思想:为Vision-Language Models(如CLIP)调整文本提示。
5.1 文本提示学习
| 方法 | 提示类型 | 更新方式 |
|---|
| CoOp | 可学习连续提示 | 梯度下降 |
| MaPLe | 多模态提示 | 联合优化 |
5.2 测试时提示调整
| 方法 | 论文 | 核心思想 |
|---|
| TPT | CVPR 2023 | 置信度选择+文本增强 |
| C-TTA | ICLR 2026 | 原型引导提示 |
TPT流程:
1. 生成多个文本描述变体
2. 对每个变体计算图像预测
3. 选择最高置信度的预测
4. 使用该预测更新提示(可选)
5.3 视觉提示调整
| 方法 | 提示位置 |
|---|
| VP | 图像token |
| VPT | 视觉transformer |
| CuSe | 连续提示 |
方法对比总览
按性能对比(ImageNet-C平均)
| 方法类别 | 代表方法 | mCE↓ | 计算开销 |
|---|
| 无适应 | Source Only | 68.4% | 0 |
| 模型调整 | TENT, EATA | 66.2% | 中 |
| 推理调整 | TTA, StableTTA | 64.8% | 高 |
| 归一化调整 | AdaBN, NOTE | 67.1% | 低 |
| 样本调整 | Mixup-TTA | 65.3% | 中 |
| 提示调整 | TPT, CoOp | 63.5% | 中 |
按计算效率对比
| 方法 | 相对延迟 | 内存开销 | 适用场景 |
|---|
| TENT | 1.0× | 低 | 资源受限 |
| StableTTA | 32× | 中 | 精度优先 |
| TPT | 8× | 中 | VLM应用 |
| C-TTA | 1.0× | 极低 | 效率优先 |
适应设置分类
按测试数据形式
| 设置 | 数据形式 | 代表方法 |
|---|
| 单样本 | 独立样本 | TENT |
| 批次 | 固定批次 | EATA |
| 流式 | 连续流 | OTTA |
按源域访问
| 设置 | 源域访问 | 代表方法 |
|---|
| 源可用 | 完整访问 | 传统方法 |
| 源自由 | 仅模型 | SFDA |
| 源隐私 | 部分访问 | 差分隐私 |
按标注情况
| 设置 | 标注 | 代表方法 |
|---|
| 无监督 | 无 | TENT, EATA |
| 半监督 | 部分 | Test-Time Training |
| 主动 | 少量查询 | Active-TTA |
基准数据集
标准域偏移
| 数据集 | 偏移类型 | 说明 |
|---|
| ImageNet-C | 19种腐败 | 高斯噪声、模糊等 |
| ImageNet-A | 对抗样本 | 自然对抗 |
| ImageNet-R | 渲染风格 | 艺术风格 |
| ImageNet-V2 | 不同采样 | 原始数据分布 |
实际域偏移
| 数据集 | 领域 | 说明 |
|---|
| CIFAR-10.1 | 相机型号 | 真实域偏移 |
| Office-Home | 风格/物体 | 多域适应 |
| PACS | 艺术风格 | 跨风格泛化 |
视频基准
| 数据集 | 特点 |
|---|
| VideoTTA | 时序偏移 |
| UCF-101→HMDB | 跨数据集 |
应用场景
1. 自动驾驶
传感器融合 → 域偏移(白天→夜晚)
└─ TENT适应:更新感知模型统计量
└─ TTA增强:多视角集成
2. 医疗影像
训练数据:某医院设备
测试数据:另一医院设备
└─ AdaBN:归一化层适应
└─ Source-Free TTA:隐私保护
3. 移动端部署
服务器训练 → 边缘部署
└─ 轻量TTA:BN统计更新
└─ 离线+在线混合适应
4. 机器人感知
仿真训练 → 真实世界
└─ Continuous TTA:持续适应
└─ 多模态TTA:视觉+触觉
未来研究方向
1. 理论理解
- TTA的理论收敛保证
- 泛化误差的紧界分析
- 最优适应策略的理论基础
2. 高效适应
- 无梯度/无存储的TTA
- 连续适应算法
- 跨架构统一方法
3. 多模态场景
4. 安全与隐私
总结
测试时适应是一个快速发展的领域,本分类体系提供了统一的视角:
| 调整维度 | 核心组件 | 代表方法 |
|---|
| 模型 | 参数/表示 | TENT, EATA |
| 推理 | 前向过程 | StableTTA |
| 归一化 | 统计量 | AdaBN |
| 样本 | 输入变换 | Mixup-TTA |
| 提示 | 文本/视觉 | TPT, CoOp |
选择建议:
- 资源受限 → 归一化调整(TENT)
- 精度优先 → 推理调整(StableTTA)
- VLM应用 → 提示调整(TPT)
- 效率+精度 → 原型更新(C-TTA)
参考