本文衔接上一篇:IJCV2025综述-在线测试时适应(1):基于优化的OTTA
基于数据的OTTA
由于测试批次中的样本数量有限,遇到意外的分布变化是很常见的情况。我们应该认识到,数据本身应该是弥合源数据和测试数据之间差距的关键因素。本篇将探讨OTTA中以数据为中心的策略,这些策略旨在提高模型的泛化性,并使模型判别能力适应于当前批次(下图)。
数据增强
数据增强在领域自适应和领域泛化中至关重要,因为它模拟了现实世界中的各种变化,从而提升模型的迁移能力和泛化能力。这对于测试时适应尤其有用。
预定义的增强方法
诸如裁剪、模糊和翻转等常见的数据增强方法已被有效地融入到各种OTTA方法中。这种融合的一个例子是测试时协同训练(TTC),它利用来自多种增强方式的平均预测结果来更新模型。像RoTTA、协同在线测试时自适应(CoTTA)和 ViDA 等均值教师模型,会对教师模型/学生模型的输入应用预定义的增强方法,并在不同的增强视图之间保持预测的一致性。
为了确保预测结果的一致性和可靠性,ROID通过采用对称交叉熵(SCE)利用数据增强来实现预测的一致性。PAD对单个测试样本进行多次数据增强,然后采用多数投票法,他们认为如果大多数增强后的视图得出相同的预测结果,那么该预测很可能是正确的。TTPR采用KL散度,通过使三个增强视图的平均预测结果与每个视图的预测结果保持一致,来实现一致的预测。另一种方法,即MEMO,对测试图像使用了AugMix。对于一个测试数据点,会从AugMix增强集合A中生成一定数量(通常为32种或64种)的增强结果,以得出一致的预测。
上下文增强
此前,OTTA方法常常预先确定增强策略。鉴于在不断变化的环境中,测试数据的分布可能会发生显著变化,固定的增强策略可能并不适用于每一个测试样本。在协同在线测试时自适应(CoTTA)中,并不是采用统一的策略对每个测试样本进行增强处理,而是仅在检测到领域差异(即预测置信度较低)时,才审慎地应用增强方法,这样就降低了误导模型的风险。
对抗性增强
传统的增强方法所提供的数据视角往往有限,无法充分体现领域差异。TeSLA通过利用对抗性数据增强来确定最有效的增强策略,从而解决了这一问题。它没有使用固定的增强集合,而是创建了一个策略搜索空间
O
O
O作为增强池,并为每种增强方式分配一个取值范围在
[
0
,
1
]
[0,1]
[0,1]内的幅度参数
m
m
m 。一个子策略
ρ
\rho
ρ由增强方式及其相应的幅度组成。为了优化该策略,教师模型会使用带有严重程度正则化的熵最大化损失函数来进行自适应调整,在鼓励预测结果产生变化的同时,避免使用强度过大、与原始图像偏离太远的增强方式。
记忆库-Memory bank
除了那些能够使数据批次多样化的增强策略之外,记忆库是一种强大的工具,它可以保存有价值的数据信息,以便在未来进行记忆重放。建立一个记忆库涉及两个关键的考量因素:(1)确定存储哪些数据,找出在适应过程中对重放有价值的样本。(2)管理记忆库,包括添加新实例以及移除旧实例。
记忆库策略通常在时间上是均匀的,并且在类别上是平衡的。许多方法会将这两个方面结合起来以实现最大的效果。为了解决时间相关的分布问题和类别不平衡问题,NOTE引入了预测平衡的蓄水池抽样法(PBRS),用于保存样本-预测对。PBRS结合了时间均匀抽样和预测均匀抽样。时间均匀抽样方法,即蓄水池抽样(RS),旨在在时间流中获取均匀分布的数据。对于一个被预测为类别 k k k的样本 x x x,从均匀分布 [ 0 , 1 ] [0,1] [0,1]中随机抽取一个值 p p p。如果 p p p小于记忆库中类别 k k k的比例,那么就用 x x x替换来自同一类别的一个随机样本。预测均匀策略(PB)优先考虑预测标签,以保持多数类别的平衡,即用一个新样本替换来自多数类别的一个随机实例。PBRS确保了在时间和类别上的平衡分布,从而增强了模型的适应性。
在SoTTA中采用了类似的策略促进类别平衡学习。当记忆库有可用空间时,每个高置信度的样本-预测pair会被保存。如果记忆库满了,该方法会选择替换来自多数类别之一的一个样本,这确保了平衡的类别分布。RoTTA提供了兼具实时性和不确定性的类别平衡采样模块。
为了避免批次级别类别分布带来的负面影响,TeSLA引入了一个在线队列,用于保存类别平衡的弱增强样本特征及其相应的伪标签。为了提高伪标签预测的准确性,每个测试样本都会与队列中与其最相似的样本进行比较。类似地,TSD将样本embedding及其相关的对数几率值保存在记忆库中,以实现可靠的预测。
自适应对比学习(AdaContrast)提供了一种创新的解决方案。它将之前遇到的所有关键特征和伪标签都保存在一个记忆队列中,以避免形成来自同一类别的“push” pair(即避免同一类别的特征被过度拉开差距)。这加快了学习过程,并减少了同一类别数据中的误差积累,从而提高了效率和精度。
基于模型的OTTA
基于模型的OTTA通过调整模型架构来应对分布偏移问题。所做的改动通常要么是添加新的组件,要么是替换现有的模块。这一类方法包括基于提示工程的进展,涉及到调整提示参数,或者使用提示来引导自适应过程(见下图)。
模块添加
输入变换
为了应对领域偏移问题,穆马迪等人(2021年)引入了对输入变换模块
d
d
d进行优化的方法,同时还结合了上一篇讨论的BatchNorm层。这个模块构建在源模型
f
f
f之上,即
g
=
f
∘
d
g = f \circ d
g=f∘d。具体来说,
d
(
x
)
d(x)
d(x)定义为:
其中 γ \gamma γ和 β \beta β是逐通道的变换参数。组件 r ψ r_{\psi} rψ表示一个网络,其设计的输入和输出形状相同,具有3×3卷积、GroupNorm和ReLU激活。参数 τ \tau τ有助于对未改变的输入 x x x 和变换后的输入 r ψ ( x ) r_{\psi}(x) rψ(x) 进行线性组合。
自适应模块
为了在模型更新过程中稳定预测结果,TAST在源预训练模型中添加了20个自适应模块。这些模块基于批量集成(BatchEnsemble)的方法,被添加到预训练的特征提取器顶部。通过将这些自适应模块的平均结果与一批数据对应的伪标签相结合,这些模块会被独立地多次更新。
对于持续适应(continual adaptation)而言(持续OTTA每个时间步不会回复到源训练模型),及时检测并适应数据分布的变化,对于解决灾难性遗忘和误差积累问题至关重要。为了实现这一点,ViDA采用了低秩/高秩特征协作的方法。低秩特征保留一般性知识,而高秩特征捕捉数据分布的变化,作者引入了两个与线性层并行的适配器模块,以分别获取这些特征。
由于在持续OTTA中,数据分布的变化是不可预测的,因此从策略上对低秩和高秩信息进行组合就显得至关重要。有方法使用了蒙特卡罗随机失活(MC dropout,2016年)来评估模型对于输入 x x x 的预测不确定性。这种不确定性会调整赋予每个特征的权重。如果模型对某个样本的预测存在不确定性,那么特定领域知识(高秩特征)的权重就会增加;如果不确定性低,则领域共享知识(低秩特征)的权重就会增加。这有助于模型在动态识别数据分布变化的同时,保持其决策能力。
模块替换
模块替换通常是指将模型中现有的一个模块替换为一个新的模块。
分类器替换
基于余弦距离的分类器通过利用与具有代表性的样例之间的相似性来进行决策,从而提供了灵活性和可解释性。TAST通过评估样本特征与support集之间的余弦距离来得出预测结果。TSD采用了类似的分类器,将当前样本的特征与从记忆库中获取的 K-NN 样本的特征进行比较。PAD在其多数投票过程中使用余弦分类器来预测经过增强处理的测试样本。T3A依靠support集中的模板与输入数据表示之间的点积来进行分类。
BatchNorm替换
在更新BatchNorm统计信息的背景下,任何超出标准更新方法对BatchNorm所做的改动都属于这一类别。可以参考上一篇基于优化的OTTA中关于归一化的内容。
基于提示的适应
提示(Prompt)在像CLIP这样的视觉语言模型中被广泛讨论(CLIP属于预训练-提示范式),它涉及到各种设计和学习策略,尤其是当提示被设置为一个可学习的参数时。为了清晰起见,在此整合了所有与提示相关的自适应方法。
装点新样本-DN
“装点新样本”(DN)将提示用作图像输入之上的补充信息。它采用了Teacher-Student框架,其中源预训练模型被冻结,以此来捕捉特定领域和通用领域的提示信息。对于特定领域的知识,该方法通过优化教师模型和学生模型输出之间的交叉熵损失来进行学习。此外,“装点新样本”方法引入了参数不敏感性损失,以降低那些容易受领域偏移影响的参数的作用。这确保了在学习新的特定领域信息的同时,更新后的参数能够保留通用领域的知识。
- DN图1:问题与DN的核心思想。我们的目标是使源模型能够适应不断变化的目标领域。在基于模型的OTTA中,与过去方法不同,DN旨在通过以下方式将变化的目标数据集适应到源模型:
- 1)针对每个领域调整视觉提示,同时保持源模型冻结;2)在当前目标领域测试时,利用学习到的提示重新构建输入数据。这种从依赖模型的范式向无模型范式的转变,使我们能够避免优化模型导致的灾难性遗忘。
- DN表1:DN适合持续OTTA场景。
- DN图2:a) 领域提示训练Domain prompt training。由于我们冻结了源模型,所有更新过程仅针对领域特定提示和领域无关提示进行。使用Teacher-Student框架来更新这两种提示。教师网络停止反向传播,而学生网络负责学习。当进入每个训练时间步 t 时,学生网络会通过指数移动平均(EMA)更新将其参数传递给教师网络。模型的输入是原始图像和经过增强的图像。领域特定提示和领域无关提示逐点相加,分别得到带提示的输入和带提示的增强输入。预测结果通过冻结的源模型获得。使用公式(5)更新领域特定提示,并利用公式(6)优化领域无关提示。由于更新过程在批次级别进行,从前一批次学习到的提示将应用于下一批次的图像。
- b) 领域提示测试。在领域提示测试阶段,输入图像与领域特定提示和领域无关提示逐点相加。然后,我们将这种重新构建的图像输入源域模型进行预测。
- DN公式5-6
相关工作:提示学习
NLP中的提示学习可以参考:P-tuning(LLM低成本微调方法),本质都是通过添加可学习的"提示"(外部信号)让输入直接适应到源训练模型上。
提示学习(Prompt learning)最初是在NLP中提出的,旨在使预训练的视觉语言模型(比如CLIP)能够适应各种下游任务。最近,提示的概念已被应用于一些多模态任务中。CoOp将提示学习引入计算机视觉领域,通过将上下文单词转换为一组可学习的向量,使预训练的视觉语言模型更好地适应任务。CoCoOp进一步将这种静态提示改进为动态提示,以更好地适应类别转移。然而,这些方法并未针对域转移进行设计。Li等人(2021)提出了一种新的预训练任务,通过实体提示模块以自监督的方式学习视觉区域和文本实体之间的细粒度对齐。Ge等人(2022)首次将提示学习应用于域适应任务。除了在文本模态中添加提示外,一些研究还尝试了其他提示形式。Bahng等人(2022)和Jia等人(2022)提出了一种针对预训练Transformer的新型视觉提示表示方法。Wang等人(2021b)则将特征作为提示,并动态学习提示以指导模型。
DN方法细节
假设有一个在源域上训练的模型 q θ ( y ∣ x ) q_{\theta}(y | x) qθ(y∣x),要在多个目标数据集 D ~ μ 1 , D ~ μ 2 , ⋯ , D ~ μ T \tilde{D}_{\mu 1}, \tilde{D}_{\mu 2}, \cdots, \tilde{D}_{\mu T} D~μ1,D~μ2,⋯,D~μT上进行测试,其中 D ~ μ i = { ( x i T ) } i = 1 N μ \tilde{D}_{\mu i}=\{(x_{i}^{T})\}_{i = 1}^{N_{\mu}} D~μi={(xiT)}i=1Nμ, N μ N_{\mu} Nμ表示目标域的规模。目标域的分布会随时间变化或重现(例如,自动驾驶场景中的晴天、阴天、雨天和夜间场景)。目标是在线持续调整新分布的输入数据,使其适应源模型。
DN冻结源模型,以避免模型优化中出现的灾难性遗忘问题,仅对输入的图像进行修改。该框架包含两个模块:一个视觉域提示模块(包括两种类型的提示)和一个基于稳态的提示更新策略。
视觉领域的提示
所提出的轻量级视觉域提示包含两种类型:域特定提示和域无关提示。作为输入数据与模型之间的 “信使”,视觉域提示被直接添加到输入图像的一部分上,然后将添加了提示的图像输入源模型进行预测。这些提示会依据两种不同的损失函数定期更新。
对于领域提示,一种是域特定提示(DSP),另一种是域无关提示(DAP)。域特定提示旨在提取当前域的知识,而域无关提示则对维持域共享知识起作用。将DSP定义为 ψ δ \psi_{\delta} ψδ,DAP定义为 ω ϕ \omega_{\phi} ωϕ。DSP和DAP都是可学习的参数矩阵,它们通过相加应用于输入图像 x T x^{T} xT。 x T x^{T} xT、 ω ϕ \omega_{\phi} ωϕ和 ψ δ \psi_{\delta} ψδ根据坐标逐点相加,没有重叠的区域不进行运算。然后得到用于训练和测试的重构图像 x p T x_{p}^{T} xpT。此外,值得注意的是,DSP和DAP的大小和位置是灵活的。
赫布理论包括赫布可塑性和稳态可塑性,旨在快速在短时间内稳定神经元活动。DN从赫布理论中获得灵感,以实现域特定提示(DSP)和域无关提示(DAP)的功能。DN对DSP和DAP应用不同的损失函数,以确保神经元的可塑性并增强其稳定性。
提示更新的机制
采用Teacher-Student网络作为框架来更新这两种提示。当学生网络
f
θ
t
f_{\theta t}
fθt从
θ
t
\theta_{t}
θt更新到
θ
t
+
1
\theta_{t + 1}
θt+1时,学生网络的权重会通过指数移动平均更新的方式,更新到教师网络
f
θ
t
′
f_{\theta t}'
fθt′中。需要注意的是,由于源模型是冻结的,所以仅对这两种提示进行参数更新。DN使用交叉熵损失作为域特定提示(DSP)的优化函数。对于域无关提示(DAP),DN添加一个正则化项来约束那些对域敏感的参数,以缓解在面对域变化时的不稳定性。然后DN会将前一批次学习到的提示应用到下一批次进行测试。
此外,DN在实验中使用的模型是ResNet50。
其他基于提示的OTTA方法
DN可以让视觉模型实现OTTA,对于视觉语言模型(VLM)的OTTA,测试时提示调优(Test Time Prompt Tuning)是一种解决方案。测试时提示调优仅通过调整模型输入的上下文来学习提示,从而保留了模型的泛化能力。测试时提示调优(TPT)为每个测试图像生成
N
N
N个随机增强的视图,并通过最小化平均预测概率分布的熵来更新可学习的提示参数。此外,置信度选择策略会过滤掉熵值较高的输出。通过更新可学习的提示参数,模型能够更轻松地适应新的、未曾见过的领域。
- TPT图1:用于图像分类的测试时提示调整(TPT)。我们利用单个测试样本即时调整自适应提示,无需额外的训练数据或注释。TPT通过最小化边际熵来优化提示,以促使模型在不同增强视图下做出一致的预测。我们引入置信度选择机制来过滤掉有噪声的增强视图。
- TPT图2:在Bongard-HOI基准测试中,用于上下文相关视觉推理的测试时提示调整(TPT)。Bongard-HOI中的一个测试样本由几个support图像组成,这些图像例证了一个视觉概念,模型需要预测查询图像是否包含该概念。TPT使用交叉熵损失在支持图像上同时调整提示和类别token。