MaxViT: Multi-Axis Vision Transformer

news/2024/5/19 21:29:12/文章来源:https://blog.csdn.net/qq_52302919/article/details/127823301

论文:https://arxiv.org/abs/2204.01697
代码地址:https://github.com/google-research/maxvit
在这里插入图片描述

在本文中,介绍了一种高效且可扩展的注意力模型,称之为多轴注意力,该模型由两个方面组成:分块的局部注意力和扩张的全局注意力。这些设计选择允许在仅具有线性复杂度的任意输入分辨率上进行全局-局部空间交互。本文还通过有效地将注意力模型与卷积相结合,提出了一种新的架构元素,并相应地提出了一个简单的分层视觉主干,称为MaxViT,通过简单地在多个阶段重复基本构建块。值得注意的是,MaxViT能够在整个网络中“看到”全局,甚至在早期的高分辨率阶段。

一、引言

在本文中,提出了一种新型的Transformer模块,称为多轴自注意力(Max SA),它能够作为基本的架构组件。其可以在单个块中执行局部和全局空间交互。与完全自注意力相比,Max SA具有更大的灵活性和效率,即自然适应具有线性复杂性的不同输入长度;与(平移)窗口/局部注意力相比,Max SA通过提出一个全局感受野,加强的模型能力。此外,仅具有线性复杂性,Max SA可以用作网络任何层的一般独立注意力模块,甚至在早期的高分辨率阶段。
为了证明其有效性和通用性,作者进一步设计了一种简单但有效的视觉主干,称为多轴视觉Transformer(MaxViT),通过分层堆叠由Max SA和卷积组成的重复块。虽然该模型属于混合视觉Transformer的范畴,但MaxViT与以前的方法的区别在于,本文通过设计一个统一卷积、局部和全局注意力的基本块,然后简单地重复它,力求简单。实验表明,MaxViT在各种视觉任务(包括分类、对象检测和分割、图像美学评估和图像生成)的所有数据体制下都显著提高了最先进的(SOTA)性能。本文的贡献包括:
1、一个通用的Transformer主干MaxViT,可以在网络的每个阶段捕获局部和全局空间交互。
2、一种新颖的独立多轴注意力模块,由分块的局部注意力和扩张的全局注意力组成,在线性复杂性中享受全局感知
3、通过广泛的消融研究,展示了大量的设计选择,包括层数、布局、MBConv的使用等,汇聚到最终模块化设计MaxViT块。

二、实现细节

受稀疏方法的启发,本文引入了一种新型的注意力模块,称为阻塞多轴自注意力(Max SA),通过将完全密集的注意力机制分解为两种稀疏形式——窗口注意力和网格注意力,这将普通注意力的二次复杂度降低为线性,而不会损失任何非局部性。顺序设计提供了简单性和灵活性,同时比以前的方法执行得更好——每个单独的模块可以单独使用或以任何顺序组合使用,而并行设计没有这些好处。由于Max SA的灵活性和可扩展性,能够通过简单地将Max SA的替代层与MBConv堆叠在分层结构中来构建一个新的视觉主干,称之为MaxViT,如下图所示。MaxViT受益于整个网络的全局和局部感受野,从浅层到深层,在模型容量和泛化能力方面表现出优异的性能。
在这里插入图片描述

自注意力

自注意力允许整个空间(或序列)所有位置的空间混合,同时还受益于基于标准化成对相似性的内容相关权重。一般的模型中定义的标准自注意力是不知道位置的, 平移不变性是ConvNets中的一个重要归纳偏差。相对自注意力通过在注意力权重中引入相对学习偏差来提高普通注意力,这已被证明在许多视觉任务中始终优于原始注意力。在本文中,主要采用预归一化相对自注意力作为MaxViT中的关键算子。

多轴注意力

与局部卷积相比,全局交互是自注意力的关键优势之一。然而,直接沿整个空间应用注意力在计算上是不可行的,因为注意力算子需要二次复杂度。为了解决这个问题,本文提出了一种多轴方法,通过简单地分解空间轴,将全尺寸注意力分解为两种稀疏形式——局部和全局。X∈RH×W×CX∈ R^{H×W×C}XRH×W×C是输入特征图。没有将注意力集中在平坦的空间维度HW上,而是将特征分为形状张量(H/P×W/P,P×P,C)(H/P×W/P,P×P,C)H/P×W/PP×PC,表示划分为不重叠的窗口,每个窗口大小为P×P。将自注意力集中在局部空间维度(即P×P)上等同于关注一个小窗口。将利用这一块注意力进行局部交互。 尽管绕开了完全自注意力的繁重计算,但在大规模数据集上,局部注意力模型的表现欠佳。受区块注意力的启发,本文提出了一种简单但有效的方法来获得稀疏的全局注意力,称之为网格注意力。代替使用固定窗口大小来划分特征图,使用固定的G×G均匀网格将张量网格化为形状(G×G,H G×W G,C),从而生成具有自适应大小H/G×W/GH/G×W/GH/G×W/G的窗口 。在分解的网格轴(即G×G)上使用自注意力对应于令牌的扩展的全局空间混合。通过使用相同的固定窗口和网格大小,可以完全平衡局部和全局操作之间的计算,两者在空间大小或序列长度方面仅具有线性复杂度。请注意,本文提出的Max SA模块可以是Swin注意力模块的替代品,其参数和FLOP的数量完全相同。然而,它具有全局交互能力,而不需要掩码、填充或循环移位,使其更易于实现,比移位窗口方案更可取。例如,可以使用einops轻松实现多轴注意力,而无需修改原始注意力操作。

MaxViT block

如下图所示,将两种类型的注意力顺序叠加,以在单个块中获得局部和全局交互。本文还采用了Transformer中的典型设计,包括LayerNorm、前馈网络(FFN和跳过连接。还在多轴注意力之前添加了一个带有(SE)模块的MBConv块,将MBConv与注意力一起使用进一步提高了网络的泛化和可训练性。在注意力之前使用MBConv层提供了另一个优势,因为深度卷积可以被视为条件位置编码(CPE),使得模型没有显式位置编码层。提出的独立多轴注意力可以一起使用,也可以单独使用,用于不同的目的——局部交互的块注意力,以及全局混合的网格注意力。这些元素可以很容易地插入到许多视觉体系结构中,特别是在高分辨率任务中,这些任务可以通过与可负担计算的全局交互而受益。
在这里插入图片描述

架构变体

本文设计了一系列极其简单的架构变体来探索本文提出的MaxViT块的有效性。使用了类似于常见ConvNet的分层主干,其中输入首先在stem stage(S0)使用Conv3x3层进行下采样。网络主体包含四个层级(S1-S4),每个层级的分辨率为前一级的一半,通道数加倍(隐藏维度)。在网络中,在整个主干中使用相同的MaxViT块。在每个阶段的第一个MBConv块的深度方向Conv3x3层中应用下采样。反向瓶颈和挤压激励(SE)的膨胀率和收缩率默认为4和0.25。将所有注意力块的注意力头部大小设置为32。通过增加每个阶段的块数B和通道尺寸C来放大模型。在下表中总结了MaxViT变体的架构配置:
在这里插入图片描述

三、实验

(一)、分类实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)、目标检测

在这里插入图片描述

(3)、消融实验

Global grid-attention:本文的主要贡献之一是网格注意力模块,它允许在线性时间进行稀疏的全局交互,使模型能够在所有阶段捕获全局信息。进行了两次消融以了解其增益:
1)在每个阶段完全消除了全局注意力;
2) 将网格关注替换为块关注,以保持相同的参数计数和FLOP。如下表所示,与仅使用局部注意力或卷积相比,在早期阶段启用全局注意力可以进一步提高性能。
在这里插入图片描述
MBConv层:本文还通过移除每个阶段中的所有MBConv来消融MaxViT中MBConv层的使用。请注意,在移除MBConv层时,我们还应考虑参数和FLOP的减少。此外,阶段3有5个块,而其他阶段只有2个块。如下表所示,MaxViT中MBConv层的使用显著提高了性能。
在这里插入图片描述
Block order study:本文提出了三个不同的模块来构建MaxViT块——MBConv、块和网格注意力——它捕获了从局部到全局的空间交互。为了研究组合它们的最有效方法,使用所有6种排列来评估MaxViT-T模型。总是在第一层应用下采样,这可能会导致较小的模型大小差异。我们可以从下表中观察到,在注意力层之前放置MBConv几乎总是优于其他组合。原因可能是,更适合在早期层中获取局部特征/模式,然后全局聚合它们,这与现有的混合模型相一致,这使Conv层成为人们关注的焦点。然而,在生成对抗实验中,我们发现从全局到局部的最佳顺序是:GA-BA-C。对于生成任务来说,首先使用全局处理块(即网格关注层)获得正确的总体结构,然后使用局部处理块(如MBConv)填充更精细的细节可能是有利的。
Sequential vs. parallel:在本文的方法中,也存在采用并行设计的其他模型。在本次消融中,将顺序Max-SA与分别包含块关注和网格关注的并行分支进行比较。使用一个输入投影来增加通道数量,然后分割注意力头来馈送两个分支,以保持与MaxViT相似的复杂性,并使用一个输出投影来减少级联的分支。本文进行了粗略的参数调整,发现初始学习率为10−310^{−3}103。如下表所示,本文的顺序方法以更少的参数和计算显著优于并行方法。原因可能是并行设计学习互补的线索,而它们之间的交互较少,而顺序堆栈能够学习局部和全局层之间更强大的融合。 在这里插入图片描述
Vertical layout:我们进一步研究了我们的垂直布局设计,即每个阶段的块数。将本文的设计与Swin/ConvNeXt的选择进行了比较。将MaxViT-T和-S更改为块B=(2,2,6,2),MaxViT-B,-L更改为严格遵循Swin的阶段比的块B=(2, 2, 18, 2)。从下图中可以看出,本文的布局在小型模型中的表现与Swin相当,但在大型模型中的比例明显更好。 在这里插入图片描述

四、附录

MBConv:MaxViT利用MBConv块作为主卷积算子。本文还采用了预激活结构,以促进MBConv和Transformer之间的均匀性。具体地,假设x为输入特征,则无下采样的MBConv块被公式化为:
在这里插入图片描述
其中,Norm是BatchNorm,Conv是扩展通道的Conv1x1,然后是BatchNom和GELU,这是基于Transformer模型的典型选择。DWConv是Depthwise Conv3x3,后面是BatchNorm和GELU。SE是挤压激励层,而Proj是收缩Conv1x1,以向下投影通道数。对于每个阶段中的第一个MBConv块,通过应用步长为2的深度方向的Conv3x3进行下采样,而shortcut分支也应用l了池化层和通道投影:
在这里插入图片描述
Relative Attention:为了简化表达,只使用了多头自注意力的单个头部来演示模型。在实际实现中,总是使用具有相同维度的多头注意力。相对注意力可定义为:
在这里插入图片描述
其中Q、K、V∈R(H×W)×CQ、K、V∈ R^{(H×W)×C}QKVRH×W×C是查询、键和值矩阵,d是隐藏维度。注意力权重由学习的静态变量以及位置感知矩阵B和缩放输入自适应注意力QKT/√dQK^T/√dQKT/d共同决定的, 考虑到2D坐标的差异,相对位置偏差B由矩阵B^∈R(2H−1)(2W−1)\hat{B}∈ R^{(2H−1) (2W−1)}B^R(2H1)(2W1)进行参数化的,当以更高分辨率(例如H′×W′H^{'}×W{'}H×W)进行微调时,使用双线性插值来映射相对位置偏差从R(2H−1)(2W−1)R^{(2H−1) (2W−1)}R(2H1)(2W1)R(2H′−1)(2W′−1)R^{(2H^{'}−1) (2W^{'}−1)}R(2H1)(2W1) 这种相对注意力得益于输入适应性、平移不变性和全局交互,这是二维视觉任务中优于普通自注意力的首选。在本文中,所有注意力操作符默认使用上式中定义的相对注意力。
Multi-Axis Attention:假设上式中的相对注意力遵循1维输入序列的惯例,即始终将输入的第二个最后维度(…,L,C)视为空间轴,其中L,C表示序列长度和通道。所提出的多轴注意力可以在不修改自注意力操作的情况下实现。首先使用参数P定义Block(⋅)Block(·)Block操作符作为对输入图像/特征x∈RH×W×Cx∈ R^{H×W×C}xRH×W×C的分块分为不重叠的块,每个块的大小为P×P。在窗口分割后,块的尺寸被聚集到空间维度(即-2轴)上:
在这里插入图片描述

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

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

相关文章

笔记本电脑没有声音如何解决

​笔记本电脑没有声音的现象,也是笔记本电脑的常见运用病况之一,遇到这种情况的话,大家是否知道如何处理呢?下面小编来跟大家说说笔记本电脑没有声音解决方法,希望可以帮助到大家。 工具/原料: 系统版本:windows10系统 品牌型…

Allegro 274X格式gerber输出全流程详细介绍

Allegro 274X格式gerber输出全流程详细介绍 下面介绍Allegro gerber输出的全流程介绍 首先把光绘设置好 设置光钻孔精度 会出现对话框,勾选Enhanced Excellon format,点击close 输出钻孔文件,选择Auto Tool select,点击Drill 输出椭圆孔文件,默认设置,然后点击rout…

Android App开发之利用Glide实现图片的三级缓存Cache讲解及实战(附源码 超详细必看 简单易懂)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、利用Glide实现图片的三级缓存 图片加载框架之所以高效,是因为它不但封装了访问网络的步骤,而且引入了三级缓存的机制。具体来说,是先到内存中查找图片,找到了就直接显示内存图…

二级导航栏

简介&#xff1a;本文通过HTML与CSS相集合的方式&#xff0c;来实现二级导航菜单。 HTML构建骨架 <body><ul class"nav1"><li>水果<ul class"nav2"><li>苹果</li><li>香梨</li><li>火龙果</li…

windows常见的命令操作大全

目录 一、目录文件操作 cd命令 dir命令 md命令 rd命令 move命令 copy命令 del命令 二、文本相关操作 type命令 >命令 findstr命令 |命令 三、网络相关操作 小建议&#xff1a;跟着文章亲手敲一遍是避免忘记的有效方法 一、目录文件操作 cd命令 功能&#xf…

JavaScript流程控制-循环(循环(for 循环,双重 for 循环,while 循环,do while 循环,continue break))

目录 JavaScript流程控制-循环 循环 for 循环 执行过程&#xff1a; 断点调试&#xff1a; 案例一&#xff1a;求1-100之间所有整数的累加和 案例二&#xff1a;求1-100之间所有数的平均值 案例三&#xff1a;求1-100之间所有偶数和奇数的和 案例四&#xff1a;求1-10…

HashMap的面试题

目录 1、底层数据结构 1.7和1.8有何不同 2、为什么用红黑树&#xff0c;为何不一上来就树化&#xff0c;树化阈值为何是8&#xff0c;何时会树化&#xff0c;何时会退化为链表 3、索引如何计算&#xff1f;hashCode都有了&#xff0c;为何还要提供hash()方法&#xff1f;数组…

ArcGIS计算地形湿度指数

TWI是区域地形对径流流向和蓄积影响的物理指标&#xff0c;有助于识别降雨径流模式、潜在土壤含水量增加区域和积水区域。 计算方法&#xff1a;TWI是通过细尺度地形与上梯度对地表面积的贡献相互作用&#xff0c;根据以下关系得到的(Beven et al.,1979) [1] : TWI ln [CA/…

用专业团队管理软件工具轻松“拿捏”年轻运营团队

本文旨在抛砖引玉&#xff0c;欢迎大家拍砖讨论&#xff0c;通过一款时下流行的专业团队管理软件飞项做案例&#xff0c;一起探讨和交流团队管理专业工具软件和一些对应的方法论。 说到国内这几年流行起来的团队管理工具软件&#xff0c;我们先看看互联网这几年的发展。这几年&…

京东面试题:ElasticSearch 深度分页解决方案

前言 Elasticsearch 是一个实时的分布式搜索与分析引擎&#xff0c;在使用过程中&#xff0c;有一些典型的使用场景&#xff0c;比如分页、遍历等。 在使用关系型数据库中&#xff0c;我们被告知要注意甚至被明确禁止使用深度分页&#xff0c;同理&#xff0c;在 Elasticsearc…

【Python实战】听书就用它了:海量资源随便听,内含几w书源,绝对精品哦~(好消息好消息)

前言 有温度 有深度 有广度 就等你来关注哦~ 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 哈喽&#xff01;我是栗子同学&#xff0c;继续更新——今天聊一聊“西马拉雅”。&#xff08;谐音…

特征选择-sklearn

sklearn特征选择:移除低方差特征&#xff1a;单变量特征选择递归特征消除基于模型的SelectFromModel顺序特征选择特征选择作为pipline的一部分sklearn.feature_selection模块中的类可用于样本集的特征选择/降维&#xff0c;以提高估计器的准确性得分或提高其在非常高维的数据集…

BL200OPC UA分布式IO系统接线方式

BL200OPC UA 数据点 Node Id OPC UA 的 Node Id 默认是 NS1&#xff1b;SI/O 数据点的 Modbus 映射地址(如首个 DO 模 块第一路 DO&#xff1a;NS1&#xff1b;S1000)&#xff0c;具体 Modbus 映射地址参考 5.1.4Modbus 寄存器映射&#xff0c; 如果是自定义的 OPC UA 模型 Nod…

(02)Cartographer源码无死角解析-(19) SensorBridge→雷达点云数据预处理(函数重载)

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 …

3.35 OrCAD中怎么产生Cadence Allegro的第一方网表?OrCAD软件输出Cadence Allegro第一方网表报错时应该怎么处理?

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

cpu与指令集

讨论一下 作为一个java程序员&#xff0c;我们都知道&#xff0c;当我们写完代码&#xff0c;java文件会被编译为class文件&#xff0c;然后交给jvm去执行&#xff0c;那么这个执行过程是啥样的呢&#xff1f;&#xff1f; 一般我们得到的解答都是&#xff0c;class代码会被解…

2、HTML——标题分组、居中、引用标签、水平线标签下划线标签、删除标签、<font>标签、图像标签

目录 一、基本标签 1、标题分组&#xff1a;hgroup 2、居中&#xff1a;center 3、引用标签 3.1 块&#xff08;长&#xff09;引用标签&#xff1a;blockquote 3.2 短引用标签&#xff1a;q 4、水平线标签&#xff1a;hr 5、下划线标签&#xff1a;ins 6、删除标…

【论文笔记之 BLMS】Block Implementation of Adaptive Digital Filters

本文对 GREGORY A. CLARK 于 1981 年在 IEEE Transactions on Circuits and Systems 上发表的论文进行简单地翻译。如有表述不当之处欢迎批评指正。欢迎任何形式的转载&#xff0c;但请务必注明出处。 论文链接&#xff1a;https://ieeexplore.ieee.org/abstract/document/108…

安利几个小技巧教会你ppt如何转pdf

作为一名打工人&#xff0c;特别是办公类&#xff0c;经常是要处理大大小小的文件&#xff0c;有时候甚至要做多种文件转换。并且老板都是多变的&#xff0c;经常突然性就让你把辛苦制作一大半的PPT转成PDF格式的文件再给他。那刚入门的职场小白肯定就会选择&#xff0c;老老实…

我终于读懂了适配器模式。。。

文章目录&#x1f5fe;&#x1f306;什么是适配器模式&#xff1f;&#x1f3ef;类适配器模式&#x1f3f0;对象适配器模式⛺️接口适配器模式&#x1f3ed;适配器模式在SpringMVC 框架应用的源码剖析&#x1f5fc;适配器模式的注意事项和细节&#x1f306;什么是适配器模式&am…