TENT: FULLY TEST-TIME ADAPTATION BY ENTROPY MINIMIZATION--论文笔记

论文笔记

资料

1.代码地址

https://github.com/DequanWang/tent

2.论文地址

https://arxiv.org/abs/2006.10726

3. 数据集

论文摘要的翻译

在这种完全测试时适应的情况下,模型只有测试数据和自身参数。我们建议通过测试熵最小化(tent)进行适应:我们通过预测熵来优化模型的置信度。我们的方法会估算归一化统计量,并优化通道仿射变换,以便在每个批次上进行在线更新。Tent 降低了损坏的 ImageNet 和 CIFAR-10/100 图像分类的泛化误差,并达到了最先进的误差。在从 SVHN 到 MNIST/MNIST-M/USPS 的数字识别、从 GTA 到 Cityscapes 的语义分割以及 VisDA-C 基准上,Tent 处理了无源域适应。这些结果是在不改变训练的情况下,通过一次测试时间优化取得的。

1 背景

深度神经网络可以对来自相同分布的训练和测试数据实现较高精度,这一点可以从巨大的基准进步中得到证明。然而,对新的和不同的数据的概括是有限的。当训练(源)数据与测试(目标)数据不同时,准确性会受到影响,这种情况被称为数据集偏移。模型可能对测试过程中训练过程中未知的变化很敏感,无论是自然变化还是腐蚀,如意外天气或传感器退化。然而,可能有必要在不同的数据分布上部署一个模型,因此需要进行调整。
在测试过程中,模型必须仅在给定其参数和目标数据的情况下进行调整。这种完全测试时间自适应设置不依赖于源数据或有监督学习。当模型第一次遇到新的测试数据时,在收集和注释之前,这两种方法都不可行,因为推理必须继续。真实世界的使用通过数据、计算和任务需求来适应完全测试时间适应:

  • Availability
    为了带宽、隐私或利润,模型可能在没有源数据的情况下进行发布。
  • Efficiency
    在测试期间(重新)处理源数据在计算上可能不实用
  • Accuracy
    如果不进行调整,模型可能过于不准确,无法达到其目的。

为了在测试过程中进行调整,我们将模型预测的熵最小化。我们将这个目标称为测试熵,并以它的名字命名我们的方法。我们选择熵是因为它与误差和偏移的联系。熵与误差有关,因为更有信心的预测总体上更正确(图1)。
在这里插入图片描述
熵与腐败引起的变化有关,因为腐败越多,熵就越多,随着腐败程度的增加,熵与图像分类的损失具有很强的等级相关性(图2)。
在这里插入图片描述

为了最小化熵,tent通过逐批估计统计量和优化仿射参数,对目标数据的推理进行归一化和转换。这种低维、通道式特征调制的选择在测试过程中非常有效,即使是在线更新也是如此。Tent不限制或改变模型训练:它独立于给定模型参数的源数据。如果模型可以运行,则可以对其进行调整。最重要的是,tent不仅有效地减少了熵,还减少了误差
我们的结果评估了图像分类对损坏的泛化,数字识别对域移动的泛化,以及语义分割对模拟到真实移动的泛化。对于具有更多数据和优化的上下文,我们在给定标记源数据的情况下评估稳健训练、领域自适应和自监督学习的方法。Tent只在给定目标数据的情况下可以实现较小的误差,并且它在ImageNet-C基准测试的最先进技术上有所改进。分析实验支持我们的熵目标,检查对数据量的敏感性和自适应参数的选择,并支持Tent跨架构的通用性

2论文的创新点

  • 强调了只有目标数据而没有源数据的完全测试时适应的设置。为了强调推理过程中的实际适应性,我们对离线和在线更新进行基准测试
  • 我们将熵作为自适应目标,并提出了一种测试时间熵最小化方案(Tent),通过降低测试数据上模型预测的熵来减少泛化误差
  • 对于对的鲁棒性,tent在ImageNet-C上达到44.0%的错误率,优于鲁棒训练(50.2%)和测试时间标准化的强基线(49.9%)
  • 对于领域自适应,tent能够在线和无源地适应数字分类和语义分割,甚至可以与使用源数据并进行更多优化的方法相媲美

3 论文方法的概述

Adaptation处理从源到目标的泛化的任务。在源数据和标签 x s x^s xs, y s y^s ys上训练参数为θ的模型 f θ ( x ) f_θ(x) fθ(x)在移位的目标数据 x t x^t xt上测试时可能无法泛化。
我们的tent只需要模型 f θ f_θ fθ和未标记的目标数据 x t x^t xt在推理过程中进行自适应。
下图是总结的 适应设置、所需数据和损失类型。
在这里插入图片描述
我们在测试期间优化模型,通过调节其特征来最小化其预测的熵。我们把我们的方法tent称为测试熵。下图概述了tent的方法过程。
在这里插入图片描述
要适应的模型必须针对监督任务、概率和可微性进行训练。测试期间没有提供监督,因此模型必须已经过训练。测量预测的熵需要在预测上进行分布,因此模型必须是概率的。梯度是快速迭代优化所必需的,因此模型必须是可微的。用于有监督学习的典型深度网络满足这些模型要求。

3.1 ENTROPY OBJECTIVE

我们的TTA的目标 L ( x t ) L(x_t) L(xt)是最小化模型预测 y ^ = f θ ( x t ) \hat y=f_\theta(x^t) y^=fθ(xt)的熵 H ( y ^ ) H(\hat y) H(y^)。特别地,我们测量了c类的概率 y ^ c \hat y_c y^c的香农熵, H ( y ^ ) = − ∑ c p ( y ^ c ) l o g p ( y ^ c ) H(\hat y)=−∑_c p(\hat y_c)log p(\hat y_c) Hy^=cp(y^c)logp(y^c)。注意,优化单个预测有一个平凡的解决方案:将所有概率分配给最可能的类。我们通过对批处理中共享的参数进行联合优化来防止这种情况的发生
熵是一个无监督的目标,因为它只依赖于预测而不依赖于注释。然而,作为预测的衡量标准,它与监督任务和模型直接相关。
相反,用于自我监督学习的代理任务与监督任务没有直接关系。代理任务从没有任务标签y的输入xt中导出自监督标签y′。这些代理的例子包括旋转预测、上下文预测和跨通道自动编码。代理任务的进展过多可能会干扰监督任务的性能,自监督自适应方法必须相应地限制或混合更新。因此,需要注意选择与域和任务兼容的代理,设计代理模型的架构,并平衡任务和代理目标之间的优化。我们的熵目标不需要这样的做法。

3.2 MODULATION PARAMETERS

模型参数 θ θ θ是测试时间优化的自然选择,这些是对train-time entropy最小化的先验工作的选择然而, θ θ θ是我们设置中训练/源数据模型的唯一表示,改变 θ θ θ可能会导致模型偏离其训练。此外, f f f可能是非线性的, θ θ θ可能是高维的,这使得优化对test-time的使用过于敏感和低效。
在这里插入图片描述

为了稳定性和效率,我们只更新线性(尺度和移位)和低维(通道方向)的feature modulations。上图显示了显示了modulations的两个步骤

  • 通过统计数据进行规范化和通过参数进行转换。归一化将输入 x x x集中并标准化为 x ‾ = ( x − µ ) / σ \overline x = (x−µ)/σ x=(xµ)/σ,通过其平均值µ和标准差σ。
  • 变换通过尺度 γ γ γ和位移 β β β的仿射参数将 x ‾ \overline x x转换为输出 x ′ = γ x ‾ + β x^\prime = γ\overline x + β x=γx+β。注意,统计量 µ µ µ σ σ σ是从数据中估计的,而参数 γ γ γ β β β是通过损失优化的。

为了实现,我们只需重新利用源模型的规范化层。我们在测试过程中更新了所有层和通道的归一化统计量和仿射参数。

3.3 ALGORITHM

  • Initialization
    优化器收集源模型中每个归一化层 l l l和通道 k k k的仿射变换参数 { γ l , k , β l , k } \{γ_{l,k}, β_{l,k}\} {γl,kβl,k}。其余参数 θ θ θ\ { γ l , k , β l , k } \{γ_{l,k}, β_{l,k}\} {γl,kβl,k}是固定的。源数据的归一化统计 { µ l , k , σ l , k } \{µ_{l,k}, σ_{l,k}\} {µl,kσl,k}将被丢弃。
  • Iteration
    每一步更新一批数据的规范化统计信息和转换参数。在向前传递期间,依次统计每层的归一化统计量。在反向传递过程中,通过预测熵 ∇ H ( y ) ∇H(y) H(y)的梯度来更新变换参数 γ 、 β γ、β γβ。注意,转换更新遵循当前批处理的预测,因此它只影响下一个批处理(除非重复forward操作)。每个额外的计算点只需要一个梯度,所以我们默认使用这个方案来提高效率。
  • Termination
    对于在线适应方法,不需要终止,只要有测试数据,迭代就会继续。对于离线自适应,首先更新模型,然后重复推理

当然,适应可以通过多个轮次的更新来继续。

4 论文实验

我们评估了tent在CIFAR-10/CIFAR-100和ImageNet上的corruption鲁棒性,以及SVHN对MNIST/MNIST- m /USPS的数字自适应的领域适应性。

数据集

CIFAR-10、CIFAR-100、ImageNet上的损坏鲁棒性,
MNIST、MNIST- m 、USPS

基础模型

对于corruption,我们使用残差网络, CIFAR10/100上有26层(R-26), ImageNet上有50层(R-50)。
对于domain adaption,我们使用R-26架构。为了公平比较,每个实验条件下的所有方法都使用相同的架构。

训练超参数

我们根据源模型的训练超参数对调制参数 γ , β γ, β γβ进行了优化,并且变化很小。在ImageNet上,我们使用SGD进行动量优化;在其他数据集上,我们由Adam优化。我们降低批大小(BatchSize, BS)以减少用于推理的内存使用,然后通过相同的因素降低学习率(LearningRate, LR)以进行补偿(Goyal等人,2017)。在ImageNet上,我们设置BS = 64, LR = 0.00025,在其他数据集上,我们设置BS = 128, LR = 0.001。我们通过随机打乱和跨方法共享顺序来控制排序。

基线任务

我们将其与领域自适应、自我监督、规范化和伪标记进行比较。

  • Source将训练好的分类器应用于测试数据而不进行自适应;
  • 对抗性域自适应(RG)反转域分类器在源和目标上的梯度,以优化域不变表示
  • 自监督域自适应(UDA-SS)在源和目标上联合训练自监督旋转和定位任务,以优化共享表示
  • 测试时训练(TTT)在源上对监督任务和自监督任务进行联合训练,然后在测试过程中对目标上的自监督任务进行持续训练
  • 测试时间归一化(test-time normalization, BN)在测试过程中更新目标数据上的批归一化统计
  • 伪标记(PL)调整置信度阈值,将超过阈值的预测分配为标签,然后在测试之前针对这些伪标签优化模型

4.1 ROBUSTNESS TO CORRUPTIONS

为了对损坏的鲁棒性进行基准测试,我们使用了常见的图像损坏。通过复制CIFAR-10/100和ImageNet数据集的测试/验证集并应用五个严重级别的15种类型的损坏,将其转换为CIFAR-10/100-C和ImageNet-C损坏基准。

  • Tent用更少的数据和计算提高了性能。
    下表报告了在最严重的corruptions程度下不同腐败类型的平均错误。在CIFAR-10/100-C上,比较了所有方法,包括那些需要跨域或损失联合训练的方法,同时考虑到这些数据集的方便大小。这里的适应是离线的,以便与离线基线进行公平比较。Tent改进了全测试时间自适应基线(BN, PL),也改进了域自适应(RG, UDA-SS)和测试时间训练(TTT)方法,这些方法需要在源和目标上进行多次优化。
    在这里插入图片描述
  • Tent在各种腐败类型中不断改进。
    图5绘制了ImageNet-C上每个损坏类型在损坏级别上的平均误差。考虑到其他方法所需的大规模源数据(>100万个图像)以及损坏类型和级别的75个目标组合,我们比较了最有效的方法——Source、BN和Tent。Tent和BN在线自适应,以在不自适应的情况下与推理效率相媲美。Tent在不增加原始数据错误的情况下达到大多数损坏类型的最小错误。
    在这里插入图片描述
  • Tent在不改变训练的情况下达到了最先进的水平。
  • 最先进的鲁棒性方法扩展了50.2%误差的对抗性噪声(ANT)或51.7%误差的数据增强混合(AugMix)训练。结合外部图像的风格化(SIN),ANT+SIN达到47.4%。Tent通过在线改编达到了44.0%的新水平,通过离线改编达到了42.3%的新水平。它改进了所有类型的ANT,除了训练ANT的噪声。这只需要每个测试点一个梯度,而无需对训练集(ANT、AugMix)进行更多优化或使用外部图像(SIN)。在完全测试时间自适应方法中,tent将超出测试时间归一化的误差降低了18%,相对提高了18%。在同期的工作中,也有报告了49.3%的测试时间归一化误差,其中tent仍有14%的相对改进。

4.2 SOURCE-FREE DOMAIN ADAPTATION

Tent适应无源目标。表3报告了域适应和完测试时间适应方法的目标误差。测试时间归一化(Test-time normalization, BN)的性能略有提高,而对抗性领域自适应(arial domain adaptation, RG)和自监督领域自适应(self-supervised domain adaptive, UDA-SS)在源和目标联合训练下的性能有较大提高。Tent总是比源模型和BN具有更低的误差,并且在2/3的情况下达到最低的误差,即使只有一个历元并且不使用源数据。
在这里插入图片描述

4.3 分析

==Tent减少了熵和误差。==下图验证了tent确实减少了熵和任务损失(softmax cross-entropy)。我们绘制了CIFAR-100-C上所有75种损坏类型/级别组合的熵和损失的变化。两个轴都通过预测的最大熵(log 100)进行归一化,并裁剪为±1。大多数点经过自适应后熵值和误差都较低。
在这里插入图片描述
在这里插入图片描述
帐篷适应不同的架构。原则上帐篷是建筑不可知论者。为了衡量其在实践中的通用性,我们评估了基于自关注(SAN)和平衡求解(MDEQ) 的新架构在CIFAR-100-C上的损坏鲁棒性。下表显示,在与卷积残差网络相同的设置下,tent减少了误差。
在这里插入图片描述

5总结

Tent通过最小化测试时间熵来减少移位数据的泛化误差。在最小化熵的过程中,模型根据自己预测的反馈进行自我调整。这才是真正的自我监督的自我提升。这种类型的自我监督完全由被监督任务定义,不像代理任务旨在从数据中提取更多的监督,但它仍然显著地减少了错误。然而,由于corruption 和其他变化造成的错误仍然存在,因此需要更多的适应。接下来的步骤应该追求测试时间适应更多和更困难类型的转移,在更一般的参数,并通过更有效和高效的损失。

Shifts
Tent减少了各种转换的错误,包括图像损坏,数字外观的简单变化以及模拟到真实的差异。

Parameters
Tent通过规范化和转换来调整模型,但模型的大部分保持固定。test-time adaption可以更新更多的模型,但问题是要确定既具有表现力又可靠的参数,这可能与损失的选择相互作用。

Losses
Tent使熵最小化。对于更强的adaption,对于一般的但偶然的测试时间优化是否有有效的损失?熵在任务中是通用的,但在范围上是有限的。它需要批量优化,并且不能一次在一个点上偶然更新。

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wbzuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值