ViT再升级!9个视觉transformer最新改进方案让性能飞跃

通过优化ViT结构和训练策略,我们可以提高模型的性能和计算效率,增强模型对局部信息的捕捉能力。同时解决一些原有模型存在的问题。

比如原始的ViT模型在处理高分辨率图像时,由于自注意力机制的计算复杂度与序列长度相关,会导致较高的计算成本。通过对ViT进行改进,我们就可以减少参数量和计算量。

这类改进不仅能够更高效地处理图像数据,同时还能增强ViT在各种视觉任务中的适用性。因此,为了让模型更加高效和适用于实际应用,研究者们已经提出不少值得学习的ViT改进方案。比如基于全新残差注意力机制的ReViT。

本文介绍9种最新的ViT改进方案,配套模型与开源代码都整理了,希望可以为同学们提供新的思路和方法。

论文和代码需要的同学看文末

ReViT

ReViT: Enhancing Vision Transformers with Attention Residual Connections for Visual Recognition

方法:论文引入了一种创新的残余注意力视觉变换器(ReViT)网络,通过将残余注意力学习整合到视觉变换器(ViT)架构中,来增强对视觉特征的提取。该方法有效地传输和累积来自查询和键的注意力信息,跨越连续的多头自注意力(MHSA)层。这种残余连接防止了低级视觉特征的减少。此外,它通过减缓注意力机制的全球化,在学习新特征时赋予模型利用先前提取的特征的能力。

创新点:

  • 基于残差注意力模块的ViT架构:引入了一种新颖的ViT架构,利用残差注意力模块将重要的低层视觉特征融入到学习表示中,同时保持提取全局上下文的能力,从而增强了网络深层中的特征多样性。

  • 残差注意力对ViT的鲁棒性增强:通过对Oxford Flowers-102和Oxford-IIIT Pet数据集上的图像分类任务进行综合评估,以实验证明残差注意力提高了ViT对平移不变性的鲁棒性。

ExMobileViT

ExMobileViT: Lightweight Classifier Extension for Mobile Vision Transformer

方法:论文提出了一种通过多尺度特征聚合(MSFA)或特征金字塔网络(FPN)来提取各种数据特征的大型模型。作者使用轻量级模型对MobileViT进行扩展,以直接通过快捷方式为分类器进行通道扩展。然而,由于ViT需要大量的计算资源和存储需求,因此提出了MobileViT来兼具ViT的优势和MobileNet的卷积结构的优点。

创新点:

  • 使用早期注意力阶段的信息来增强MobileViT的性能:作者提出了一种结构来存储和重复使用早期注意力阶段的信息,以提高最终分类器的性能。通过使用来自早期注意力阶段的不同尺度特征的平均池化结果来扩展最终分类器中的通道,从而引入归纳偏差,以增强最终性能。

  • 引入ExShortcut来补充注意力型ViT的归纳偏差不足:为了补充注意力型ViT的归纳偏差不足,作者将CNN引入到模型中,以编码局部信息。通过将各个尺度的特征图的输出存储和重复使用,可以从各个尺度的特征图中提取数据。在这种模型中,直接传入分类器的快捷方式被称为ExShortcut。使用ExShortcut可以直接传入模型的局部特征和全局特征一起进行训练。

MPTQ-ViT

MPTQ-ViT: Mixed-Precision Post-Training Quantization for Vision Transformer

方法:论文介绍了一种新颖的混合精度后训练量化方案MPTQ-ViT。MPTQ-ViT结合了SQ-b用于对称分布、OPT-m用于数据相关的SFs和Greedy MP用于逐层分配BW。实验结果表明,所提出的方法在SP和MP下达到了SOTA性能。

创新点:

  • 提出了MPTQ-ViT,这是一种新颖的混合精度后训练量化方案,用于ViTs。MPTQ-ViT结合了SQ-b对称分布、OPT-m数据相关SF和Greedy MP逐层BW分配。

  • SQ-b和OPT-m方法相较于现有方法在4位SP情境下提高了0.90%至23.35%的准确率,验证了通过SQ-b增强数据对称性和通过OPT-m部署数据相关SF的有效性。

ViTAEv2

ViTAEv2: Vision Transformer Advanced by Exploring Inductive Bias for Image Recognition and Beyond

方法:本文提出了ViTAE和ViTAEv2模型,并对其进行了多种变体的比较实验。通过引入局部窗口注意力和多阶段设计,这些模型在图像分类任务以及目标检测、语义分割和姿态估计等下游视觉任务上表现出色。研究结果表明,引入固有的归纳偏置可以提高大规模视觉变换器模型的性能和数据效率。进一步的实验分析也证明了这些模型的模块设计、推理速度、内存占用和与最新研究的比较等方面的优势。

创新点:

  • 作者提出了ViTAE模型,它是一种将Transformer应用于图像任务的方法。相较于之前的ViT模型,ViTAE在建模局部视觉结构方面引入了归纳偏差,提高了分类性能。

  • 作者进一步将ViTAE模型扩展为多阶段设计的ViTAEv2模型。通过在不同阶段使用不同类型的注意力机制,ViTAEv2在分类性能和计算成本之间取得了良好的平衡。

  • 作者通过实验证明,使用局部窗口注意力机制的ViTAEv2模型在不同图像分辨率下具有优异的分类性能和较低的内存占用,比其他设计更具优势。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“ViT改进”获取全部论文+代码

码字不易,欢迎大家点赞评论收藏

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

rabbitmq4

独占队列:我们的队列只能被当前通道所绑定,不能被其他的连接所绑定,如果有其他的通道或连接再使用此队列的话,会直接报错,一般设置为false: autoDelete:消费者在消费完队列,并且彻底…

来分析一下dom破坏

一、如图 我们在这串代码的情况下看一下打印状态 打印x和y的时候把标签打印出来了,而document没有打印出来x值,所以我们要考虑特性 可以看到我们接下来的验证,其中document.cookie 已经被我们⽤img 标签给覆盖了 接下来覆盖系统函数 既然我们…

Linux 文件系列:深入理解文件描述符fd,重定向,自定义shell当中重定向的模拟实现

Linux 文件系列:深入理解文件fd,重定向,自定义shell当中重定向的模拟实现 一.预备知识二.回顾C语言中常见的文件接口跟重定向建立联系1.fopen函数的介绍2.fclose函数的介绍3.代码演示1.以"w"(写)的方式打开2.跟输出重定向的联系3.以 "a"(追加)的方式打开4.…

基于springboot+vue的校园爱心捐赠互助管理系统(源码+论文)

目录 前言 一、功能设计 二、功能实现 三、库表设计 四、论文 前言 随着经济水平和生活水平的提高在校大学生在校需要处理的物品也在不断增加,同时校园内还存在很多贫困生,可以通过线上平台实现资源的整合和二次利用,通过线上平台求助信…

LeetCode Python - 32.最长有效括号

目录 题目答案方法一:动态规划方法二:使用堆栈 运行结果方法一方法二 题目 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号 子串的长度。 示例 1: 输入:s “(()”…

机器学习入门-小白必看

机器学习 1. 机器学习的基本概念与背景2. 机器学习的常用方法3.是否需要学习机器学习,机器学习已经过时了??4. 如何在机器学习上进行创新?5. 我该用哪种机器学习方法,如何定下来呢?总结(对小白的…

O2O:Actor-Critic Alignment for Offline-to-Online Reinforcement Learning

ICML 2023 Poster paper 1 Introduction O2O容易因为分布偏移导致策略崩溃,解决方法包括限制策略偏移计以及平衡样本采样等。然而这些方法需要求解分布散度或者密度比(density ratio)。为了避免这些复杂操作,本文并不采用以往AC方法对Q值进行变形&…

【笔记】Android 漫游定制SPN定制有关字段

一、SPN模块简介 【笔记】SPN和PLMN 运营商网络名称显示 Android U 配置 WiFiCalling 场景下PLMN/SPN 显示的代码逻辑介绍 【笔记】Android Telephony 漫游SPN显示定制(Roaming Alpha Tag) 二、相关配置字段 non_roaming_operator_string_array 是否…

关于yolov8的output0

关于yolov8的output0 // output0nvinfer1::IElementWiseLayer* conv22_cv2_0_0 convBnSiLU(network, weightMap, *conv15->getOutput(0), base_in_channel, 3, 1, 1, "model.22.cv2.0.0");nvinfer1::IElementWiseLayer* conv22_cv2_0_1 convBnSiLU(network, we…

Cesium 自定义Primitive - 圆

一、创作思路 1、创建一个自定义CustomPrimitive 2、然后根据两个点,生成圆 3、方便后期绘制圆 二、实现代码 1、在vue的包中加入turf. npm install turf/turf 1、创建一个CustomCirclePrimitive类,并加入更新的代码 export default class CustomCirclePrimitive …

StarRocks实战——贝壳找房数仓实践

目录 前言 一、StarRocks在贝壳的应用现状 1.1 历史的数据分析架构 1.2 OLAP选型 1.2.1 离线场景 1.2.2 实时场景 1.2.3 StarRocks 的引入 二、StarRocks 在贝壳的分析实践 2.1 指标分析 2.2 实时业务 2.3 可视化分析 三、未来规划 3.1 StarRocks集群的稳定性 3…

STM32:CAN功能板设计和调试

0前言 本文主要目的是,总结去年设计stm32-CAN板子过程中遇到的问题,分为keil嵌入式软件和嘉立创EDA设计两个部分。 1 STM32F1 CAN功能 keil expected a “}“ 问题在于,PCB使用芯片为stm32f103c8t6,下载程序时选择device默认此…

在cadence中导入工艺库和仿真状态的方法

在cadence中导入库和仿真状态的方法 一、在cadence中导入库 1、打开cadence的启动界面,如图 2、右键空白处,添加library 3、找到自己的库文件路径即可 二、在cadence中导入仿真状态 1.打开ADE L界面 2.选择好自己需要的状态,注意要取…

Leet code 1089 复写0

1、先找到最后一个数 比如示例1中答案的最后一个数是4 定义两个指针 dest 和 cur dest初始位置是-1 cur初始位置为 0 如果arr[cur]为非零元素 dest位置1 如果arr[cur]为零元素 dest位置2 直到cur<arr.size() 或者 dest>arr.size()-1 cur就是最后一个元素位置 2、…

Swing程序设计(11)动作事件监听器,焦点事件监听器

文章目录 前言一、事件监听器是什么&#xff1f;二、详细展开 1.动作事件监听器2.焦点事件监听器总结 前言 如果你是坚持从Swing程序第一篇看到了这里&#xff0c;恭喜你&#xff0c;Swing程序设计简单地落下了帷幕&#xff0c;关于Swing程序更深的了解&#xff0c;可以自行学习…

在Vue中根据Url下载地址生成二维码展示在界面上

最近来了一个新需求&#xff0c;就是在网页页面上点击按钮不在是直接下载app安装包&#xff0c;需要支持手机扫码下载app&#xff0c;避免他们需要先从电脑上下载&#xff0c;然后传到微信&#xff0c;然后手机从微信上下载下来&#xff0c;得了&#xff0c;需求就是根据后端传…

【Python】-----基础知识

注释 定义&#xff1a;让计算机跳过这个代码执行用三个单引号/双引号都表示注释信息&#xff0c;在Python中单引号与双引号没有区别&#xff0c;但必须是成对出现 输出与输入 程序是有开始&#xff0c;有结束的&#xff0c;程序运行规则&#xff1a;从上而下&#xff0c;由内…

稀碎从零算法笔记Day6-LeetCode:长度最小的子数组

前言&#xff1a;做JD的网安笔试题&#xff0c;结果查找子串&#xff08;单词&#xff09;这个操作不会。痛定思痛&#xff0c;决定学习滑动数组 题型&#xff1a;数组、双指针、滑动窗口 链接&#xff1a;209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 来…

ATFX汇市:油价回落之际加元币值走弱,USDCAD有望刷新年内新高

ATFX汇市&#xff1a;加元是商品货币&#xff0c;币值受到国际油价和精炼石油出口的显著影响。2022年3月份&#xff0c;国际油价达到130美元的峰值水平&#xff0c;随后开启回落走势&#xff0c;时至今日&#xff0c;最新报价在80美元下方&#xff0c;累计跌幅近40%。疲弱的油价…

【框架学习 | 第一篇】一篇文章快速入门MyBatis

文章目录 1.Mybatis介绍1.1Mybatis历史1.2Mybatis特点1.3与其他持久化框架对比1.4对象关系映射——ORM 2.搭建Mybatis2.1引入依赖2.2创建核心配置文件2.3创建表、实体类、mapper接口2.4创建映射文件2.4.1映射文件命名位置规则2.4.2编写映射文件2.4.3修改核心配置文件中映射文件…