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

news2024/11/19 23:38:18

论文笔记

资料

1.代码地址

https://github.com/DequanWang/tent

2.论文地址

https://arxiv.org/abs/2006.10726

1论文摘要的翻译

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

2论文的创新点

2.1

强调了只有目标数据而没有源数据的完全测试时适应的设置。为了强调推理过程中的实际适应性,我们对离线和在线更新进行基准测试

2.2

我们将熵作为自适应目标,并提出了一种测试时间熵最小化方案(Tent),通过降低测试数据上模型预测的熵来减少泛化误差

2.3

对于对的鲁棒性,tent在ImageNet-C上达到44.0%的错误率,优于鲁棒训练(50.2%)和测试时间标准化的强基线(49.9%)

2.4

对于领域自适应,tent能够在线和无源地适应数字分类和语义分割,甚至可以与使用源数据并进行更多优化的方法相媲美

3 论文方法的概述

熵与误差有关,置信度更高的预测总体上更正确,下图为在熵低的数据集上预测具有更低的误差。所以确定性可以作为测试过程中的监督。
在这里插入图片描述
这里发现熵与corruption造成的偏移有关,因为corruption越多,熵就越大,随着corruption程度的增加,熵 与 图像分类的loss有很强的相关性。
在这里插入图片描述
为了最小化熵,tent通过估计统计量和逐批优化仿射参数对目标数据的推理进行归一化和转换。这种选择的低维、通道特征调制在测试期间是有效的,即使是在线更新。tent不限制或改变模型训练:它独立于给定模型参数的源数据。如果模型可以运行,就可以进行调整。最重要的是,tent不仅有效地减少了熵,还减少了误差。
本文的研究结果评估了图像分类中对corruption的泛化,对数字识别的域移位,以及对语义分割的模拟到真实移位。对于具有更多数据和优化的上下文,我们评估了给定标记源数据的鲁棒训练、领域适应和自监督学习方法。在给定目标数据的情况下,Tent可以实现更小的错误,并且在ImageNet-C基准测试的基础上进行了改进。分析实验支持我们的熵目标,检查对数据量的敏感性和适应参数的选择,并支持跨架构的普遍性

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)是最小化模型预测的熵 H ( y ) H(y) H(y)

3.2 MODULATION PARAMETERS

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

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

  • 通过统计数据进行规范化和通过参数进行转换。归一化将输入 x x x集中并标准化为 ¯ x = ( x − µ ) / σ ¯x = (x−µ)/σ ¯x=(xµ)/σ,通过其平均值µ和标准差σ。
  • 变换通过尺度 γ γ γ和位移 β β β的仿射参数将 ¯ x ¯x ¯x转换为输出 x 0 = γ ¯ x + β x0 = γ¯x + β x0=γ¯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优化(Kingma & Ba, 2015)。我们降低批大小(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 稳健性 TO CORRUPTIONS

Tent用更少的数据和计算提高了性能。下表报告了在最严重的corruptions程度下不同腐败类型的平均错误。在CIFAR-10/100-C上,比较了所有方法,包括那些需要跨域或损失联合训练的方法,同时考虑到这些数据集的方便大小。这里的适应是离线的,以便与离线基线进行公平比较。Tent改进了全测试时间自适应基线(BN, PL),也改进了域自适应(RG, UDA-SS)和测试时间训练(TTT)方法,这些方法需要在源和目标上进行多次优化。
在这里插入图片描述
下图绘制了在ImageNet-C上每种损坏类型在损坏级别上的平均误差。
在这里插入图片描述

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,对于一般的但偶然的测试时间优化是否有有效的损失?熵在任务中是通用的,但在范围上是有限的。它需要批量优化,并且不能一次在一个点上偶然更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1691964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构和算法基础(二)

树和二叉树——树的基本概念 树和二叉树——树转二叉树 树和二叉树——查找二叉树(二叉排序树) 树和二叉树——构造霍夫曼树(最优) 树和二叉树——线索二叉树 树和二叉树——平衡二叉树 图——基本概念 1、有向图 2、无向图 3、完…

基于卷积神经网络的交通标志识别(pytorch,opencv,yolov5)

文章目录 数据集介绍:resnet18模型代码加载数据集(Dataset与Dataloader)模型训练训练准确率及损失函数:resnet18交通标志分类源码yolov5检测与识别(交通标志) 本文共包含两部分, 第一部分是用re…

Linux学习笔记:线程

Linux中的线程 什么是线程线程的使用原生线程库创建线程线程的id线程退出等待线程join分离线程取消一个线程线程的局部存储在c程序中使用线程使用c自己封装一个简易的线程库 线程互斥(多线程)导致共享数据出错的原因互斥锁关键函数pthread_mutex_t :创建一个锁pthread_mutex_in…

[答疑]不开发系统只做领域建模,可以画冗余关联吗

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 Seven 2024-5-22 11:54 您书里面说,可以计算的不是关联。我有个疑问,要是不考虑开发系统,只是做领域建模,这个图是否可以这样画&#x…

构建高效AI代理:单代理与多代理架构的策略与挑战

AI代理架构正成为实现复杂任务自动化的关键技术。这些代理不仅需要处理信息、做出决策,还要能够与外部环境进行交互。随着ChatGPT等生成式AI应用的兴起,研究者们开始探索下一代AI应用,其中AI代理的角色愈发重要。单代理架构以其简洁高效的特点…

数据结构——栈(详细分析)

目录 🍉引言 🍉栈的本质和特点 🍈栈的基本操作 🍈栈的特点 🍍后进先出 🍍操作受限 🍍动态调整 🍈栈的优缺点 🍍优点 🍍缺点 🍉栈的应用…

AI绘画ComfyUI 进阶教程 | 字节最强换脸插件PuLID 详解,还请收藏!

大家好,我是小强 这应当算作是小编分享的换脸工具系列中的又一力作,从最初的roop,到之后的ReActor,再到备受欢迎的InstantID,以及今日重点介绍的字节开源产品——PuLID。 提及PuLID,首要原因并非仅仅在于…

[xx点评完结]——白马点评完整代码+rabbitmq实现异步下单+资料,免费

项目所有功能已测,均可以跑通,Jmeter和RabbitMQ也都测了。 项目源码:dianpinghui: 仿黑马点评项目 资料: https://pan.baidu.com/s/1kTCn9PxgeIey90WgM4KRqA?pwdn66b 对佬有帮助可以给个star哈,感谢🌹🌹&#x1f3…

QQ个性网空间日志网站模板源码

QQ个性网空间日志网站模板源码自带后台登录设置,适用于博客、文章、资讯、其他类网站内容使用。模板自带eyoucms内核,原创设计、手工书写DIVCSS,完美兼容IE7、Firefox、Chrome、360浏览器等;主流浏览器;结构容易优化;多终端均可正常预览。由于…

c++|多态

c|多态 1 多态的概念2 多态的定义及其实现2.1 满足多态的条件2.2 虚函数2.3 虚函数的重写2.4 析构函数适合加virtural吗2.4 C11 override 和 final2.5 三个概念的对比 3 多态的原理4 抽象类4.1 概念4.2 纯虚函数 1 多态的概念 多态的概念:通俗来说,就是…

英伟达的GPU(3)

上节内容:英伟达的GPU(2) (qq.com) 书接上文,上文我们讲到CUDA编程体系和硬件的关系,也留了一个小问题CUDA core以外的矩阵计算能力是咋提供的 本节介绍一下Tensor Core 上节我们介绍了CUDA core,或者一般NPU,CPU执行…

Android中华为手机三态位置权限申请理解

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到教程 前言&#xff1a; 使用的华为MATE 20,Android10的系统。 <!--精准定位权限&#xff0c;如&#xff1a;…

建议收藏 | 2023年生物学类SCI期刊影响因子最新预测,Molecular Plant遥遥领先

公众号&#xff1a;生信漫谈&#xff0c;获取最新科研信息&#xff01; 建议收藏 | 2023年生物学类SCI期刊影响因子最新预测&#xff0c;Molecular Plant遥遥领先https://mp.weixin.qq.com/s/tFINUzZ1l4H9x1HWTq1kFg 2023年生物学类SCI期刊影响因子最新预测&#xff0c;Molecu…

【基于springboot+vue的房屋租赁系统】

介绍 本系统是基于springbootvue的房屋租赁系统&#xff0c;数据库为mysql&#xff0c;可用于日常学习和毕设&#xff0c;系统分为管理员、房东、用户&#xff0c;部分截图如下所示&#xff1a; 部分界面截图 用户 管理员 联系我 微信&#xff1a;Zzllh_

linux父进程fork出子进程后,子进程为何首先需要close文件描述符。

在linux c/c编程时&#xff0c;父进程fork出子进程后&#xff0c;子进程经常第一件事就是close掉所有的文件描述符&#xff1b;为何需要这样做&#xff0c;本文用一个例子进行简单说明。 考虑到一种情况&#xff0c;父进程创建了tcp服务端套接字&#xff0c;并且listen&#x…

6.中断管理

一、简介 中断是 CPU 的一种常见特性&#xff0c;中断一般由硬件产生&#xff0c;当中断发生后&#xff0c;会中断 CPU 当前正 在执行的程序而跳转到中断对应的服务程序种去执行&#xff0c;ARM Cortex-M 内核的 MCU 具有一个 用于中断管理的嵌套向量中断控制器&#xff08;NV…

Qt 在windows下显示中文

Qt在windows平台上显示中文&#xff0c;简直是一门玄学&#xff0c;经过测试&#xff0c;有如下发现&#xff1a; 1&#xff0c; 环境&#xff1a;Qt 5.15.2 vs2019 64位 win11系统 默认用Qt 创建的文件使用utf-8编码格式&#xff0c;此环境下 中文没有问题 ui->textE…

运用HTML、CSS设计Web网页——“西式甜品网”图例及代码

目录 一、效果展示图 二、设计分析 1.整体效果分析 2.头部header模块效果分析 3.导航及banner模块效果分析 4.分类classify模块效果分析 5.产品展示show模块效果分析 6.版权banquan模块效果分析 三、HTML、CSS代码分模块展示 1. 头部header模块代码 2.导航及bann…

一条命令安装Metasploit Framework

做安全渗透的人都或多或少的使用kali-Linux系统中msfconsole命令启动工具&#xff0c;然而也经常会有人遇到这样那样的问题无法启动 今天我们就用一条命令来重新安装这个工具 curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/met…

Proteus仿真小技巧(隔空连线)

用了好几天Proteus了.总结一下使用的小技巧. 目录 一.隔空连线 1.打开添加网络标号 2.输入网络标号 二.常用元件 三.运行仿真 四.总结 一.隔空连线 引出一条线,并在末尾点一下. 1.打开添加网络标号 选择添加网络标号, 也可以先点击按钮,再去选择线(注意不要点端口) 2.…