【计算机视觉】CVPR 23 | 视觉 Transformer 全新学习范式!用长尾数据提升ViT性能

news2024/9/25 9:38:55

文章目录

  • 一、导读
  • 二、介绍
  • 三、方法
  • 四、总结

一、导读

论文地址:

https://arxiv.org/abs/2212.02015

在这里插入图片描述
在这里插入图片描述
代码链接:

https://github.com/XuZhengzhuo/LiVT

二、介绍

在机器学习领域中,学习不平衡的标注数据一直是一个常见而具有挑战性的任务。近年来,视觉 Transformer 作为一种强大的模型,在多个视觉任务上展现出令人满意的效果。然而,视觉 Transformer 处理长尾分布数据的能力和特性,还有待进一步挖掘。

目前,已有的长尾识别模型很少直接利用长尾数据对视觉 Transformer(ViT)进行训练。基于现成的预训练权重进行研究可能会导致不公平的比较结果,因此有必要对视觉 Transformer 在长尾数据下的表现进行系统性的分析和总结。

本文旨在填补这一研究空白,详细探讨了视觉 Transformer 在处理长尾数据时的优势和不足之处。本文将重点关注如何有效利用长尾数据来提升视觉 Transformer 的性能,并探索解决数据不平衡问题的新方法。通过本文的研究和总结,研究团队有望为进一步改进视觉 Transformer 模型在长尾数据任务中的表现提供有益的指导和启示。这将为解决现实世界中存在的数据不平衡问题提供新的思路和解决方案。

文章通过一系列实验发现,在有监督范式下,视觉 Transformer 在处理不平衡数据时会出现严重的性能衰退,而使用平衡分布的标注数据训练出的视觉 Transformer 呈现出明显的性能优势。相比于卷积网络,这一特点在视觉 Transformer 上体现的更为明显。另一方面,无监督的预训练方法无需标签分布,因此在相同的训练数据量下,视觉 Transformer 可以展现出类似的特征提取和重建能力。

基于以上观察和发现,研究提出了一种新的学习不平衡数据的范式,旨在让视觉 Transformer 模型更好地适应长尾数据。通过这种范式的引入,研究团队希望能够充分利用长尾数据的信息,提高视觉 Transformer 模型在处理不平衡标注数据时的性能和泛化能力。

三、方法

本文是第一个系统性的研究用长尾数据训练视觉 Transformer 的工作,在此过程中,做出了以下主要贡献:

首先,本文深入分析了传统有监督训练方式对视觉 Transformer 学习不均衡数据的限制因素,并基于此提出了双阶段训练流程,将视觉 Transformer 模型内在的归纳偏置和标签分布的统计偏置分阶段学习,以降低学习长尾数据的难度。其中第一阶段采用了流行的掩码重建预训练,第二阶段采用了平衡的损失进行微调监督。

在这里插入图片描述

其次,本文提出了平衡的二进制交叉熵损失函数,并给出了严格的理论推导。平衡的二进制交叉熵损失的形式如下:

在这里插入图片描述
与之前的平衡交叉熵损失相比,本文的损失函数在视觉 Transformer 模型上展现出更好的性能,并且具有更快的收敛速度。研究中的理论推导为损失函数的合理性提供了严密的解释,进一步加强了我们方法的可靠性和有效性。

在这里插入图片描述
不同损失函数的收敛速度的比较。

基于以上贡献,文章提出了一个全新的学习范式 LiVT,充分发挥视觉 Transformer 模型在长尾数据上的学习能力,显著提升模型在多个数据集上的性能。该方案在多个数据集上取得了远好于视觉 Transformer 基线的性能表现。

在这里插入图片描述
不同参数量下在ImageNet-LT上的准确性:

在这里插入图片描述
在ImagNet-LT(左)和iNaturalist18(右)数据集上的性能表现:

同时,本文还验证了在相同的训练数据规模的情况下,使用ImageNet的长尾分布子集(LT)和平衡分布子集(BAL)训练的 ViT-B 模型展现出相近的重建能力。如 LT-Large-1600 列所示,在 ImageNet-LT 数据集中,可以通过更大的模型和 MGP epoch 获得更好的重建结果。

在这里插入图片描述

四、总结

本文提供了一种新的基于视觉 Transformer 处理不平衡数据的方法 LiVT。LiVT 利用掩码建模和平衡微调两个阶段的训练策略,使得视觉 Transformer 能够更好地适应长尾数据分布并学习到更通用的特征表示。该方法不仅在实验中取得了显著的性能提升,而且无需额外的数据,具有实际应用的可行性。

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

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

相关文章

JDK自带的构建线程池的方式之newScheduleThreadPool

顾名思义newScheduleThreadPool是一个定时任务的线程池,这个线程池可以定时一定周期去执行任务,也可以实现延迟多久去执行任务一次。 newScheduleThreadPool方法实现展示 基于查看这个方法不难发现,该方法是基于ScheduledThreadPoolExecutor…

基于 Flink CDC 构建 MySQL 到 Databend 的 实时数据同步

这篇教程将展示如何基于 Flink CDC 快速构建 MySQL 到 Databend 的实时数据同步。本教程的演示都将在 Flink SQL CLI 中进行,只涉及 SQL,无需一行 Java/Scala 代码,也无需安装 IDE。 假设我们有电子商务业务,商品的数据存储在 My…

【深度学习】5-5 与学习相关的技巧 - 超参数的验证

超参数指的是,比如各层的神经元数量、batch大小、参数更新时的学习率或权值衰减等。如果这些超参数没有设置合适的值,模型的性能就会很差。 那么如何能够高效地寻找超参数的值的方法 验证数据 之前我们使用的数据集分成了训练数据和测试数据&#xff0c…

WorkPlus AI助理正式上线!为企业打造定制化的AI私有助理

毋庸置疑,ChatGPT的应用充满无限的想象空间。但对于企业来说,使用时面临的最核心的问题就是“存在回答准确性不足”的弊端。那企业都想要通过GPT构建内容生态,在数字化时代保持行业领先地位。 企业都想要结合行业属性、业务需求等自身特点打…

【Flutter】Flutter 数据存储 Hive 的简要使用说明

文章目录 一、前言二、Hive 包的版本号三、Hive 简介1. Hive 是什么?2. Hive 的特点 四、Hive 的基本使用1. Hive 的安装2. Hive 的初始化3. 创建和打开 Hive 数据库4. 数据的存储和读取5. 数据的删除 五、总结 一、前言 🎉想要精通 Flutter&#xff0c…

是时候扔掉cmder, 换上Windows Terminal

作为一个Windows的长期用户,一直没有给款好用的终端,知道遇到了 cmder,它拯救一个习惯用Windows敲shell命令的人。 不用跟我安利macOS真香!公司上班一直用macOS,一方面确实更加习惯windows下面学习, 另一方面是上课需要…

Phantomjs实现后端将URL转换为图片

PhantomJS简介 PhantomJS is a command-line tool. – 其实就是一个命令行工具 PhantomJS的下载地址: Windows:phantomjs-2.1.1-windows.zip Linux:phantomjs-2.1.1-linux-x86_64.tar.bz2;phantomjs-2.1.1-linux-i686.tar.bz2 MacOS:phantomjs-2.1.1-macosx.zip…

西门子Mendix 入门 2

今天还是一直下载失败,就算成功了,速度也只有几K,于是使用翻墙软件,最终下载成功 下载成功后重新点击edit in studio pro 出现如下页面 首先先关闭安全性 进行添加任务和管理任务 点击上方绿色箭头后点击View App 出现如下页面…

ESP32-WROOM-32 UDP单播透传AT指令例程

ESP32-WROOM-32 AT指令配置TCP通讯 ESP32-WROOM-32前言固件烧录测试AT指令UDP单播通讯\透传ESP32配置SoftAPESP32与手机间的UDP通讯与透传普通传输模式演示UDP透传演示 ESP32-WROOM-32 前言 上次演示了ESP32与手机的三种TCP连接与数据传输方法,现在接着上一篇“ESP…

第二章 数据结构(一)——链表,栈和队列与kmp

文章目录 链表栈和队列表达式运算 单调栈单调队列kmp链表练习题826. 单链表827. 双链表 栈和队列练习题828. 模拟栈3302. 表达式求值829. 模拟队列830. 单调栈154. 滑动窗口 kmp练习题831. KMP字符串 kmp虐我一下午 链表 若用链式结构实现链表,效率低,因…

软件开发流程

目录 软件软件开发流程的演变 瀑布模型敏捷模型 XPSCRUMDevOps 1.软件 与计算机系统操作有关的计算机程序、可能有的文件、文档及数据。 软件可以分为两种主要类型: 独立软件:独立软件是一种完整的应用程序,可以直接在计算机或移动设备上…

Android系统安全 — 6.2 Ethernet安卓架构

1. Android Ethernet架构介绍 整个Ethernet系统架构如下图所示: 以太网服务(EthernetService)的启动与注册流程;应用层调用使能ethernet功能的方法流程来分析,从应用层如何将指令一步一步传到底层kernel;…

SAAS-HRM系统概述与搭建环境

SAAS-HRM系统概述与搭建环境 学习目标: 理解SaaS的基本概念 了解SAAS-HRM的基本需求和开发方式掌握Power Designer的用例图 完成SAAS-HRM父模块及公共模块的环境搭建完成企业微服务中企业CRUD功能 初识SaaS 云服务的三种模式 IaaS(基础设施即服务…

使用Windows To Go工具制作你的U盘系统【含下载Windows10系统镜像】亲测已成功23.06.21

WinToGo是一款辅助工具:专为能够让你将系统装进U盘,移动硬盘里,让你在任意电脑都能运行U盘里装的系统! 一、下载,安装“Windows To Go”工具 1、下载Windows To Go工具 口袋系统WinToGo: 安装Win 10到U盘 2、双击Wi…

从0到1精通自动化测试,pytest自动化测试框架,assert断言(七)

目录 一、前言 二、assert 三、异常信息 四、异常断言 五、常用断言 一、前言 断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符…

三分钟学习一个python小知识2-----------我的对python的类(Class)和对象(Object)的理解

文章目录 一、类(Class)和对象(Object)是什么?二、Python类和对象的实现1.定义类2.创建对象3.调用类的属性和方法 三、利用python实现了一个动物的类(Animal)和其两个子类(Cat和Dog&…

年轻人存款难,要攒够多少存款才可以体面的养老,结论亮了

这个情况确实值得我们思考。年轻人的经济压力比较大,所以他们普遍存款比较少。而10万元确实是一个比较大的数目,对于一些年轻人来说可能确实很难达到。 然而,我认为这并不是一个“坎”。我们应该鼓励年轻人理财,增加存款,以便应对未来可能出现的各种经济问题。同时,我们…

定义一个一维数组存放10个整数,要求从键盘输入10个数,对其进行求和、求平均、求最大值/最小值及其位置的下标

目录 题目 分析思路 法一:在主函数直接编程 法二:用 调用函数 实现 代码 法一:在主函数直接编程 法二:用 调用函数 实现 题目 定义一个一维数组存放10个整数,要求从键盘输入10个数,对其进行求和、求…

新华三H3C无线控制器AC对接网络准入实现定制化Portal短信认证

随着企业办公信息化的不断发展,企业内网安全也面临着诸多挑战。在包含了无线 WiFi、有线网络的混合网络环境中,员工或访客、外包人员、合作伙伴等用户在接入网络时,如果无需进行身份验证及访问权限的管理,则很可能给不法分子可乘之…

一起Talk Android吧(第五百四十八回:如何创建垂直版SeekBar)

文章目录 概念介绍创建方法示例程序 各位看官们大家好,上一回中咱们说的例子是"蓝牙广播中的厂商数据",本章回中介绍的例子是" 如何创建垂直版SeekBar"。闲话休提,言归正转,让我们一起Talk Android吧! 概念介…