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.mzph.cn/pingmian/8588.shtml

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

相关文章

应用软件安全保证措施方案书

系统安全保证措施方案—word原件 软件全套资料进主页获取或者本文末个人名片直接获取。

html的标签

基础标签 标签描述<h1>-<h6>定义标题&#xff0c;h1最大&#xff0c;h6最小<font>定义文本的字体&#xff0c;字体尺寸&#xff0c;字体颜色<b>定义粗体文本<i>定义斜体文本<u>定义文本下划线<center>定义文本居中<p>定义段落…

嘎嘎好用的虚拟键盘第二弹之中文输入法

之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了&#xff08;新需求不会迟到 它只是在路上飞一会儿&#xff09; 找到了个博主分享的代码 是好使的 前端-xyq 已经和原作者申请转载了 感谢~~ 原作者地址&#xff1a;https://www.cnblogs.com/linjiangxian/p/16223681.h…

【Linux进程间通信(六)】深入理解 System V IPC

&#xff08;一&#xff09;引入 &#xff08;二&#xff09;IPC 命名空间 &#xff08;三&#xff09;ipc_ips结构体 &#xff08;四&#xff09;ipc_id_ary结构体 &#xff08;五&#xff09;kern_ipc_perm结构体 &#xff08;六&#xff09;操作系统对IPC资源是如何管理…

视频提取gif怎么制作?试试这个网站一键转换

通过把视频转换成gif动图的操作能够更加方便的在各种平台上分享和传播。相较于视频&#xff0c;gif图片具有较小的文件体积&#xff0c;gif动图能够快速的加载播放&#xff0c;不需要等待就能快速欣赏。很适合从事新媒体之类的小伙伴&#xff0c;可以用来做展示、宣传等。想要实…

刷题训练之模拟

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握模拟算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题训…

vue 路由url中去掉#

修改前效果 想要去掉/# 如何实现&#xff1f; 1、typeScript中去掉url中# 找到项目中的router/index.ts-----------去掉createWebHashHistory中的Hash 将createWebHashHistory修改为createWebHistory 2、javaScript中去掉url中# 找到项目中的router/index.js-----------添加…

基于Nios-II的流水灯

基于Nios-II的流水灯 一、Qsys设计&#xff08;一&#xff09;新建项目&#xff08;二&#xff09;Platfrom Designer&#xff08;三&#xff09;设置时钟主频&#xff08;四&#xff09;添加Nios-II Processor并设置&#xff08;五&#xff09;添加JTAG并配置&#xff08;六&a…

做外贸用什么邮箱比较好?

外贸公司在推进公司业务时需要频繁进行跨国沟通&#xff0c;选择一款专业且功能强大的企业邮箱作为业务沟通工具至关重要。外贸企业邮箱需要满足5个基本内容&#xff0c;国际收发能力、安全稳定性、专业形象展示、功能完备性、客户服务与技术支持。本文将探讨做外贸时适合使用的…

Tkinter组件:Checkbutton

Tkinter组件&#xff1a;Checkbutton Checkbutton&#xff08;多选按钮&#xff09;组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像&#xff0c;你可以将一个 Python 的函数或方法与之相关联&#xff0c;当按钮被按下时&#xff0c;对应的函数或方法将被…

游戏全自动打金搬砖,单号收益300+ 轻松日入1000+

详情介绍 游戏全自动打金搬砖&#xff0c;单号收益300左右&#xff0c;多开收益更多&#xff0c;轻松日入1000 可矩阵操作。 项目长期稳定&#xff0c;全自动挂机无需人工操作&#xff0c;小白&#xff0c;宝妈&#xff0c;想做副业的都可以。

elementui+vue通过下拉框多选字段进行搜索模糊匹配

从字典中选择的值为["01","03"],在最开始的时候进行的处理是类似于表单提交的时候将json对象转换成了String类型 nature:["01","03"] this.queryParams.nature JSON.stringify(this.queryParams.nature); mapper层 <if test&quo…

springboot+vue+mybatis图书推荐管理系统的设计与实现+PPT+论文+讲解+售后

随着我国经济的高速发展与人们生活水平的日益提高&#xff0c;人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加快的当下&#xff0c;人们更趋向于足不出户解决生活上的问题&#xff0c;图书推荐管理系统展现了其蓬勃生命力和广阔的前景。与此同时&#xff0c;为解决…

亲测快捷高效的编写测试用例方法

前言 测试用例是任何测试周期的第一步&#xff0c;对任何项目都非常重要。如果在此步骤中出现任何问题&#xff0c;则在整个软件测试过程中都会扩大影响。如果测试人员在创建测试用例模板时使用正确的过程和准则&#xff0c;则可以避免这种情况。 在本篇文章中将分享一些简单而…

Shell变成规范与变量

目录 1. Shell脚本 1.1 Shell脚本概述 1.2 Shell的作用 1.3 Shell脚本的构成 2. 重定向与管道操作 2.1 交互式硬件设备 ​ 2.2 重定向操作 3. shell变量 3.1 自定义变量 3.2 变量的作用范围​编辑 3.3 整数变量的运算 4. 环境变量 4.1 特殊的Shell变量 4.2 只读变…

鸿蒙开发接口Ability框架:【@ohos.application.formProvider (FormProvider)】

FormProvider FormProvider模块提供了卡片提供方相关接口的能力&#xff0c;包括更新卡片&#xff0c;设置卡片更新时间&#xff0c;获取卡片信息&#xff0c;请求发布卡片等。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上…

机器人系统可以支持对接人工系统吗?

​ 随着科技的飞速发展&#xff0c;机器人系统在各行各业都扮演着越来越重要的角色。它们可以高效地处理大量数据&#xff0c;执行繁琐的任务&#xff0c;甚至在某些领域超越了人类的能力。然而&#xff0c;机器人系统也有其局限性&#xff0c;特别是在处理复杂的人际交往…

【Qt 开发基础体系】Qt信号与槽机制

文章目录 1.Qt 信号与槽机制原理&#xff08;Signal & Slot&#xff09;2. QObject 类 connect 的介绍3. 信号与槽机制连接方式4. 信号和槽机制优势及其效率&#xff1a;3. 信号与槽机制应用 1.Qt 信号与槽机制原理&#xff08;Signal & Slot&#xff09; &#x1f42…

Kafka---总结篇

kafka架构 主要概念 broker: 存储消息的机器 控制器controller &#xff08;1&#xff09;使用zookeeper&#xff0c; 除了提供一般的broker功能之外&#xff0c;还负责选举分区首领。通过在zookeepr中创建一个名为 /controller的临时节点称为 controller。每个选出的contro…

C# 和 Qt 相比的一些优势

C# 和 Qt 都是流行的软件开发工具&#xff0c;它们各自具有不同的优势&#xff0c;适用于不同的开发场景。以下是 C# 和 Qt 相比的一些优势。相比之下&#xff0c;Qt 也有其独特的优势&#xff0c;特别是在跨平台 GUI 应用程序开发方面。然而&#xff0c;C# 的这些优势使得它在…