4.26.7具有超级令牌采样功能的 Vision Transformer

Vision Transformer在捕获浅层的局部特征时可能会受到高冗余的影响。

在神经网络的早期阶段获得高效且有效的全局上下文建模

①从超像素的设计中汲取灵感,减少了后续处理中图像基元的数量,并将超级令牌引入到Vision Transformer中。

超像素(Superpixel)是图像处理中的一种概念,它指的是具有相似颜色、纹理等特征的相邻像素组成的小区域。这些小区域被视为一个整体,从而代替了传统的单个像素作为图像处理的基本单位。 

图像基元指的是图像中具有显著特点的基本单元,是一个相对概括和模糊的概念。

常见的图像基元包括边缘、角点、直线段、圆、孔、椭圆以及其他兴趣点等,还包括这些基本单元的一些结合体。 

②超级令牌试图提供视觉内容的语义上有意义的镶嵌,从而减少自注意力的令牌数量并保留全局建模。

超像素算法

传统的超像素算法:基于图的方法和基于聚类的方法

基于图的方法将图像像素视为图节点,并通过相邻像素之间的边缘连接来划分节点。

基于聚类的方法利用传统的聚类技术来构造超像素。例如不同特征表示上的 K-均值聚类。


超级令牌注意力(STA)机制

  • 通过稀疏关联学习从视觉令牌中采样超级令牌
  • 对超级令牌执行自注意力,最后将它们映射回原始令牌空间

基本介绍

Transformer主导着自然语言处理领域,并表现出通过自注意力捕获长程依赖关系的出色能力。

自注意力的计算复杂度与令牌数量成二次方,导致高分辨率视觉任务(例如物体检测和分割)的计算成本巨大。

ViT倾向于捕获具有高冗余的浅层局部特征。如图(b)所示,给定一个锚标记,浅层全局注意力集中在一些相邻的标记上(用红色填充),而忽略了大多数距离较远的标记。所有令牌之间的全局比较导致在捕获此类局部相关性时产生巨大的不必要的计算成本。

对于局部注意力,如图(c)所示,冗余减少了,但仍然存在于浅层中,其中只有少数附近的令牌获得高权重。

如图(d)所示,所提出的超级标记注意力即使在浅层也可以学习全局表示

另一方面,Uniformer利用浅层中的卷积,有效地减少了局部特征的计算冗余。

处理图像或序列数据时,尤其是当数据具有高度的局部相关性时,直接在整个数据集上进行计算可能会导致大量的计算冗余。通过使用卷积操作,Uniformer模型能够针对局部特征进行高效的计算,因为它只需要在局部区域内进行操作,而不是在整个数据集上进行。这样可以大大减少不必要的计算,提高模型的效率。

对于浅层,超像素在感知上将相似的像素组合在一起,从而减少后续处理的图像基元的数量。我们将超像素的思想从像素空间借用到令牌空间,并将超级令牌假设为视觉内容的紧凑表示。

STA(超级令牌注意力)机制

首先,我们应用 快速采样算法 通过学习令牌和超级令牌之间的稀疏关联来预测超级令牌

稀疏关联(Sparse Connectivity)指的是通过设置规模远小于图像规模的卷积核,让卷积核仅与部分图像单元产生交互,以探寻图像局部有意义的特征。 

然后,我们在超级令牌空间中执行自注意力,以获取超级令牌之间的长距离依赖关系;与令牌空间中的自注意力相比,由于超级令牌的表示和计算效率,这种自注意力可以显着降低计算复杂度,同时学习全局上下文信息。 

最后,我们利用第一步中学习到的关联将超级令牌映射回原始令牌空间。

STViT的整体架构

通用视觉主干(Super Token Vision Transformer)STViT 被设计为具有卷积层的分层ViT混合体。采用卷积层来补偿捕获局部特征的能力。在每个阶段,我们都使用一堆超级令牌转换器(STT)块来进行高效且有效的表示学习。

给定输入图像,首先将其输入  由四个3*3卷积组成的茎,步长分别为2、1、2、1。

然后,令牌经过四个阶段的堆叠超级令牌转换器块(STT Block),以进行分层表示提取。

每个阶段之间使用步长为2的3*3卷积来减少令牌数量。最后,使用1*1卷积来投影、全局平均池化和全连接层来输出预测。

STT Block

SST块由三个关键模块组成,即卷积位置嵌入Convolutional Position Embedding(CPE)、超级令牌注意力(STA)和卷积前馈网络(ConvFFN)。

所提出的 STA 可以有效地学习全局表示,特别是对于浅层。具有深度卷积的CPE和ConvFFN可以以较低的计算成本增强局部特征的表示能力。

STT 块包含三个关键模块:卷积位置嵌入(CPE)、超级令牌注意力(STA)和卷积前馈网络(ConvFFN):

X=CPE(X_{in})+X_{in};        Y=STA(LN(X))+X;        

Z=ConvFFN(BN(Y))+Y

给定输入令牌向量X_{in}\in R^{C\times H\times W},首先使用CPE (即3*3深度卷积) 将位置信息添加到所有令牌中。与绝对位置编码(APE)和相对位置编码(PRE)相比,CRE可以通过零填充来学习绝对位置。

DWConvicon-default.png?t=N7T8https://blog.csdn.net/zfjBIT/article/details/127521956然后,我们通过STA有效探索和充分利用长距离依赖关系来提取全局上下文表示。

最后,我们采用卷积FNN来增强局部表示。它由两个1*1卷积、一个3*3深度卷积和一个非线性函数(即GELU)组成。因此,CPE、STA 和 ConvFFN 的组合使 STT 能够捕获局部和全局依赖关系。

超级令牌注意力(STA)

超级令牌注意力(STA)模块由三个过程组成,即超级令牌采样(STS)、多头自注意力(MHSA)和令牌上采样(TU)。

我们首先通过 STS 将令牌聚合为超级令牌,然后执行 MHSA 对超级令牌空间中的全局依赖关系进行建模,最后通过 TU 将超级令牌映射回视觉令牌。

超级令牌采样(Super Token Sampling)

在STS过程中,我们将SSN(Superpixel Sampling Network)中基于soft k-均值的超像素算法从像素空间适用到令牌空间。

给定视觉令牌X\in R^{N\times C},其中N=H\times W是令牌编号,其中每个令牌X_{i} \in R^{1\times C}被假设属于m个超级令牌S\in R^{m\times C}

首先,我们对规则网络区域中的令牌进行平均来对初始超级令牌S^{0}进行采样,如果网格大小为h\times w,则超级令牌的数量m=\frac{H}{h}*\frac{W}{w}

令牌和超级令牌关联

在SSN中,迭代 t 的像素-超像素关联计算为:

 与SSN不同,我们采用类似注意力的方式来计算关联图Q^t

其中d是通道C的数量。

超级令牌更新

超级令牌更新为令牌的加权和:

 其中,\hat{Q}^tQ^t的列归一化。上述采样算法的计算复杂度为:

其中v是迭代次数。即使对于少量的超级令牌数量m来说也是耗时的。

为了加快采样过程,按照SSN(超级像素采样工作),将每个令牌的关联计算限制为仅9个周围的超级令牌。对于绿色框中的每个令牌,仅使用红色框中的超级令牌用于计算关联。

我们仅在v=1时更新超级令牌一次。复杂性显著降低为:\Omega (STS)=19NC,其中获取初始超级令牌、计算稀疏关联和更新超级令牌的复杂度分别为NC、9NC、9NC.

超级令牌的自注意力

由于超级令牌是视觉内容的紧凑表示,对它们应用自注意力可以更多地关注全局上下文依赖性而不是局部特征。将标准自注意力应用于采样的超级令牌S\in R^{m\times C}

Attn(S)=Softmax(\frac{q(S)k^T(S)}{\sqrt{d}})v(S)=A(S)v(S)

其中A(S)=Softmax(\frac{q(S)k^T(S)}{\sqrt{d}}) \in R^{m\times m}是注意力图,q(S)=SW_{q}k(S)=SW_{k}v(S)=SW_{v}

令牌上采样

虽然超级令牌可以通过自注意力捕获更好的全局表示,但是它们在采样过程中丢失了大部分局部细节。因此,我们并不直接使用它们作为后续层的输入,而是将其映射回视觉令牌并将其添加到原始令牌X,我们使用关联映射Q从超级令牌S中对令牌进行上采样。

TU(Attn(S))=QAttn(S)

复杂性和冗余分析

将超级令牌注意力(STA)与标准全局自注意力进行比较

标准全局自注意力(GSA)

GSA(X)=A(X)v(X)

A(X)=Softmax(\frac{q(X)k^T(X)}{\sqrt{d}}) \in R^{N\times N}是输入令牌的注意力图。

GSA的计算复杂度为:\Omega (GSA)=2N^2C+4NC^2

超级令牌注意力(STA)

STA(X)=Q(A(S)(\hat{Q}^TX)W_v)=\hat{A}(X)v(X),其中\hat{A}(X)=QA(S)\hat{Q}^T\in R^{N\times N}是输入令牌对应的注意力图。

注意力图(Attention Map)是自注意力机制中的一个可视化工具,它展示了每个输入元素对其他元素的影响程度。具体来说,注意力图是一个二维矩阵,其中每个元素(i, j)表示输入序列中第i个元素对第j个元素的注意力权重。这个矩阵可以直观地展示模型在处理输入序列时,各个元素之间的交互和依赖关系。

STA的计算复杂度为:\Omega (STA)=\Omega (STS)+\Omega (MHSA)+\Omega (TU) =19NC+(2m^2C+4mC^2)+9NC=2m^2C+4mC^2+28NC

其中,给定m小于N,STA的计算成本比全局注意力低得多。

冗余讨论

图像具有较大的局部冗余,例如视觉内容在局部区域往往相似。对于浅层中的某个锚标记,全局注意力会突出显示局部区域中的少数令牌,从而导致所有令牌之间的比较存在高冗余。与视觉令牌相比,所呈现的超级令牌往往具有独特的模式并抑制局部冗余。

超级令牌从初始网格到学习网格的可视化;

仅使用红色框中周围的超级令牌来计算绿色框中每个令牌的关联。

鸟头及周围区域与超级令牌存在显著差异。因此,超级令牌空间中的自注意力可以更好地捕获全局依赖关系。

STA可以被视为一种特定的全局注意力,将计算量大的N\times N注意力A(X)分解为稀疏矩阵和小矩阵的乘法,即稀疏关联Q和小m\times m注意力A(S),计算成本低得多。

对于最后两个阶段,在前两个阶段的表示学习之后,局部冗余已经很低。因此,我们将网格大小设置为 1 × 1,并直接将令牌用作超级令牌,而无需 STS 和 TU 过程。

实验

图像分类

在 ImageNet-1K数据上从头开始训练我们的模型。为了公平比较,我们遵循 DeiT中提出的相同训练策略,并采用默认的数据增强和正则化。我们所有的模型都从头开始训练 300 个时期,输入大小为 224 × 224。我们采用 AdamW 优化器,带有余弦衰减学习率调度程序和 5 个时期的线性预热。


总结

超级令牌是为了解决浅层的局部冗余而开发的,网格尺寸越大,性能越好。

更大的超级令牌可以覆盖更多的令牌并更好地捕获全局表示。

超级令牌是通过平均池化对特征进行下采样的,并且可能覆盖不同的语义区域,导致性能下降。

引入超级令牌Vision Transformer(STViT)来学习浅层中高效且有效的全局表示,将超像素的设计适应令牌空间,引入将相似令牌聚合在一起的超级令牌。超级令牌具有独特的模式,从而减少局部冗余。

超级令牌注意力将普通全局注意力分解为稀疏关联图和低维注意力的乘法,从而提高捕获全局依赖关系的效率。

超级令牌注意力算法

所提出的超级令牌注意力(STA)由三个过程组成,即超级令牌采样(STS)、多头自注意力(MHSA)和令牌上采样(TU)。

超级令牌采样又可以分解为两个迭代步骤:

Q^t=\mathrm{Softmax}(\frac{XS^{t-1 \mathrm{T}}}{\sqrt{d}})S^t=(\hat{Q}^t)^\mathrm{T}X

其中\hat{Q}^tQ^t的列归一化,对于v次迭代,上述步骤的复杂度为2vmNC。将v设置为1并以稀疏方式计算关联Q^t。对于每个令牌,使用其周围3*3的超级令牌来计算Q。

在稀疏矩阵乘法中,只考虑非零元素,忽略零元素,按照元素的位置关系逐个计算非零元素的乘积,并将结果加到结果矩阵的相应位置上。这种方法可以显著减少计算量和存储空间的使用。


  1. 给定输入令牌X\in R^{C\times H\times W},首先通过平均池化来生成超级令牌S\in\mathbb{R}^{C\times p\times q},其中p=\frac{H}{h},q=\frac{W}{w},而h\times w是网格的大小。
  2. 然后,我们通过Unfold函数提取与每个令牌对应的3\times 3超级令牌\bar{S}\in\mathbb{R}^{pq\times C\times9},并计算关联Q\in\mathbb{R}^{(pq\times hw)\times9},更新\bar{S}并通过Fold函数将周围的令牌合并到S中。S 除以 Q 的总和以进行归一化。
  3. 由于迭代次数设置为1,对S执行多头注意力。通过上面的Unfold函数执行Q和S的稀疏乘法,将超级令牌映射回令牌空间。

对于卷积主干,采用四个 3 × 3 卷积将输入图像嵌入到令牌中,每次卷积之后使用GELU和批量归一化。阶段之间使用步幅为 2 的 3 × 3 卷积来降低特征分辨率。CPE和ConvFFN采用 3×3 深度卷积来增强局部建模的能力。投影层由 1 × 1 卷积、批量归一化层和 Swish 激活层组成。全局平均池化在投影层之后使用,后面是全连接分类器。

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

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

相关文章

源代码加密的重要性

在数字化时代,企业面临的最大挑战之一是如何保护其核心数据不被泄露。企业源代码防泄密是指企业采取措施保护其软件或应用程序源代码不被未授权的人员获取、泄露或盗用的一种安全措施。源代码是软件的核心组成部分,其中包含了程序员编写的具体指令和算法…

MySQL深入理解MVCC机制(详解)

深入理解MVCC 1、MVCC定义 MVCC:Multi-Version Concurrency Control,多版本并发控制机制。 在mysql中,为了满足事务的四大特性之一的隔离性,就是当前事务中的查询的数据不受其他事务的增删改操作的影响,因此mysql主要是通过这个…

怎么解决端口被占用

目录 一、引言 二、解决方法 一、引言 最近用vscode写网页,老是遇见端口被占用,报错如下: listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 二、解决方法 1.换…

Apache DolphinScheduler 3.3.0 版本重磅更新提前看!

Apache DolphinScheduler 3.3.0版本终于要在万众期待中发布啦!本次发版将有重大功能更新,包括架构上的调整。 为了让广大用户提前尝鲜,社区特别准备了直播活动提前揭秘3.3.0版本中的重要更新,到时候你将会了解到这些信息&#xf…

苹果平板HOME键成历史,全面屏时代到来?2024平板电脑市场趋势分析

近期苹果公司在“放飞吧”发布会上推出了新款iPad Pro和iPad Air平板电脑,并下架了最后一款带有实体Home按键的iPad 9。这一变化标志着Home键在苹果iPad产品线中成为了历史,引起了不少网友的怀念和感慨。 与此同时,今年3月线上平板电脑市场迎…

分析:Palo Alto在从SASE向SASO演进中定位不佳

摘要 我们通过上一篇文章(Fortinet的愿景——超越SASE)中应用于Fortinet的相同框架来回顾Palo Alto Network在网络和网络安全方面的前景。 SASE涉及数据传输的第一英里。不过,随着SASE的发展,投资者还需要考虑中间和最后一英里。…

QLabel 如何同时显示图片和文字?

效果: align="top"表示图片和文字底部对齐。 img src=":/img/qrc_img.png"表示此图片被添加到qrc的相对路径。 完整: QString content =QString("<html><head/><body><p><img src=\":/img/qrc_img.png\"…

【linux kernel】linux内核hid触摸源码hid-multitouch.c剖析

文章目录 一、内核中通用hid触摸驱动二、probe过程剖析(1)hid_parse()函数(2)hid_hw_start()函数(3)hid_connect()函数三、hid-multitouch.c应用场景一、内核中通用hid触摸驱动 在linux内核中,为HID触摸面板实现了一个通用的驱动程序,位于/drivers/hid/hid-multitouch.c文件…

【高阶数据结构】图--邻接矩阵、邻接表、BFS、DFS、Kruskal、Prime

图--邻接矩阵、邻接表、BFS、DFS、Kruskal、Prime 一、图的概述1、概述&#xff08;纯理论部分&#xff09;2、邻接矩阵&#xff08;实现一个添加边的图&#xff09;&#xff08;1&#xff09;思路介绍&#xff08;2&#xff09;代码部分&#xff08;3&#xff09;测试部分 3、…

pytest教程-40-钩子函数-pytest_runtest_call

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest_runtest_setup钩子函数的使用方法&#xff0c;本小节我们讲解一下pytest_runtest_call钩子函数的使用方法。 pytest_runtest_call 钩子函数在 pytest 调用测试函数&#xff08;即测试用…

JAVA栈相关习题3

1.将递归转化为循环 比如&#xff1a;逆序打印链表 // 递归方式void printList(Node head){if(null ! head){printList(head.next);System.out.print(head.val " ");}} // 循环方式void printList(Node head){if(nullhead){return;}Stack<Node> snew Stack<…

将大概的流程具体还是看源码

之前看源码的时候呢没有文字整理&#xff0c;想来还是写一个大概的流程吧&#xff0c;具体是无法用文字描述 spring源码真的yyds&#xff0c;数据结构 反射 父子类 接口…玩得溜到飞起 博大精深呐 后期不断喜欢ing&#xff01; springApplication.run方法 获取了一个Configu…

STC8增强型单片机开发——库函数

一、使用库函数点灯 导入库函数。 下载STC8H的库函数&#xff1a;&#x1f4ce;STC8G-STC8H-LIB-DEMO-CODE_2023.07.17_优化版.zip 来到库函数的目录下&#xff0c;拷贝以下文件&#xff1a; Config.hType_def.hGPIO.hGPIO.c 新建项目&#xff0c;将拷贝的4个文件放到项目目录…

【管理咨询宝藏96】企业数字化转型的中台战略培训方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏96】企业数字化转型的中台战略培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 数字化转型是指&…

代码审计-php篇之某CRM系统多处sql注入

&#x1f31f; ❤️ 作者&#xff1a;yueji0j1anke 首发于公号&#xff1a;剑客古月的安全屋 字数&#xff1a;3516 阅读时间: 35min 声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果…

科沃斯,「扫地茅」荣光恐难再现

作者 | 辰纹 来源 | 洞见新研社 科沃斯恐怕已经很难再回到被市场誉为“扫地茅”时的荣光了。 不久前&#xff0c;科沃斯发布2023年财报&#xff0c;报告期内营业收入155亿&#xff0c;同比仅增长1.16%&#xff0c;归母净利润6.12亿元&#xff0c;同比下降63.96%&#xff0c;直…

【北京迅为】《iTOP-3588开发板快速烧写手册》-第11章 救砖方法

RK3588是一款低功耗、高性能的处理器&#xff0c;适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用&#xff0c;RK3588支持8K视频编解码&#xff0c;内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

pycharm中导入rospy(ModuleNotFoundError: No module named ‘rospy‘)

1. ubuntu安装对应版本ros ubuntu20.04可参考&#xff1a; https://wiki.ros.org/cn/noetic/Installation/Ubuntuhttps://zhuanlan.zhihu.com/p/515361781 2. 安装python3-roslib sudo apt-get install python3-roslib3.在conda环境中安装rospy pip install rospkg pip in…

重定向_缓冲区

目录 重定向 文件属性操作 浅谈重定向​编辑 深入重定向 dup2 缓冲区 缓冲区的理论理解 代码分析 重定向 文件属性操作 #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> int stat(const char *path, struct stat *buf); int fstat(i…

USB系列一:USB技术概念

在这里USB的历史就不赘述了&#xff0c;有兴趣可以自己去搜索。也省略掉USB接口的概述&#xff0c;这些都是一些飞技术性的常识性的知识&#xff0c;没必要浪费篇幅和文字来描述。 一、USB总线版本&#xff1a;&#xff08;从USB1.1说起&#xff09; 1、USB1.1 1998年9月23日…
最新文章