本文对在线测试时适应(OTTA,Online Test-Time Adaptation)进行了全面的综述,重点关注在批量到达(batch arrival-Online场景)时如何有效地使机器学习模型适应分布不同的target数据。尽管最近OTTA方法大量涌现,但由于settings不明确、使用的backbone模型过时以及超参数调整不一致,从而阻碍了核心挑战并阻碍了可重复性。
为了提高清晰度并实现严格的比较,作者将OTTA技术分为三大主要类别,并使用现代backbone模型:Vision Transformer对它们进行基准测试。基准测试涵盖了多种数据集,如CIFAR-10/100-C和ImageNet-C,以及由CIFAR-10.1、OfficeHome和CIFAR-10-Warehouse所代表的现实世界中的数据偏移情况。CIFAR-10-Warehouse数据集包含了来自不同搜索引擎的各种变体数据以及通过扩散模型生成的合成数据。
为了衡量Online场景下的效率,作者引入了新的评估指标,包括每秒十亿次浮点运算(GFLOPs)、挂钟时间(wall clock time)以及GPU内存使用情况,从而更清晰地展示了自适应准确性与计算开销之间的trade off。研究结果与现有文献有所不同:
- (1)Transformer对各种领域偏移表现出更强的适应性;(2)许多OTTA方法的有效性依赖于较大的batch大小;(3)在自适应过程中,优化的稳定性和对扰动的抗性至关重要,尤其是在批量大小为1的情况下。基于这些见解,作者强调了未来研究的有前景的方向。
来自:In Search of Lost Online Test-Time Adaptation: A Survey,IJCV,2025
工程地址:https://github.com/Jo-wang/OTTA_ViT_survey
目录
背景概述
当模型面对与训练数据在分布上存在显著差异的测试数据时,其性能往往会大幅下降。这些差异可能源于风格和光照条件的变化,以及各种形式的数据损坏,使得测试数据与这些模型最初使用的训练数据有所偏离。为了缓解这些偏移所导致的性能下降,测试时适应(TTA)已成为一种有前景的解决方案。测试时适应旨在通过利用未标注的测试数据,使模型适应未知的分布,从而纠正数据集偏移问题。与无监督域自适应不同,测试时适应不需要使用源数据来进行分布对齐。
测试时适应中常用的策略包括无监督代理目标,涵盖了诸如伪标签、基于图的学习和对比学习等技术,这些技术通过多个训练epochs应用于测试数据,以提高模型的准确性。然而,要求在每个时间step都能获取完整的测试集,这并不总是符合实际应用情况。在许多应用中,比如自动驾驶,自适应过程仅限于以流式处理的方式使用当前的测试批次数据。这样的操作限制使得测试时适应要求获取完整测试集的做法变得不可行。
在这项研究中,我们关注的是测试时适应(TTA)中的一个特定类别,即在线测试时适应(OTTA),其目标是适应测试数据分布中的实时变化。作者对现有的在线测试时适应(OTTA)研究进行了全面的概述,并评估了这些方法的效率和效果。为了构建一个合理的在线测试时自适应(OTTA)基准框架,作者将现有的方法分为三类:基于优化的OTTA、基于数据的OTTA以及基于模型的OTTA:
- 基于优化的OTTA侧重于各种优化方法。例如设计新的损失函数、在测试过程中更新归一化层(如batch归一化BatchNorm)、使用伪标签策略、Teacher-Student框架以及基于对比学习的方法等等。
- 基于数据的OTTA旨在最大化不同测试数据之间的预测一致性。策略包括使用辅助数据、改进数据增强方法、以及为测试数据创建一个存储队列等等。
- 基于模型的在OTTA则调整模型的主干架构,比如修改特定的层或其机制、添加补充分支,以及融入提示信息。
与现有综述的不同之处。梁等人对测试时适应(TTA)这一广泛主题进行了全面概述 [1],讨论了不同setting下的TTA方法,以及它们在计算机视觉、自然语言处理和图数据分析中的适用性。其中一个局限性在于,该综述没有对现有方法进行实验对比。相比之下,这篇综述专注于纯粹的在线测试时适应方法,并通过实验对比提供了有价值的见解,同时考虑了各种领域偏移、超参数选择以及主干模型的影响。
研究贡献:随着ViT架构日益受到关注,一个关键问题随之而来,最初为卷积神经网络(CNN)设计的在线测试时自适应(OTTA)策略,在应用于ViT模型时,是否仍能保持其有效性?这个问题源于视觉Transformer与传统卷积神经网络(如残差网络ResNet)在架构上存在显著差异,尤其是在归一化层和信息处理机制方面。鉴于视觉Transformer的应用越来越广泛,研究它们与现有在线测试时自适应(OTTA)策略的兼容性至关重要。为了深入探究这一问题,作者在多种分布偏移的情况下评估了八种具有代表性的在线测试时自适应(OTTA)算法,并使用了一系列指标来评估其有效性和效率。
问题概述
在线测试时自适应(OTTA)以其实时性特点,成为了测试时自适应领域中的一种关键方法。本节将给出OTTA的正式定义。此外,还会探究广泛使用的数据集和评估方法,并研究OTTA的潜在应用场景。为了确保能够清晰理解,还将进行对比分析,以区分OTTA类似的设置。
问题定义
在OTTA中,我们假定可以使用一个已训练好的源模型,并在测试时针对测试输入对该模型进行自适应调整,以做出最终的预测。给定的由 θ s \theta^{s} θs参数化的源模型 f θ s f_{\theta^{s}} fθs,是在有标签的源域 D S = { ( x S , y S ) } D_{S}=\{(x^{S}, y^{S})\} DS={(xS,yS)}上进行预训练的,该源域是通过从源分布 p S p_{S} pS中独立同分布采样形成的。未标注的测试数据 D T = { x 1 T , x 2 T , x t T , . . . , x n T } D_{T}=\{x_{1}^{T}, x_{2}^{T}, x_{t}^{T}, ..., x_{n}^{T}\} DT={x1T,x2T,xtT,...,xnT}以批次的形式到来,其中 t t t表示当前的时间步, n n n是时间步的总数(即批次数量)。测试数据通常来自一个或多个不同的分布 ( x t T , y t T ) ∼ p T (x_{t}^{T}, y_{t}^{T}) \sim p_{T} (xtT,ytT)∼pT,在协变量偏移假设下,这里 p S ( x , y ) ≠ p T ( x , y ) p_{S}(x, y) ≠p_{T}(x, y) pS(x,y)=pT(x,y) 。在测试时自适应(TTA)过程中,针对第 t t t个批次更新模型参数,从而得到一个经过自适应调整的模型 f θ t f_{\theta^{t}} fθt。
在进行自适应之前,预训练模型应保持其原始架构,尤其是backbone部分,在训练过程中不修改其层结构,也不引入新的模型分支。此外,该模型只能对测试数据观察一次,并且必须在线快速给出预测结果。通过以这种方式完善OTTA的定义,我们旨在最大程度地减少其在实际应用场景中所受到的限制。请注意,在适应特定领域后,模型会重置为其最初的预训练状态,即 f θ S → f θ 0 → f θ S → f θ 1 → f θ S f_{\theta^{S}}\rightarrow f_{\theta^{0}}\rightarrow f_{\theta^{S}}\rightarrow f_{\theta^{1}}\rightarrow f_{\theta^{S}} fθS→fθ0→fθS→fθ1→fθS。
由于在OTTA中,无法像无监督域自适应那样对源数据集和测试集进行对齐,那么在这种有限的环境下,什么样的优化目标才有效呢?随着测试数据以固定的时刻到达,对于有效的测试时自适应而言,多少数据量才是理想的呢?自适应调整在新的主干模型(例如,视觉Transformer)上是否可行呢?随着主干模型的变化,“测试时自适应” 是否会失去有效性呢?为了解决这些问题,作者通过分析OTTA方法所使用的数据集、评估方式和应用场景来对其展开研究,并对各种策略进行拆解,以确定在更新后的主干模型下,哪些组件是有效的,以及它们有效的原因。
数据集与评估
数据集
本综述总结了图像分类领域的数据集。OTTA的测试平台通常旨在促进从自然图像到损坏图像的自适应过程。后者是通过诸如高斯噪声和散焦模糊等干扰手段生成的。尽管这些人为合成的损坏包含了不同严重程度的情况,但它们可能无法充分反映现实场景中所遇到的真实域偏移情况。因此,该工作还使用了其他损坏数据集、生成图像以及现实世界中的偏移数据集,相关内容总结在表1中。下面将描述每个测试平台的详细信息。
CIFAR-10-C是图像分类领域的一个标准基准数据集。它包含950,000张彩色图像,每张图像的尺寸为32×32像素,涵盖十个不同的类别。CIFAR-10-C保留了CIFAR-10的类别结构,但加入了19种不同的损坏类型,损坏严重程度从1级到5级不等。这个损坏版本的数据集旨在模拟在图像采集、存储或传输等过程中可能出现的图像失真或损坏情况。
CIFAR-100-C包含950,000张尺寸为32×32像素的彩色图像,这些图像均匀分布在100个不同的类别中。CIFAR-100-C损坏数据集与CIFAR-10-C类似,它将人为制造的损坏情况添加到了标准的CIFAR-100图像中。
ImageNet-C是ImageNet测试集的损坏版本。ImageNet-C由ImageNet-1k生成,其损坏类型的设置与CIFAR-10-C和CIFAR-100-C类似。
CIFAR-10.1是CIFAR-10的一个真实世界测试集。它包含了大约2000张从Tiny Image数据集中采样得到的图像。
CIFAR-10-Warehouse整合了来自扩散模型(即Stable Diffusion-2-1)的图像,以及通过八个主流搜索引擎针对特定关键词搜索得到的图像。扩散模型使用的提示词为“高质量的[颜色][类别名称]照片”,颜色从12种选项中选取。该数据集由37个生成的子集和143个真实世界的子集组成,每个子集包含300到8000张图像不等。
OfficeHome是领域自适应和领域泛化任务中广泛使用的一个基准数据集。它包含4个不同的领域,共计65个类别,这4个领域分别是:艺术图像(Art)、剪贴画(Clip art)、产品图像(Product)以及真实世界图像(RealWorld)。
评估
为了进行可靠的比较,在OTTA中,有效性和效率都需加以考虑。本综述采用了以下评估指标:
- mean Error(mErr)是评估模型准确性时最常用的指标之一。它计算的是在所有损坏类型或领域上的平均错误率。
- GFLOPs指的是每秒十亿次的浮点运算次数,它用于量化一个模型在一秒内执行的浮点计算数量。GFLOPs较低的模型,其计算效率更高。
- Wall-clock time衡量的是模型完成自适应过程所实际花费的时间。
- GPU memory usage是指模型在GPU上运行时所占用的内存大小。GPU内存使用量较低的模型更适用于更广泛的设备。
OTTA与其他任务的关系
离线测试时自适应(Offline Test-time Adaptation)旨在使一个经过源域预训练的模型适应目标(即测试)数据集,且能够一次性获取整个目标数据集。这与在线测试时适应不同,在线测试时自适应中测试数据是以批次流形式给出的。
连续测试时自适应(Continual TTA)与经典的在线测试时适应(OTTA)设置不同,在经典OTTA设置中,自适应是在对应于不同域偏移的离散步骤中进行的,而连续测试时自适应是在对新数据分布进行无缝、连续自适应的前提下运行的。这个过程不需要在每次察觉到域偏移时重置模型。相反,它强调了模型能够自主更新和优化其参数以应对数据情况的持续变化的重要性,而且无需明确的域指示。
渐进式测试时自适应(Gradual TTA)处理的是现实世界中的场景,在这些场景中,域偏移是通过不断输入的测试样本逐渐引入的。一个例子是天气状况的逐渐且持续的变化。对于损坏数据集,现有的渐进式测试时自适应方法假定测试数据会从严重程度1级过渡到2级,然后再缓慢地向最高级别发展。连续式和渐进式测试时适应方法都是特殊的在线测试适应。
测试时训练(Test-time Training)为训练和自适应过程引入了一项辅助任务。在训练过程中,原始的主干模型被修改为一个“Y”形结构,其中一个分支用于图像分类,另一个分支用于诸如旋转预测之类的辅助任务。在自适应过程中,辅助任务会以有监督的方式继续进行训练,从而更新模型参数。分类头的输出则作为每个测试样本的最终预测结果。
测试时增强(Test-time Augmentation)在推理过程中对输入数据应用数据增强技术,为同一个测试样本创建多个变体,并从这些变体中得出预测结果。最终的预测结果通常通过求平均值或多数表决的方式对这些预测进行汇总。测试时增强通过提供一系列的数据视角来提升模型性能,并且由于它无需对模型训练过程进行任何修改,因此可以应用于包括领域适应、离线测试时适应和在线测试时适应等在内的各种任务。
领域泛化(Domain Generalization)旨在训练出无需进行特定自适应调整就能在多个不同领域中有效运行的模型。它假定模型能够学习到适用于各种不同数据集的领域不变特征。虽然在线测试时适应(OTTA)强调随着时间推移对特定领域进行动态自适应调整,但领域泛化则致力于建立与领域无关的表征。
OTTA
鉴于在线数据与源训练数据之间存在分布差异,OTTA技术大致可分为三类,分类依据是它们对两个主要问题的应对方式:1.处理在线数据流的做法,2.缓解因分布偏移导致的性能下降。
- 基于优化的方法以设计无监督目标为核心,通常侧重于对预训练模型进行调整或优化。
- 基于模型的方法着眼于修改或引入特定的层。
- 基于数据的方法旨在扩大数据的多样性,目的要么是提高模型的泛化能力,要么是协调不同数据视角之间的一致性。
根据这种分类方式,作者在表9中梳理了现有的方法,并在下面对它们进行详细的阐述。
基于优化的OTTA
基于优化的OTTA方法包含三个子类别:(1)重新校准归一化层中的统计数据;(2)利用均值教师模型提升优化的稳定性;(3)设计无监督损失函数。这些方法的发展时间线如图2所示。
归一化校准-BatchNorm
在深度学习中,归一化层旨在通过调节给定层内激活值的统计特性,来改善训练过程并增强神经网络的泛化能力。批量归一化(BatchNorm)是最常用的归一化层,它通过利用全局统计数据或较大的batch大小来稳定训练过程。通过对激活值的均值和方差进行标准化处理,批量归一化降低了训练过程中梯度消失或梯度爆炸的风险。除了批量归一化之外,还有层归一化(LayerNorm)、组归一化(GroupNorm)以及实例归一化(InstanceNorm)。与归一化层类似的概念是特征白化,它在激活层之后立即对特征进行调整。这两种策略都在领域自适应的相关文献中有所应用。
- 图3:每个子图显示一个特征图张量,其中 N 为批处理方向,C 为通道方向,(HW) 为特征图的2D空间压缩为1D后的方向。蓝色像素表示通过相同的均值和方差进行归一化,具体通过聚合这些像素的值来计算。
- BatchNorm计算NHW上的均值和方差,如果batch size太小,均值和方差不能代表整个数据的分布。
- LayerNorm计算CHW上的均值和方差,适合长序列单个样本。
- InstanceNorm在单个样本的单个通道内归一化,适合图像生成,因为图像生成结果依赖于单个图像实例,batch归一化就不能突出生成的风格特异性。
- GroupNorm在通道方向分组,在每个组中归一化,GroupNorm的极端情况分别是LayerNorm和InstanceNorm。
- LayerNorm考虑了全局通道适合分类,InstanceNorm在通道间保持特异性适合生成,GroupNorm是两者的平衡,BatchNorm考虑了batch,更适合泛化。
以BatchNorm为例,设
x
i
x_{i}
xi为一个mini-batch中特征通道
i
i
i的激活值。BatchNorm层首先计算mini-batch数据层面的均值
μ
\mu
μ和方差
σ
2
\sigma^{2}
σ2:
其中,
m
m
m是mini-batch的大小,然后特征被标准化:
其中,
y
i
y_{i}
yi是最后BatchNorm层第
i
i
i通道的输出。BatchNorm层还涉及两个可学习参数
γ
\gamma
γ和
β
\beta
β。
为什么归一化有效:在领域适应中,对齐批量归一化的统计量有助于减轻由协变量偏移导致的性能下降。其假设是,数据信息被编码在每一层的权重中,而特定领域的知识则通过批量归一化层的统计量来传递。因此,更新批量归一化能提升模型在unseen领域上的性能。这一想法被广泛用于OTTA,在这种情况下,假设对于一个在源数据集 D S D_{S} DS上训练的神经网络 f f f,其具有归一化参数 γ \gamma γ和 β \beta β,在每个时间步 t t t更新参数 γ \gamma γ和 β \beta β,将提高 f f f在测试领域上的鲁棒性。
基于这一假设,OTTA方面的初步研究主要集中在仅通过更新归一化层来进行微调。这一策略有几种常见的变体形式。一种常见的做法是调整批量归一化层中的统计量 μ \mu μ和 σ 2 \sigma^{2} σ2以及参数 γ \gamma γ和 β \beta β。
Tent [2]及其后续的研究成果,是这一范式中的代表性方法。它们在冻结其余参数的同时,针对每个测试批次更新 BatchNorm 的统计量和仿射参数。然而,正如在Tent方法中所见到的那样,基于批次层面的更新(通过最小化软熵来进行更新)的有效性取决于每个批次内的数据质量,这就引入了潜在的性能波动问题。例如,含有噪声或有偏差的数据会显著影响BatchNorm的更新。
为了提高适应过程的稳定性,另一个思路是使用较大的批量大小。事实上,大多数基于批量归一化的方法都会采用相当大的批量大小,比如200的批量大小。尽管该方法很有效,但当由于硬件限制导致数据只能少量到达时,这种做法就无法应对相应的场景,尤其是在边缘设备中。
为了解决数据量的问题,基于归一化的方法开始考虑结合全局统计量和局部统计量。混合归一化(MixNorm)[3]将由增强样本输入产生的当前批次的统计量,与通过移动平均计算得到的全局统计量进行混合。结合全局层面和增强后的批次层面的统计量,弥合了历史信息与实时波动之间的差距,无论批次大小如何都能提升性能。作为另一种方法,稳健批量归一化(RBN)使用来自存储库的全局稳健统计量,并采用固定的动量进行移动平均,以确保较高的统计质量。类似地,核心归一化(Core)在移动平均中纳入了一个动量因子,以融合源数据集和测试集的统计量。
Mean Teacher优化
均值教师模型
首先初始化两个结构相同的模型。学生模型后续通过反向传播更新参数,教师模型的初始参数与学生模型一致,后续通过学生模型的指数移动平均更新(
θ
t
e
a
c
h
e
r
(
t
)
=
α
θ
t
e
a
c
h
e
r
(
t
−
1
)
+
(
1
−
α
)
θ
s
t
u
d
e
n
t
(
t
)
\theta_{teacher}^{(t)}=\alpha \theta_{teacher}^{(t-1)}+(1-\alpha)\theta_{student}^{(t)}
θteacher(t)=αθteacher(t−1)+(1−α)θstudent(t))。
对于每个测试样本,生成两种数据增强后的样本,分别由学生模型和教师模型进行处理。其关键在于利用预测一致性,或者说一致性正则化来更新学生模型(教师的伪标签监督学生模型)。这一策略确保了从不同数据视角得出的预测结果相同,降低了模型对测试数据变化的敏感度,并提高了稳定性。在OTTA中,均值教师模型和基于批量归一化(BatchNorm)的方法可以有效地结合起来。将批量归一化更新纳入到师生框架中能够产生更可靠的结果。同样地,将均值教师模型与数据驱动的方法或模型驱动的方法相结合,可以进一步提高预测的准确性和稳定性,这标志着该领域取得了重大进展。
模型更新策略
遵循均值教师的思路,ViDA [4]利用样本增强后的教师模型预测结果来监督学生模型的输出。后续方法总体上遵循了标准的一致性学习策略,但引入了一种重置方法:在每次迭代后,将固定数量的权重重置为其在源数据集上预训练时的状态,以此保留源数据的知识,并增强模型对错误更新的鲁棒性。
RoTTA [5]采用了一种不同的方法,专注于仅更新学生模型中定制的批量归一化层RBN,而不是更改所有参数。这种策略利用了一致性正则化,并整合了来自测试数据的统计信息(BatchNorm和均值教师的结合)。
优化损失函数
在测试数据发生偏移且数量有限的挑战下,设计一个合适的优化目标同样至关重要。基于优化loss的常见OTTA方法总结如图4所示。
现有方法主要采用三种策略来解决优化问题:
优化置信度(最小化不确定性)
协变量偏移通常会导致模型精度降低,进而使模型表现出较高的不确定性。为了提高模型性能,一个直观的方法是增强模型对测试数据的置信度。比如基于entropy的置信度优化:
其中,
p
(
y
^
c
)
p(\widehat{y}_{c})
p(y
c)是预测为第
c
c
c类别的概率。直观来看,当预测的熵降低时,预测向量会看起来更加尖锐,此时置信度较高。在在OTTA中,最小化熵可以在不依赖标签的情况下提高模型对当前批次数据的置信度,从而提升准确率。
在这一策略中有两种主要方法:一种考虑整个softmax向量,另一种则专注于softmax输出中的最大项。Tent方法是前者的典型代表,它利用熵最小化来更新BatchNorm中的参数。后续的研究对这一策略进行了拓展。
Tent方法流程:
- Tent方法概述。source表示上标 s s s,target表示上标 t t t,数据表示 x x x,标签表示 y y y,Tent属于fully test-time setting,仅需要 x t x^{t} xt。Tent不需要(a)中的训练过程,但是需要最小化测试期间的预测entropy,并更新BatchNorm的参数。
虽然熵最小化被广泛应用,但随之而来一个很自然的问题:是什么让软熵成为了一个更受青睐的选择呢?为了揭示损失函数的工作机制,“共轭伪标签法”(Conj-PL)证明,如果在源数据预训练阶段使用交叉熵损失函数,那么在自适应阶段,软熵损失函数就是最合适的。
然而,对熵最小化的一个观察结果是,存在退化解的问题(每个数据点都被归到同一类中)。为了避免这一问题,MuSLA采用了样本与预测值之间的互信息作为正则化。
在熵最小化过程中,梯度往往会被低置信度的预测所主导。交叉熵损失对于预测标签可能过于严格,以至于即使只有一个错误的预测,也会导致错误的更新。为了解决这种权衡问题,软似然比(SLR)损失函数被提出。这种方法在强调预测类别的同时,也解决了MuSLA所提出的问题:
其中, y ^ t i \hat{y}_{t i} y^ti 是在时间步 t t t 时第 i i i 个测试样本的 softmax 概率。 w t i w_{t i} wti 是一个仅与感兴趣区域(ROI)相关的权重,它结合了多样性(模型预测的近期趋势与当前模型输出之间的相似度)和确定性(输出的负熵)。如果对类别 c c c 的输出置信度较低,那么在损失计算中,分母中所有其他预测值的总和 ∑ j ≠ c y ^ t i j \sum_{j ≠c} \hat{y}_{t i j} ∑j=cy^tij 会对权重进行重新调整,从而减少对低置信度类别的关注。
教师模型和学生模型之间的协作是另一种可能的解决方案,用于在保证可靠性的前提下优化预测置信度。在这里,教师模型通常是在多次迭代中的移动平均模型。协同在线测试时自适应(CoTTA)使用教师模型的Softmax预测结果,在交叉熵损失的约束下,对学生模型的Softmax预测结果进行监督。
为了能更精确地对学生模型进行监督,RoTTA 增添了一个创新之处:该模型利用存储在记忆库中的样本进行更新。同时引入了一种重新加权机制,以防止模型过拟合记忆库中的“旧”样本,优先使用“新”样本进行更新,从而确保学习过程更具动态性且贴合当前情况。
在学生模型输出的监督下,TeSLA将目标函数设计为带有正则化的交叉熵损失:
其中,
f
^
s
(
X
)
=
1
B
∑
i
=
1
B
f
s
(
x
i
)
\widehat{f}_{s}(X)=\frac{1}{B}\sum_{i=1}^{B}f_{s}(x_{i})
f
s(X)=B1∑i=1Bfs(xi)是学生模型在该批次数据上的边际类别分布。
y
^
\widehat{y}
y
是来自教师模型的伪软标签。
k
k
k是类别的数量。除了与先前方法类似的交叉熵损失,这里还最大化学生模型在该批次上平均预测的熵,以避免过拟合。
交叉熵损失可以最小化模型预测的不确定性,但在不同的增强方式下,可能无法提供一致的不确定性分数。以及当取消教师-学生机制时,这个问题更难解决。因此,MEMO针对每个测试样本计算在多种增强方式(增强方法使用AugMix)下的平均预测结果,然后最小化增强后的边际输出分布的熵。
除了前面基于熵的方法,另一种方式是基于原型的优化,基于原型的学习是一种用于无标签数据的策略,其方式是为每个类别选择一个具有代表性的样本或均值,并使用基于距离的度量方法对无标签数据进行分类。然而,在分布发生偏移的情况下,其有效性可能会受到限制。为了找到可靠的原型,TSD使用基于香农熵的filter从目标样本中高置信度地识别出类别原型。然后,如果某个目标样本最近的原型与其来自同一分类器的类别预测结果一致,那么该目标样本将被用于更新目标分类器(结合了距离和不确定性)。
提高对unseen target样本的泛化能力
通常情况下,OTTA会使用同一批数据来进行模型更新和评估。在此,我们希望模型能够在即将到来的测试样本上表现良好,或者说具备良好的泛化能力。一种有效的技术是锐度感知最小化(SAM),该方法不追求在其附近梯度上呈现“尖锐”状态的极小值,而是更倾向于一个“平坦”的极小值区域。
其中,
S
(
x
)
S(x)
S(x)是一个基于熵的指示函数,可以过滤不可信的预测。
E
S
A
(
x
;
Θ
)
E^{S A}(x ; \Theta)
ESA(x;Θ) 的定义如下:
这一项旨在在半径为
ρ
\rho
ρ的欧几里得球内找到一个权重扰动
ϵ
\epsilon
ϵ,使熵达到最大化。它通过测量
Θ
\Theta
Θ与
Θ
+
ρ
\Theta + \rho
Θ+ρ之间熵的最大变化量来量化锐度。因此,公式(12)同时最小化了熵及其锐度。
影响OTTA泛化能力的另一个难题是批次中的类别不平衡问题:用于模型更新的数据数量有限,往往无法反映真实的类别出现频率。为了解决这一问题,DELTA中的动态在线重新加权(DOT)方法使用了一个通过动量更新的类别频率向量。这个向量在初始化时为每个类别赋予相等的权重,并且在每次推理步骤中,根据当前样本的伪标签和模型权重进行更新。对于一个目标样本而言,若某个特定类别的权重(或频率)较大,就会促使动态在线重新加权(DOT)方法在后续的自适应学习过程中减少该样本的贡献。这可以防止模型朝着出现频率较高的类别进行有偏差的优化,从而提高模型的泛化能力。
特征表示学习
由于假定测试数据没有标注信息,对比学习能够自然地应用于测试时自适应任务中。以自监督的方式,对比学习旨在学习这样的特征表示:正样本对(一个数据样本及其增强样本)之间的距离较近,而负样本对(不同的数据样本)之间则相互远离。然而,这通常需要进行多个训练轮次的更新,这与在线自适应的设置不相符。为了适应在线学习,自适应对比学习使用target伪标签来忽略潜在的同类负样本,而不是将所有其他数据样本都视为负样本。
基于伪标签的优化
伪标签(Pseudo-labeling)是领域自适应和半监督学习中的一项有用技术。它为置信度高的样本分配标签,然后这些带有伪标记的样本会被用于训练。由于自适应过程局限于当前这一批测试数据,因此常常会采用批次级别的伪标签方法。例如,多尺度局部自适应(MuSLA)将伪标签作为在BatchNorm更新之后的一个后优化步骤来实施,利用当前批次数据的伪标签来优化分类器,从而提高模型的准确率。
此外,在诸如协同在线测试时自适应(CoTTA)、RoTTA 以及 ViDA 等模型中所采用的师生框架,同样也采用了伪标签策略。在此框架中,教师模型的输出被用作 soft 伪标签,这能防止模型过拟合于错误的预测结果。
在OTTA中,可靠的伪标签至关重要,但获取起来颇具挑战性。连续的数据流限制了对预测结果进行复查的机会。此外,源数据集和测试数据集之间的协变量偏移会降低伪标签的可靠性。
为了应对这些挑战,测试时自适应半监督训练(TAST)采用了一种基于原型的伪标签策略。class质心是从一个support集中获取的,该support集最初由源数据预训练分类器的权重推导而来,并使用归一化的测试数据特征进行优化。为了避免不可靠的伪标签导致性能下降,它仅使用附近的support样本计算质心,然后使用经过温度缩放的输出来获取伪标签。另外,自适应对比学习(AdaContrast)在特征空间中使用 soft K-NN投票法来生成可靠的伪标签。还有其他方法使用多种增强方法和多数投票法来获得一致且可靠的伪标签。
互补伪标签
独热伪标签常常会导致大量的信息丢失,尤其是在存在领域偏移的情况下。为了解决这一问题,增强对比学习既考虑了最大概率预测,也考虑了那些低于特定置信度阈值的预测结果(即互补标签)。其背后的逻辑是,如果模型对某一预测的置信度较低,那么这一预测就应该受到更重的惩罚。这有助于防止模型基于错误但置信度高的预测做出激进的更新,原理类似 soft 伪标签更新。
参考文献
[1] Liang J, He R, Tan T. A comprehensive survey on test-time adaptation under distribution shifts[J]. International Journal of Computer Vision, 2025, 133(1): 31-64.
[2] Wang D, Shelhamer E, Liu S, et al. Tent: Fully test-time adaptation by entropy minimization[C]. ICLR, 2021.
[3] Hu X, Uzunbas G, Chen S, et al. Mixnorm: Test-time adaptation through online normalization estimation[J]. arXiv preprint arXiv:2110.11478, 2021.
[4] Liu J, Yang S, Jia P, et al. Vida: Homeostatic visual domain adapter for continual test time adaptation[J]. arXiv preprint arXiv:2306.04344, 2023.
[5] Yuan L, Xie B, Li S. Robust test-time adaptation in dynamic scenarios[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 15922-15932.