像 CLIP 这样的视觉-语言模型 (Vision-Language Models, VLMs) 已经彻底改变了计算机视觉领域。通过在预训练期间对齐图像和文本,它们使我们能够执行“零样本” (zero-shot) 分类——即仅通过将图像与文本描述进行匹配,就能识别模型在训练中从未明确见过的物体。
但这其中有个问题: 虽然零样本性能令人印象深刻,但对于高风险的现实世界应用来说,它往往还不够好。野外数据的分布很少能与训练集的完美条件相匹配。为了弥补这一差距,研究人员转向了测试时适配 (Test-Time Adaptation, TTA) 和直推式学习 (Transductive Learning) 。 这些技术利用输入的测试数据本身来即时调整模型。
然而,一篇名为 《Realistic Test-Time Adaptation of Vision-Language Models》 (视觉-语言模型的现实测试时适配) 的新论文指出,大多数现有的 TTA 方法都有点“作弊”的嫌疑。它们假设输入的测试数据是表现良好的——类别平衡、批次较大且样本独立。
在这篇深度文章中,我们将探讨为什么当前的方法在现实场景中会失败,以及作者如何提出一种名为 StatA (Statistical Anchor,统计锚点) 的新方法来解决这个问题。StatA 充当稳定器的角色,使 VLM 能够在不丢失零样本知识的情况下,适应混乱、稀疏和相关的数据流。
问题所在: 现实世界 vs.“实验室”条件
要理解这篇论文的贡献,我们首先需要了解当前适配策略的局限性。
在标准的直推式或测试时适配设置中,模型会接收一批无标签的测试图像。它利用这一批数据的统计信息来优化其预测。例如,如果模型看到一组看起来很相似的图像,它会将它们推向同一个类别标签。
现有的最先进方法 (如 TransCLIP、ZLaP 或 Dirichlet) 如果批次中均匀分布了所有可能的类别,表现会非常出色。但请考虑两种现实世界的场景:
1. 稀疏批次 (低 \(K_{\text{eff}}\))
想象一下分析卫星图像。你正在寻找 50 种不同类型的土地覆盖。然而,单批图像可能来自特定区域——也许是森林或城市。在该批次中,实际上可能只存在 2 或 3 个类别。这被称为低有效类别数 (\(K_{\text{eff}}\)) 。
如果一种适配方法假设所有 50 个类别都存在,它可能会为了满足类别平衡约束,强行将一些“森林”图像分类为“沙漠”。
2. 相关流 (非 i.i.d.)
考虑一个在房子里导航的机器人。视频流是帧帧相关的。在 10 秒钟内,机器人都在厨房里 (厨房帧) 。然后它移动到走廊。数据不是独立同分布 (i.i.d.) 的。

如上图 Figure 2 所示,现实世界的数据是聚集的。
- (a) 卫星图像块通常只包含类别的子集。
- (b) 视频流包含长时间的同一类别序列。
论文作者针对这些现实场景评估了现有方法,发现了一个令人担忧的趋势。那些在“完美”条件下击败基线的方法,在遇到低类别计数或相关流时,往往会严重崩塌——表现甚至比原始的零样本模型还要差。

如上图所示,像 Dirichlet 和 ZLaP (蓝色和橙色柱状图) 这样的方法,在“Low \(K_{\text{eff}}\)” (低有效类别) 场景下,与零样本基线相比性能大幅下降 (负百分比) 。这项研究的目标是创建一种能提供绿色柱状图效果的方法: 无论场景如何,都能提供持续的改进。
解决方案: StatA (统计锚点)
研究人员提出了 StatA , 这是一种旨在具备通用性的直推式方法。StatA 的核心理念简单而深刻: 适配你看到的视觉数据,但使用语言知识作为锚点以防止漂移。
大多数 TTA 方法将视觉特征视为可以自由聚类的可塑点。StatA 将文本嵌入 (即“一只狗的照片”、“一只猫的照片”这类类别描述) 视为基准统计先验的来源。
数学框架
要理解 StatA 的工作原理,我们必须看它的目标函数。该方法在正则化极大似然估计 (MLE) 框架内运作。
我们要寻找两样东西:
- 分配 (Assignments, \(\mathbf{z}\)) : 图像 \(i\) 属于类别 \(k\) 的概率。
- 统计模型 (Statistical Models, \(\mathbf{M}\)) : 描述每个类别视觉特征分布的参数 (均值 \(\mu\) 和协方差 \(\Sigma\)) 。
通用的目标函数如下所示:

第一项是标准的对数似然——它试图让统计模型拟合数据。第二项 \(\mathcal{R}(\mathbf{z})\) 代表对预测的正则化 (如平滑处理) 。
高斯假设
StatA 假设特定类别的视觉特征遵循多元高斯分布。因此,特征 \(\mathbf{f}_i\) 属于类别 \(k\) 的概率由下式给出:

这是标准做法。然而,如果你仅仅基于稀疏批次 (例如,只有“森林”图像的批次) 来优化它,缺失类别 (“沙漠”、“海洋”) 的高斯分布将变得不稳定或坍缩,因为没有数据来估计它们的均值 (\(\mu\)) 和协方差 (\(\Sigma\)) 。
创新点: 统计锚点
这正是 StatA 引入新意的地方。作者为统计参数 \(\mu\) 和 \(\Sigma\) 添加了一个新的正则化项 \(\mathcal{A}\)。

在这里,\(\alpha\) 是一个加权超参数。术语 \(\mathcal{A}(\mu, \Sigma)\) 会在估计的均值和协方差偏离“统计锚点”太远时惩罚模型。
但什么是锚点?作者基于文本嵌入为每个类别推导出一个“固定”的高斯分布 \(\mathcal{N}'_k\)。由于文本编码器是冻结且稳健的,它提供了一个稳定的参考点。惩罚是通过计算适配后的分布与该锚点分布之间的 Kullback-Leibler (KL) 散度来确定的。

多元高斯分布的 KL 散度有一个闭式解 (特定的数学公式) ,使其计算非常高效:

构建锚点
你可能会问: 我们如何从文本描述中获得均值和协方差?
文本编码器为每个类别提供一个向量 (\(\mathbf{t}_k\)) 。
- 锚点均值 (\(\mu'_k\)) : 我们简单地将锚点均值设置为文本嵌入本身 (\(\mathbf{t}_k\)) 。
- 锚点协方差 (\(\Sigma'\)) : 我们基于该批次的零样本预测估计一个全局方差。

这种设置确保了即使批次中没有出现“猫”的图像,“猫”的分布也不会消失——它保持锚定在“猫”的文本嵌入上。
算法: 适配是如何发生的
优化过程是迭代的。它在更新类别分配 (猜测标签) 和更新统计参数 (优化类别分布) 之间交替进行。
第一步: 更新分配 (\(\mathbf{z}\))
首先,模型观察当前的类别分布并猜测图像的标签。它使用“软”分配,计算每张图像属于每个类别的概率。

此更新还包括一个拉普拉斯正则化项 (确保相似图像获得相似的预测) 和一个文本监督项 (不要偏离零样本预测太远) ,但这对于直推式学习来说是标准逻辑。
第二步: 更新统计量 (\(\mu, \Sigma\))
这是 StatA 大放异彩的关键步骤。标准的 MLE 方法会将新均值简单地计算为分配给该类别的图像的平均值。然而,StatA 计算的是批次统计量和锚点统计量之间的加权平均值 。

让我们分解一下均值 (\(\mu_k\)) 的这个更新规则:
- \(\mathbf{v}_k\): 当前分配给类别 \(k\) 的图像的均值 (样本均值) 。
- \(\mu'_k\): 类别 \(k\) 的文本嵌入 (锚点均值) 。
- \(\beta_k\): 混合系数 (介于 0 和 1 之间) 。
如果 \(\beta_k\) 为 1,我们完全信任图像数据。如果 \(\beta_k\) 为 0,我们忽略图像并坚持使用文本锚点。
\(\beta_k\) 的魔力
系统会根据该类别有多少可用数据自动计算 \(\beta_k\)。

- 高计数: 如果许多图像被分配给类别 \(k\),分子的总和很大,使得 \(\beta_k\) 接近 1。模型“信任”视觉数据,因为有足够的数据使其具有统计显著性。
- 低计数: 如果很少或没有图像被分配给类别 \(k\),总和很小。\(\beta_k\) 降至接近 0。模型依赖于锚点。
这种机制使 StatA 能够无缝处理批次中缺失的类别。对于缺失的类别,\(\beta \approx 0\),因此模型将分布固定在文本嵌入处,以备稍后出现样本。
实验与结果
作者在 ImageNet、EuroSAT 和 UCF101 等多种数据集上,将 StatA 与其他领先方法 (MTA、Dirichlet、ZLaP、TransCLIP) 进行了严格测试。
1. 对稀疏批次的鲁棒性
在“批次适配”实验中,他们改变了批次中存在的有效类别数 (\(K_{\text{eff}}\)) 。
场景: 批次大小为 64,但实际存在的类别数量范围从“极低” (1-4 个类别) 到“中等” (5-25 个类别) 。

查看上面的 Table 1(a) :
- ZLaP 和 TransCLIP 在“极低”设置下崩溃 (以红色高亮显示的百分比,如 -37.8% 或 -26.3%) 。它们的表现明显不如基础 CLIP 模型,因为它们试图将数据强行拟合到空类别中。
- StatA (我们的方法) 无论存在的类别多么少,都能持续提供正向增益 (极低时 +5.1%,低时 +4.1%) 。
2. 对相关性的鲁棒性 (在线流)
在在线设置中,任务以流的形式到达。作者使用 Dirichlet 参数 \(\gamma\) 控制相关性。\(\gamma\) 越低意味着相关性越高 (例如,连续看到 50 帧“猫”) 。
下面的可视化展示了相关性矩阵。热力图越暗/越块状,数据就越相关 (聚集) 。

结果: 在高度相关的流中 (下表中的“Low”和“Separate”场景) ,依赖于维护多样化记忆库的方法 (如 TDA 或 DMN) 表现挣扎。然而,StatA 保持了鲁棒性。

在 Separate (分离) 场景中 (类别按顺序出现,一个接一个) ,StatA 实现了 69.1% 的平均准确率,显著优于基线 (65.2%) ,并且保持竞争力或优于其他经常性能下降的方法。
3. 计算效率
对于迭代算法,一个合理的担忧是速度。这种适配会减慢推理速度吗?

如 Table 3 所示,成本可以忽略不计。处理一批 1,000 张图像的 CLIP 推理 (提取特征) 大约需要 6 秒。StatA 适配仅增加 0.1 秒 。 这使得它非常适合实时部署。
为什么它有效?Alpha 的作用
目标函数中的超参数 \(\alpha\) 控制锚点的强度。作者进行了消融实验,以观察模型对该参数的敏感度。

上面的图表显示了不同 \(\alpha\) 值下的准确率 (Y 轴) 与有效类别数 (X 轴) 的关系。
- \(\alpha = 0\) (紫色虚线) : 这关闭了锚点。请注意,当 \(K_{\text{eff}}\) 较低时 (图表左侧) ,性能是如何骤降的。这证实了标准 MLE 在稀疏数据下会失败。
- \(\alpha = 1\) (深蓝色粗线) : 这是默认设置。它在所有情况下提供了最稳定的性能,充当了可靠的安全网。
这验证了假设: 在低数据机制下,你需要来自文本编码器的先验知识来约束优化过程。
结论
论文《Realistic Test-Time Adaptation of Vision-Language Models》在部署 AI 方面给了我们一个宝贵的教训: 假设至关重要。
在纸面上表现出色的方法往往在野外失败,因为它们假设数据是平衡且充足的。通过在稀疏批次和相关流上进行测试,Zanella 等人揭示了现有 VLM 适配技术的脆弱性。
他们提出的解决方案 StatA 提供了一个数学上优雅的修复方案。通过使用文本编码器作为统计锚点 , 模型可以在有新视觉数据可用时进行适配,但在数据稀缺时回退到其稳健的预训练知识。
主要收获:
- 现实世界的数据是混乱的: 它是成块出现的 (相关的) ,并且很少同时包含所有类别 (低 \(K_{\text{eff}}\)) 。
- 不要忘记你所知道的: 纯粹的适配可能导致漂移。将适配锚定到原始文本嵌入可以稳定过程。
- StatA 是通用的: 它适用于批次、流、平衡数据和不平衡数据,且无需复杂的超参数调整或大量计算。
对于希望在动态环境中部署 CLIP 或类似模型的学生和从业者来说,StatA 代表了朝着使这些系统真正稳健和自主迈出的重要一步。
](https://deep-paper.org/en/paper/2501.03729/images/cover.png)