引言
视觉-语言模型(Vision-Language Models,VLMs),如CLIP,通过在大规模图文对数据上进行对比预训练,将视觉和文本特征对齐到统一的嵌入空间中,从而实现了强大的零样本泛化能力。然而,当测试数据的分布与训练数据存在显著差异时,VLMs的性能会大幅下降。
测试时自适应(Test-Time Adaptation,TTA)作为一种无需源域标签的解决方案,利用无标注的测试数据在线调整模型,在开放世界图像识别任务中展现出重要价值。然而,传统TTA方法面临三个核心挑战:
- 目标分布建模:如何显式建模测试数据分布,利用样本间的内在关系提升预测性能?
- 可用性:如何在不访问或存储历史数据的情况下实现自适应?
- 无训练效率:如何在避免耗时的梯度优化同时保持稳定性?
FreeTTA(Free on the Fly)由上海科技大学和中大三校团队提出,发表于CVPR 2025。该方法首次提出同时满足上述三个特性的TTA框架,通过在线EM算法显式建模测试数据分布,实现无需训练的测试时自适应。1
核心贡献:FreeTTA是首个显式建模测试数据分布的TTA方法,利用样本间的内在关系增强单个样本的预测,无需同时访问数据。
问题背景
VLM的零样本分类
CLIP通过图文嵌入空间的对其实现零样本分类。对于测试图像 ,其属于类别 的预测概率为:
其中 和 分别为图像编码器和文本编码器, 表示特征间的余弦相似度, 是第 个类别的模板提示文本嵌入。
现有TTA方法的局限
现有TTA方法主要分为两类:
| 方法类型 | 代表工作 | 训练自由 | 可用性 | 目标分布建模 |
|---|---|---|---|---|
| 基于提示学习 | TPT、DiffTPT | ✗ | ✓ | ✗ |
| 动态适配器 | Tip-Adapter | ✓ | ✗ | ✗ |
| 缓存方法 | TDA | ✓ | 部分 | ✗ |
| FreeTTA | 本文 | ✓ | ✓ | ✓ |
核心问题:现有方法均未充分考虑测试样本间的内在关系,难以充分利用持续到来的测试数据中的历史信息。
方法论
高斯判别分析基础
FreeTTA假设每个类别的测试样本服从独立的多元高斯分布:
为简化分析,采用所有类别共享协方差矩阵的假设:
根据贝叶斯定理,后验概率为:
分类决策为:
应用GDA到TTA的三大挑战
将GDA直接应用于TTA面临三个关键挑战:
- 顺序在线适应:测试样本顺序到达,无法同时观察所有样本,单一样本的分布估计不可靠
- 无监督适应:测试样本无标签,无法直接估计分布参数
- 不确定性建模:需要处理VLM零样本预测带来的不确定性
在线EM算法
为解决上述挑战,FreeTTA引入在线期望最大化(Online EM)算法,迭代计算每个在线测试样本的后验概率并更新参数。
参数初始化
使用CLIP文本编码器生成各类别的初始均值向量,协方差矩阵初始化为单位矩阵:
E步:计算后验概率
对于第 个测试样本 ,计算其属于类别 的后验概率:
其中 是指示变量, 是类别 的先验概率。
记后验概率为 。
M步:参数更新
利用E步计算的后验概率更新各类别的先验、均值向量和共享协方差矩阵:
先验概率更新:
其中 是到第 步的样本总数, 是类别 的样本计数。
均值向量更新:
协方差矩阵更新:
更新后类别 的样本计数为 。
VLM先验整合
为增强模型在TTA初期阶段的稳定性,FreeTTA引入自适应更新策略,利用VLM零样本预测的熵来评估每个样本的置信度:
引入权重函数 调整样本对参数更新的影响:
设计动机:高置信度样本具有低熵,获得更大权重参与更新;低置信度样本具有高熵,权重被衰减以减少噪声影响。
最终预测融合
FreeTTA将CLIP零样本 logits 与概率生成模型的 logits 进行融合:
其中:
- 是图像特征
- 是类别 的文本特征
- ,
算法流程
# FreeTTA 在线EM算法伪代码
def FreeTTA(test_stream, clip_model, alpha=0.2, beta=4.5):
"""
FreeTTA: 训练自由的在线EM测试时自适应
参数:
test_stream: 测试数据流
clip_model: 预训练CLIP模型
alpha: 融合权重
beta: 熵权重
"""
# 初始化
classes = get_class_names()
K = len(classes)
# 使用文本编码器初始化均值
mu = [clip_model.encode_text(get_prompt(c)) for c in classes]
Sigma = I # 单位协方差矩阵
pi = [1/K] * K # 均匀先验
N = [1/K] * K # 样本计数
n_t = 1 # 总样本计数
for t, x_t in enumerate(test_stream):
# 1. 提取图像特征
F = clip_model.encode_image(x_t)
# 2. E步:计算后验概率
gamma = compute_posterior(F, mu, Sigma, pi)
# 3. 计算CLIP熵用于不确定性加权
clip_probs = clip_model.predict(F)
H = -sum(p * log(p + eps) for p in clip_probs)
w = exp(-beta * H)
# 4. M步:更新参数
n_t_new = n_t - 1 + w
for y in range(K):
N[y] = N[y] + w * gamma[y]
pi[y] = N[y] / n_t_new
mu[y] = (N[y] * mu[y] + w * gamma[y] * F) / (N[y] + w * gamma[y])
# 更新协方差矩阵
Sigma = update_covariance(F, mu, Sigma, gamma, w, n_t_new)
n_t = n_t_new
# 5. 融合预测
clip_logits = clip_model.get_logits(F)
gda_logits = compute_gda_logits(F, mu, Sigma, pi)
final_logits = clip_logits + alpha * gda_logits
yield predict(final_logits)实验结果
实验设置
数据集:
- 跨域基准:FGVCAircraft、Caltech101、StanfordCars、DTD、EuroSAT、Flower102、Food101、OxfordPets、SUN397、UCF101
- 分布外基准:ImageNet-A、ImageNet-V2、ImageNet-R、ImageNet-S
实现细节:
- 基础模型:CLIP (ResNet-50 / ViT-B/16)
- 超参数:,
- 测试设置:批量大小为1,严格遵循TTA设定
跨域分类结果
| 方法 | 平均准确率 | T.D. | Avail. | T.F. |
|---|---|---|---|---|
| CLIP-ViT-B/16 | 64.59% | — | — | — |
| TPT | 65.10% | ✗ | ✓ | ✗ |
| TDA | 67.53% | ✗ | 部分 | ✓ |
| MTA | 64.63% | ✗ | ✓ | ✓ |
| ZERO | 64.66% | ✗ | ✓ | ✓ |
| FreeTTA | 68.42% | ✓ | ✓ | ✓ |
FreeTTA在满足所有三个核心特性的同时,在跨域基准上达到最优性能。
分布外泛化结果
| 方法 | ImageNet | IN-A | IN-V2 | IN-R | IN-S | 平均OOD |
|---|---|---|---|---|---|---|
| CLIP-ViT-B/16 | 61.20% | 68.34% | 49.89% | 77.65% | 48.24% | 59.42% |
| TPT | 62.44% | 68.98% | 54.77% | 77.06% | 47.94% | 60.81% |
| TDA | 65.01% | 69.51% | 60.11% | 80.24% | 50.54% | 63.89% |
| FreeTTA | 65.58% | 70.21% | 61.41% | 80.49% | 50.88% | 64.42% |
消融实验
| 配置 | 平均准确率 | 相对基线提升 |
|---|---|---|
| Zero-Shot CLIP | 64.59% | — |
| FreeTTA(完整) | 68.42% | +3.83% |
| -均值向量更新 | 64.64% | +0.05% |
| -协方差矩阵更新 | 67.07% | +2.48% |
| -VLM先验 | 67.78% | +3.19% |
关键发现:
- 均值向量更新贡献最大,动态调整类特征中心对适应目标域至关重要
- 协方差矩阵更新使模型能够捕捉类内变异性,提高分类性能
- VLM先验整合有效降低高不确定性样本的噪声影响
计算效率
| 方法 | 测试时间 | ImageNet准确率 |
|---|---|---|
| TPT | ~10小时 | 68.98% |
| TDA | ~13分钟 | 69.51% |
| FreeTTA | ~30分钟 | 70.21% |
FreeTTA在保持高效的同时实现了更高的准确率,平衡了计算成本与性能收益。
与相关工作的关系
与传统EM算法的联系
FreeTTA是在线EM算法在测试时自适应领域的创新应用。与传统EM(如EM算法)相比:
| 方面 | 传统EM | FreeTTA在线EM |
|---|---|---|
| 数据类型 | 静态批量数据 | 动态流式数据 |
| 隐变量 | 类别分配 | 样本-类别归属 |
| 参数更新 | 批量迭代 | 逐样本在线更新 |
| 先验来源 | 均匀或手动设定 | VLM零样本预测 |
与其他TTA方法的对比
SNAP:同样关注TTA的效率优化,但采用稀疏更新策略。FreeTTA通过显式建模目标分布实现更精确的自适应,而SNAP通过降低更新频率提高效率。两者可互补:SNAP的高效采样策略可与FreeTTA的分布建模结合。
NEO:同样追求无优化的测试时自适应。与NEO不同,FreeTTA通过在线EM显式建模测试数据分布,而非仅依赖模型预测的一致性约束。
与贝叶斯TTA方法的关系
FreeTTA与BCA/BCA+等贝叶斯TTA方法共享概率建模的理念,但关键区别在于:
- FreeTTA:基于高斯判别分析的显式分布建模,在线EM参数更新
- BCA+:基于动态缓存的贝叶斯推断,自适应类先验更新
两者都体现了无需反向传播的训练自由TTA的设计理念。
局限性
- 小规模领域漂移:当领域漂移较小时,动态自适应的效果有限
- 高噪声样本:置信度较低的样本可能导致不稳定的参数更新
- 无标注评估:测试域缺乏标注数据使得自适应效果难以精确评估
- 预训练依赖:仍依赖预训练VLM(如CLIP),其固有偏差可能传播到下游任务
总结
FreeTTA提出了一种优雅的测试时自适应框架,通过在线EM算法显式建模测试数据分布,实现了三个核心特性的同时满足:
- 目标分布建模:首次利用样本间的内在关系增强单个样本预测
- 可用性:无需访问或存储历史测试数据
- 训练自由:避免耗时的梯度优化,保持稳定性
FreeTTA的核心创新在于:
- 将高斯判别分析与在线EM结合,无需同时访问测试样本
- 利用VLM零样本预测作为先验,并通过熵加权机制增强鲁棒性
- 在15个数据集上实现稳定且显著的提升,验证了方法的有效性
这项工作为VLMs的测试时自适应提供了新的研究视角,强调了显式建模目标分布的重要性。
参考文献
Footnotes
-
Dai Q, Yang S. Free on the Fly: Enhancing Flexibility in Test-Time Adaptation with Online EM[C]. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2025: 9538-9548. arXiv:2507.06973 ↩