- 论文 - 《On-demand Test-time Adaptation for Edge Devices》
- 关键词 - 边缘edge、TTA、BN解耦、内存高效
摘要
- 研究背景:现有的CTTA会在每个新到达的数据批次熵持续对模型使用,带来较大的内存开销和能耗,在资源受限的边缘设备实际应用性较差。
- 本文关注
- 提出了新的范式--按需测试时适应(on-demand TTA),仅在检测到显著的领域偏移时才触发模型适应。
- 提出了OD-TTA,一个面向边缘设备、准确的按需TTA框架,包含三个关键技术:
- (1)轻量级领域偏移检测机制 :仅在需要时激活TTA,大幅降低整体计算开销;
- (2)源领域选择模块 :选择合适的源模型用于适应,确保高且稳定的准确性;
- (3)解耦的批归一化(Batch Normalization, BN)更新方案 :支持在小批量数据下进行内存高效的模型适应。
1 引言
- 前人工作(提升TTA效率)
- EATA(Niu 等,2022)通过过滤冗余数据减少适应过程中的能耗;
- EcoTTA(Song 等,2023)和 MECTA(Hong 等,2023)旨在降低内存开销;
- SAR(Niu 等,2023)则设计用于在批量大小为 1 的情况下进行模型适应。
- 局限:(1)现有的高效 TTA 方法并未从根本上解决效率问题,因为它们仍然遵循 CTTA 范式,即对每一个测试批次都执行计算密集型的反向传播。(2)考虑到在实际场景中连续批次之间的领域偏移通常较小(Sun 等,2022),CTTA 可能不会带来显著的准确率提升。
- 新范式:按需测试时适应
- 需要对每个新到达的样本/批次进行持续监控以检测潜在的领域偏移 。然而,在没有标签的情况下高效地量化领域偏移(或性能下降)是一项具有挑战性的任务,且在现有TTA研究中尚未得到充分探索;
- 与连续批次分布通常相似的continual TTA不同,on-demand TTA在检测到领域偏移后,本质上需要应对更严重的分布变化;
- 现有基于BN的TTA方法存在一个显著限制:它们依赖于较大的批量大小,这会带来较大的内存开销。
- 新方法:OD-TTA
- 三个关键insights
- 熵不仅可以用于模型适应,也可以检测领域偏移。基于此设计了一种使用指数移动平均(EMA)熵的轻量级领域检测机制。
- 不同源领域进行适应会导致不同的适应后性能。基于此提出了一种相似领域选择流程 ,构建并选择最接近的源领域进行适应,从而提升性能并加快收敛。
- 受启发于更新BN统计量与BN参数 所需内存不同、对批量大小的敏感性也不同的特性,我们设计了一种解耦的BN更新方案 ,可以使用不同的批量大小异步更新BN统计量和参数 ,从而在受限内存预算下实现有效的模型适应。
- 三个关键insights
2 相关工作
2.1 CTTA
- 自监督CTTA:利用伪标签以有监督的方式微调
- (Wang, 2022)提出了一种数据增强方法,构建了一个均值教师模型用于生成伪标签。
- (Bartler, 2022)引入了元学习 (meta-learning)来优化模型的初始参数。
- (Döbler, 2023)提出了使用对称交叉熵 (symmetric cross-entropy)替代传统的交叉熵损失函数,用于均值教师模型的适应,结果表明其更适用于该框架。
- 无监督CTTA: 利用无监督损失函数
- (Benz, 2021)强调了 BN 层在应对领域偏移中的关键作用。
- (Wang, 2020)提出了 Tent ,它通过简单的熵最小化来更新BN层。
- (Niu, 2022)进一步提出了EATA ,在TENT基础上通过过滤冗余和不可靠的数据并重新加权剩余数据,提升了性能。
- (Niu, 2023)将BN层替换为分组归一化 (GN)层,使得TTA即使在批量大小为1的情况下也能运行,但带来了较高的适应延迟。
- MECTA 将BN层替换为一种新型的MECTA归一化层,从而降低内存需求;
- Eco-TTA 则通过在主干网络中集成轻量级元网络来优化反向传播过程中的内存消耗。但是它需要重新定义和重新训练模型,不能即插即用。
2.2 域偏移检测
-
相关工作
- Luo 等人和 Vovk 等人采用一个辅助神经网络来为每个样本预测一个“鞅”(martingale),作为领域偏移的指示器。尽管该方法能够有效检测不可预测的领域偏移,但由于需要持续更新一个动态卷积神经网络(CNN),其内存开销较大。
- Guy 等人通过源数据集计算源领域的泛化界(generalization bound),并通过判断测试样本是否超出该界限来识别领域偏移。虽然这种方法在运行时对内存需求较低,但其依赖于大量训练数据来建立准确的泛化边界,因此在数据获取方面要求较高。
- Chakrabarty与 Niloy提出使用从一批数据中提取的特征均值来表示该批次所属的领域,并在领域差距超过阈值时将模型重置回源领域,以实现可靠的 CTTA。然而,这类基于特征的方法高度依赖于较大的批量大小,使其难以适用于数据按顺序、小批量到达的在线数据流场景。
-
相比之下,本文提出的检测方法具有轻量化与高效性 双重优势,能够适应任意批量大小配置 ,相较于现有方法具备显著优势。
3 On-demand TTA
3.1 问题建模
在实际的边缘计算场景中,传感器数据以序列形式依次到达,表示为:S_{\text{seq}} = \{s_1, s_2, ..., s_t, ...\},其中 s_t 表示在时间步 t 到达的一个单一样本或小批量样本。
3.2 OD-TTA 概览
- 如图2所示OD-TTA的整体框架,包含两个核心模块
- (1)领域偏移检测:持续对输入数据流进行推理,同时监控潜在的领域变化。
- (2)模型适应:当检测到显著的领域偏移,触发一个两阶段的适应过程:
- (2.1)源领域选择:OD-TTA从一组候选模型(预训练或已适应过的模型)中选择最接近当前领域的模型。(加快适应过程、提升适应性能)
- (2.2)模型适应:OD-TTA使用一种解耦的批归一化(BN)更新策略,将模型适配到新的领域数据上。该策略能够在保持相近准确率的前提下,显著降低内存消耗。

3.3 领域偏移检测
- 前情分析
- 首要目标轻量化,因为这一过程持续进行。
- 没有真实标签,难以直接监控准确率下降。
- 洞察1:在推理阶段,模型的准确性与预测结果的熵呈负相关。
- 负相关比较好理解,熵越大代表预测不确定性越大,准确率就越小。
- 作者在附录给出了验证,在此略过。
- 因此,可以探索使用熵作为评估领域偏移引起准确率变化的潜在指标。
3.3.1 EMA 熵计算
(困难) (1) 某些样本可能导致模型做出 overly confident 的预测,从而破坏上述负相关性。(2)考虑到测试阶段数据是以流式方式到达的,逐样本的熵值无法准确反映整体模型性能。
(引入EMA) 为此,我们引入了一种指数移动平均(EMA)策略,用于平滑逐样本的熵值,并结合历史熵信息,从而提供一个更稳定的模型准确率估计。EMA熵的计算公式如下:
其中:
- E_t 表示时间步 t 的 EMA 熵;
- m 是动量因子(取值范围为 0 到 1);
- x_t 是时间步 t 当前输入样本的熵值。
动量 m 影响 EMA 熵的稳定性及其对领域偏移的敏感度:
- 动量越大,当前熵值对 EMA 熵的影响越小,曲线越平稳,但对领域偏移的响应越迟钝;
- 动量越小,EMA 熵对领域偏移更敏感,但可能更容易受到噪声干扰。
通过引入 EMA 熵机制,OD-TTA 实现了在资源受限设备上对领域偏移的高效、稳定且轻量级的检测能力。
3.3.2 偏移判定
在每次完成模型适应过程后,OD-TTA 会记录接下来若干个样本的 EMA 熵值,并将其作为当前模型在该领域数据上的熵基线( \text{EMA}_{\text{base}} ),用于反映模型在当前适应领域的性能表现。
由于 OD-TTA 直接从模型推理输出中计算逐样本的 EMA 熵值(记作 \text{EMA}_{\text{sample}} ),因此额外的计算开销非常小。当检测到:
其中 \text{EMA}_{\text{thr}} 是一个手工定义的阈值,此时将触发一次模型适应过程。该阈值的设定对于在偏移检测的敏感性与适应带来的计算开销之间取得平衡至关重要。
3.4 源领域选择
- 前情分析
- CTTA通常从上一个领域进行模型适应。
- 由于可能遇到显著的分布偏移,这种策略可能不再有效。
- 洞察2:源领域(即每次适应前的领域)会对适应过程产生显著影响,包括收敛速度和适应后的准确率。
- 不同领域之间具有不同程度的相似性(例如,“雾天”和“霜天”看起来更接近,而“雾天”与“像素化”差异更大),从相似的源域开始训练效果更好。
- 因此,设置候选池进行最相似的源领域选择,包含两个关键问题:构建初始候选池和评估领域相似性。
3.4.1 候选池构建
考虑到一个领域本质上反映了某一特定数据集的分布特征,构建候选池的过程可以转化为生成多个具有不同分布的数据集。由于训练数据集本身因数据来源和采集条件的不同,天然包含了多样化的分布,我们提出将训练数据集划分为多个子集,并在每个子集上对预训练模型进行适应,从而构建候选池,如图3(a)所示。
具体步骤如下:
- 提取BN统计量:BN层的统计信息(均值和方差)能够很好地反映数据分布。优先使用浅层BN层,因为它们更能捕捉领域特异性特征。
- 聚类划分数据集:基于这些BN统计量,使用K-Means算法将训练样本聚类为 M 个子集,每个子集代表一个领域。
- 监督式BN适应:仅对每个子集更新BN层,以监督方式对预训练模型进行适应,最终保存各子集对应的BN参数,形成候选池中的 M 个领域候选模型。
在运行过程中,还可以通过加入历史领域(即已适应过的模型)来进一步扩展候选池,使其更贴近真实世界中的领域特性。
由于TTA通常只更新BN层,将仅保存BN层所需的存储开销与完整模型进行对比。如图3(b)所示,BN层参数与总参数对比,因此候选池的内存消耗较小。

3.4.2 相似候选选择
第二步是从候选池中选择一个与当前新领域最相似的源模型。该过程依赖于准确提取新领域的特征表示。为此,我们缓存来自新领域的 N 个样本,然后通过源模型进行处理,以获取新的BN统计信息。
具体来说,设第 k 批样本表示为 \{x_i\}_{i \in B_k} ,其中 B_k 是第 k 批样本的索引集合。则第 k 批的BN均值 \mu_k 计算如下:
其中 |\mathcal{B}_k| 表示批次大小, \phi(x_i) 表示样本 x_i 经过第二个BN层后的输出(第二个BN层因为经验证性能比较好)。然后,整体领域特征 \mu_{\text{domain}} 被计算为所有 K 个批次的平均 BN 均值:
接下来,计算 \mu_{\text{domain}} 和候选池中每个候选模型 c 的 BN 均值 \mu_c 之间的 L2 距离。具有最小距离的候选模型被选为与目标领域最相似的领域,用于后续适应:
这里, c^* 表示被选中的候选模型,它能够最小化 L2 距离,从而确保选择与目标领域最接近的候选模型进行有效适应。
3.5 解耦的 BN 更新
-
前情分析
- 为了实现理想的性能,大多数现有的CTTA方法需要较大的批量大小,这会因反向传播而消耗大量内存。
- SAR提出用分组归一化GN层替换 BN 层来解决批量大小问题。然而,GN 在批量较大时计算开销更高,并且性能较低(Wu & He, 2018)。
-
洞察3:仅使用少量数据更新 BN 层即可实现良好的性能。更新 BN 统计量只需要一次前向传播,这种操作内存高效但对批量大小非常敏感。相比之下,更新 BN (仿射)参数涉及反向传播,虽然对批量大小不那么敏感,但内存开销更大。
- 作者在附录 A.4中深入研究了 BN 层的操作机制并通过实验得出了上述洞察。
- 这一观察促使作者将 BN 的适应过程解耦:在推理阶段通过较大的批量大小更新 BN 统计量,而在较小的批量大小下通过反向传播更新 BN 参数,以节省内存。
3.5.1 BN 统计量更新
在缓存了 N 个样本用于相似领域选择后,作者高效地重用这些样本形成一个小数据集,用于适应 BN 层。具体而言,这些样本被划分为 K 个批次。受先前工作(Yang et al., 2022)启发,采用指数移动平均方法将源模型的 BN 统计量与新域数据的批次进行融合,定义如下:
其中:
- S_k 表示第 k 批次的集成 BN 统计量;
- \beta 是动量因子;
- S_{k-1} 是从上一批次集成的 BN 统计量;
- B_k 表示当前批次的 BN 统计量;
- S_0 是选定候选模型的 BN 统计量。
- 为了确保所有批次的贡献能够合理地与源统计量结合,动量因子 \beta 被设置为 1/K 。
3.5.2 BN 参数更新
在更新 BN 统计量后,选定的模型已经捕捉到了新数据的分布,但 BN 参数仍需通过反向传播进行微调。为了适应设备上的有限内存,希望使用较小的批量大小更新 BN 参数。然而,由于无监督学习固有的不稳定特性,单样本的反向传播具有挑战性。为了实现稳定的微调,作者引入了两种策略:(1) 样本过滤器,用于移除不可靠的样本;(2) 对比损失作为正则项,用于细化熵损失。
我们定义总的适应损失为:
其中:
- \mathcal{L}_{\text{entropy}} 是常规的熵损失,用于确保置信预测;
- \mathcal{L}_{\text{contrastive}} 是对比损失,用于正则化适应过程;
- \lambda 是平衡两个组件的权重因子,经验设置为 0.05。
首先,正如先前工作(Niu et al., 2022; 2023)所指出的,高熵样本会对熵最小化产生负面影响,因此我们设置了硬熵阈值,定义为 0.4 \cdot \log(C) ,遵循 EATA 和 SAR 中提出的方法,其中 C 是类别数,0.4 是经验得出的最优常数。
其次,得益于源领域选择,我们可以获得两种不同的模型:较差的源模型(候选选择之前)和当前模型(更新选定候选的 BN 统计量之后)。受对比学习(Jaiswal et al., 2020)的启发,较差的源模型可以作为锚点,引导反向传播过程。这是通过构建一个对比损失作为熵损失的正则项来实现的。数学上,令 p 表示正在适应的当前模型的预测, p_{\text{anchor}} 表示较差源模型的预测。对比损失计算如下:
最小化对比损失系统性地将当前模型的预测结果从较差模型的预测结果中分离出来,并引导其朝着与选定候选模型更一致的方向发展。
4 实验
4.1 实验设置
- 数据集:Cifar-10-C、ImageNet-C、SHIFT(域转移数据集,展示了三个域转移,包括白天→黑夜、晴朗→雾和晴朗→雨)
- 基线:CoTTA\TENT\EATA\SAR\MECTA
- 实验细节
- 具体参数见论文,针对每个数据集设置了EMA_{thr}=0.1/1.2/5.5、还有用于BN统计量更新和BN参数更新的样本数、批次大小、学习率。
4.2 主要结果
- 在 Cifar10-C 和 ImageNet-C 上的性能
- 如表1所示,在所有批次中,ODTTA都达到了最高的准确率,尤其是在批次为1时。
- MECTA的内存效率最高,但是ODTTA可以在较小批次时以更少的内存占用实现相同的性能。

- SHIFT上的性能
- 鉴于语义分割的计算密集度明显高于分类,使用批量大小 1 评估 SHIFT 数据集的性能。
- 如表2所示,OD-TTA 在所有类型的领域偏移中始终优于所有基线。
- 基于 GN 的方法 SAR 在分类任务中优于基于 BN 的基线,在分割任务中表现最差。

- 能耗分析
- 如图4,在边缘设备Jetson Orin Nano上测试批量大小为1和16的能耗。
- OD-TTA 在两种批量大小下均实现了最高达 47.1% 的能耗节省

附录A.4
作者在附录A.4 部分展示了BN仿射参数和统计信息的特点以及对TTA的影响。
A.4.1 少量数据适应即可缓解领域偏移
在 CIFAR-10-C 数据集上,对以下方法进行对比(注意Few-data方法采用少量样本适应,测试在剩余样本上的推理准确率):
- Continual BN Stats :持续使用测试批次统计量更新 Batch Normalization (BN) 统计量;
- Continual Tent :通过熵最小化更新 BN 的仿射参数,同时使用测试批次统计量更新 BN 统计量;
- Few-data BN Stats :使用 128 个样本,通过 EMA 方法更新 BN 统计量;
- Few-data Adapt :进一步扩展了 Few-data BN Stats,使用这 128 个样本同时更新 BN 统计量(通过 EMA)和仿射参数(通过熵最小化)。
从表5可以看出:
- 在大多数损坏类型下,“少量数据适应”方法的性能与持续适应方法(Tent)相当;
- 平均准确率差异极小(77.8% vs. 78.2% );
- 这表明:仅使用少量样本对领域进行一次适应,就足以在后续大量样本上维持鲁棒性能 。

A.4.2 更新 BN 统计量 vs. 仿射参数
从表5中 Continual BN Stats 和 Continual Tent 的结果可以看出:更新 BatchNorm (BN) 统计量对提升适应性能至关重要。
如图11(c)所示,BN 统计量对批量大小敏感。
如图11(b) 所示,从内存使用角度来看,使用较大批量更新 BN 统计量是可行的;而使用较大批量更新 BN 参数所需要的内存是极大的。

A.4.3 解耦适应策略评估
在确认仅使用少量数据进行适应即可实现与持续适应相当的性能之后,作者进一步评估了所提出的解耦 BN 适应策略。
表6中的 Few-data Decoupled Adaptation 结果展示了该方法的有效性:
- 使用 批量大小为 16 更新 BN 统计量;
- 使用 批量大小为 1 更新仿射参数(affine parameters)。
将解耦适应方法与以下三种批量大小为 16 的基线方法进行了比较:
- BN Stats.:仅更新 BN 统计量;
- BN Adapt.:通过熵最小化同时更新 BN 统计量和仿射参数;
- Adapt. with Filter:沿用 EATA 和 SAR 中的做法,仅使用低熵样本进行模型适应。
实验结果表明:解耦适应方法比“少量数据适应”提升了 1.7% 的准确率;
