Token Labeling(NeurIPS 2021, ByteDance)论文解读

paper:All Tokens Matter: Token Labeling for Training Better Vision Transformers

official implementation:https://github.com/zihangJiang/TokenLabeling

出发点

  • ViTs的局限性:尽管ViTs在捕捉长距离依赖方面表现出色, 但它通常依赖于额外的可训练class token来计算分类损失,这可能会忽略其他patch token所包含的丰富局部信息。
  • 局部信息的重要性:最近的工作表明,对图像分类任务而言,良好地建模和利用局部信息可以避免模型偏向偏颇和不可泛化的模式,从而显著提高模型性能。

创新点

本文提出了一种新的训练目标——token labeling,旨在利用所有的图像patch token进行密集的训练损失计算,而不仅仅依赖于额外的class token。通过这种方式,每个patch token都能获得由machine annotator生成的单独的、位置特定的监督,从而提升模型的性能。 具体包括:

  • Token Labeling:提出了token labeling方法,通过对所有patch token进行位置特定的监督,提高了图像分类的准确性和对象识别能力。
  • MixToken:改进了传统的CutMix数据增强方法,使其在token层面上操作,避免了图像patch中混合内容的问题,从而提高了模型的训练效果。
  • Patch Embedding:对ViT的patch embedding模块进行了修改,采用了4层卷积层来更好地对输入图像进行token化和整合局部信息。

方法介绍

Token Labeling

在传统的ViT中,给定输入图片 \(I\),最后一个transformer block的输出可以表示为 \([X^{cls},X^1,...,X^N]\),其中 \(N\) 表示patch token的数量,\(X^{cls}\) 和 \(X^1,...,X^N\) 分别对应 class token和patch tokens。则图片 \(I\) 的分类损失可以按下式计算

其中 \(H(\cdot,\cdot)\) 是softmax cross-entropy loss,\(y^{cls}\) 是类别标签。

这种方式只采用了image-level的标签作为监督,而忽略了每个image patch中包含的丰富信息。因此本文提出了一种新的训练目标,token labeling,它利用了patch tokens和class token之间的互补信息。具体来说,作者认为每个输出token都应该和一个单独的、位置特定的label联系起来,因此token labeling的ground truth标签是一个 \(K\times N\) score map矩阵,表示为 \([y^1,...,y^N]\),其中 \(N\) 是patch token的数量,\(K\) 是类别数。

最终计算每个patch token和score map中对应的标签之间的交叉熵损失,如下

完整的损失包含原始的class token损失和token labeling损失,如下

图2是整个过程的一个直观展示

里dense score map是通过machine annotator离线得到的,可参考Re-labeling ImageNet(CVPR 2021, Naver)-CSDN博客。简单地说,machine annotator是一个在额外的大数据集(例如JFT-300M)上训练好的性能强大的分类模型,然后对ImageNet进行推理,去掉全连接层之前的全局平均池化,全连接层改为一个1x1卷积层,因此经过softmax后输出的是一个 \(H\times W\times C\) 的score map,这里的 \(H,W\) 是模型最后一层的分辨率大小,而不像传统的分类模型一样输出的是一个 \(1\times 1\times C\) 的向量。score map是提前计算得到并保存到本地的,在训练token labeling时,只需要加载score map并根据patch token的空间位置对应的在score map上crop和插值对齐空间坐标,然后再进行全局平均池化并经过softmax和argmax得到每个patch token对应的标签。和需要在线生成target的知识蒸馏不同,token labeling额外增加的计算量可以忽略不计。

MixToken

在训练分类模型时,数据增强方法例如MixUp和CutMix可以有效地提高模型性能。但vision transformer依赖patch-based tokenization来将输入图片映射为token序列,本文提出的token labeling也是基于每个patch的标签,如果我们直接在原始图像上应用CutMix,可能导致一个patch中包含来自两个图像的内容,如图3左所示。

这样token labeling很难为每个token分配一个干净正确的标签,因此本文提出了CutMix的变体MixToken,即在patch embedding层后得到的token上进行cutmix操作,如图3右所示,这样就保证了每个token只包含一张图片的内容。

实验结果

结合token labeling和mixtoken作者提出了LV-ViT,网络配置如下

两个components的消融实验如下表所示,可以看到单独将cutmix换成mixtoken精度提升了0.1%,而结合mixtoken和token labeling时,精度提升了0.9%。

和其它分类模型在ImageNet上的结果对比如下表所示 

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

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

相关文章

永远向有结果的人学习!

生活是一场漫长的旅程,充满了挑战和机遇。在这个过程中,我们不断地学习、成长,并从他人的经验中汲取智慧。今天,我想和大家分享一个重要的生活哲学:永远向有结果的人学习。 1. 敢于顶撞与撒野 我依旧敢和生活顶撞&am…

第二篇 Vue项目的搭建

1、脚手架安装 npm init vuelatest:官方提供的Vue项目脚手架工具,帮助我们搭建一个最简单的vue应用。 2、vs打开项目文件夹 打开脚手架生成的文件夹到vs并安装volar插件,以便vs能够支持vue格式代码 3、启动项目 npm run dev:vu…

国产麒麟、UOS在线打开pdf加盖印章

PageOffice支持两种电子印章方案,可实现对Word、Excel、PDF文档加盖PageOffice自带印章或ZoomSeal电子印章(全方位保护、防篡改、防伪造)。Word和Excel的盖章功能请参考:Word和Excel加盖印章和签字功能 (目前只支持win…

css - - - - - 去除图片默认的白色背景(混合模式 mix-blend-mode)

去除图片默认的白色背景&#xff08;mix-blend-mode&#xff09; 1. 需求描述2. 原图展示3. 原代码展示4. 使用混合模式(mix-blend-mode)5.修改后效果 1. 需求描述 图片含有白色地图&#xff0c;想要将其去掉 2. 原图展示 3. 原代码展示 <div><img src*****/> &…

现场可重构CPLD芯片应用案例—蓝牙音箱

我司英尚微提供的高性能数模混合现场可重构IC、通用可配置的模数混合芯片内部集成丰富的模拟资源和数字资源&#xff0c;可轻松替代电路中的各种标准器件&#xff0c;并按照客户要求组合成最优小型ASIC&#xff0c;缩短开发周期&#xff0c;降低成本。下面介绍LS98002现场可重构…

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染

vue3前端开发-小兔鲜项目-人气推荐栏目的前端渲染&#xff01;今天和大家分享一下&#xff0c;人气推荐栏目的前端页面如何渲染内容。 经历过上一次的&#xff0c;新鲜好物的栏目渲染之后&#xff0c;我们已经熟练了&#xff0c;vue3的接口调用&#xff0c;数据渲染到页面中的整…

golang开发环境搭建与踩坑记录

文章目录 一、安装下载1、go环境2、ide 二、基本使用1、运行2、结构体与方法函数指针3、闭包4、指针5、map6、接口7、异常 三、包管理1、go mod语法2、项目下载所有依赖 一、安装下载 1、go环境 下载地址&#xff1a;https://go.dev/dl/ 或者&#xff1a;https://golang.goog…

【动态规划】力扣2266.统计打字方案数

Alice 在给 Bob 用手机打字。数字到字母的 对应 如下图所示。在这里插入图片描述 为了 打出 一个字母&#xff0c;Alice 需要 按 对应字母 i 次&#xff0c;i 是该字母在这个按键上所处的位置。 比方说&#xff0c;为了按出字母 ‘s’ &#xff0c;Alice 需要按 ‘7’ 四次。…

DP-适配器模式代码重新理解

package com.designpatterns.adapter;/*** 定义鸭子接口*/ public interface Duck {/*** 定义鸭子呱呱叫(quack)*/public void quack();public void fly(); }package com.designpatterns.adapter;/*** 实现一个绿头鸭*/ public class MallarDuck implements Duck{Overridepubl…

Linux中运用xsync实现免密集群分发

一、前言 今天搭建了三台虚拟机的集群&#xff0c;在集群中部分操作在三台虚拟机上的操作都一致&#xff0c;为了提高效率&#xff0c;就需要配置xsync实现集群分发。 二、设置免密登录 1.生成公钥和私钥 ssh-keygen -t rsa一直敲回车&#xff0c;会生成两个文件&#xff0c…

灵雀云AML:赋能金融AI,构建数智时代核心竞争力

在人工智能&#xff08;AI&#xff09;技术的迅猛发展中&#xff0c;金融行业正迈入变革的新时代。AI不仅在优化投资决策、信用评估、实时监控和欺诈识别方面展现出强大功能&#xff0c;还极大地提升了客户体验、降低了运营成本&#xff0c;并推动了产品创新。面对智能时代的挑…

C#知识|账号管理系统:多条件动态查询条件的编写。

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 在项目开发中涉及到许多通过多个条件勾选来实现动态的多个条件查询的情况&#xff0c; 此节记录多条件查询的后台代码编写&#xff0c;以下为学习笔记。 01 实现原理 通过界面输入框输入或者下拉框下拉选择任意查询…

《RuoYi基于SpringBoot+Vue前后端分离的Java快速开发框架学习》系列博客_Part2_添加菜单

系列文章目录 Part1:启动RouYi 文章目录 系列文章目录Part1:启动RouYi 实现添加菜单功能来显示新的音图分析页面&#xff08;所截图片都是在已经添加菜单完成后的情况下&#xff09;一、建立一个菜单二、建立数据库1、通过数据库软件建立一个表&#xff0c;供我们使用&#xf…

【Ngix】快速上手,由浅入深

内容概述 1、nginx 简介 &#xff08;1&#xff09;介绍 nginx 的应用场景和具体可以做什么事情 &#xff08;2&#xff09;介绍什么是反向代理 &#xff08;3&#xff09;介绍什么是负载均衡 &#xff08;4&#xff09;介绍什么是动静分离 2、nginx 安装 &#xff08;1…

Leetcode - 周赛406

目录 一&#xff0c;3216. 交换后字典序最小的字符串 二&#xff0c;3217. 从链表中移除在数组中存在的节点 三&#xff0c;3218. 切蛋糕的最小总开销 I 四&#xff0c;3219. 切蛋糕的最小总开销 II 一&#xff0c;3216. 交换后字典序最小的字符串 本题要求交换一次相邻字符…

大数据架构对比记录

Lambda架构 -维护两套项目&#xff0c;开发和维护成本高 -两套链路&#xff0c;数据容易不一致 -数据计算成本大&#xff08;例如原定每小时计算一次&#xff0c;但有额外新需求需要计算两点半-三点半之间数据&#xff0c;则需要重新计算&#xff09; Kappa -过于依赖kafka消…

FPGA:基于复旦微FMQL10S400 /FMQL20S400 国产化核心板

复旦微电子是国内集成电路设计行业的领军企业之一&#xff0c;早在2000年就在香港创业板上市&#xff0c;成为行业内首家上市公司。公司的RFID芯片、智能卡芯片、EEPROM、智能电表MCU等多种产品在市场上的占有率位居行业前列。 今天介绍的是搭载复旦微 FMQL10S400/FMQL20S400的…

01数据结构 - 顺序表

这里是只讲干货不讲废话的炽念&#xff0c;这个系列的文章是为了我自己以后复习数据结构而写&#xff0c;所以可能会用一种我自己能够听懂的方式来描述&#xff0c;不会像书本上那么枯燥和无聊&#xff0c;且全系列的代码均是可运行的代码&#xff0c;关键地方会给出注释^_^ 全…

C++客户端Qt开发——常用控件(容器类控件)

6.容器类控件 ①GroupBox 带标题分组框 属性 说明 title 分组框的标题 alignment 分组框内部内容的对齐方式 flat 是否是"扁平"模式 checkable 是否可选择 设为true,则在title前方会多出一个可勾选的部分. check 描述分组框的选择状态&#xff08;前提…

数据结构(5.1)——树的性质

结点数总度数1 结点的度——结点有几个孩子(分支) 度为m的树、m叉树的区别 度为m的树第i层至多有 个结点(i>1) 高度为h的m叉树至多有 个结点 高度为h的m叉树至少有h个结点 、高度为h&#xff0c;度为m叉树至多有hm-1个结点 具有n个结点的m叉树的最小高度为 总结