Shunted Self-Attention via Multi-Scale Token Aggregation

2024-05-03 20:44

本文主要是介绍Shunted Self-Attention via Multi-Scale Token Aggregation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近期提出的ViT模型在各种计算机视觉任务上展现了令人鼓舞的结果,这要归功于能够通过自注意力对补丁或令牌的长期依赖性进行建模。然而这些方法通常指定每个令牌相似感受野。这种约束不可避免地限制了每个自注意力层在捕捉多尺度特征的能力。本文提出一种新的注意力,称为分流自注意力(Shunted Self-attention,SAA),允许ViT在每个注意力层的混合尺度上对注意力进行建模。SAA关键思想是将异构感受野大小注入到令牌中:在计算自注意力矩阵之前,选择性合并令牌以表示更大的目标特征,同时保留某些令牌以保留细粒度特征。这种新颖的合并方案使得自注意力模块能够学习目标之间的关系,同时减少令牌数量和计算成本。

分流Transformer块

为了降低处理高分辨率特征图时的计算成本,PVT引入了空间约简注意力(Spatial Reduction Attention,SRA)取代原来的多头自注意力(MSA)。然而SRA倾向于在一个自注意力层中存储太多令牌,并且仅在单个尺度上提供令牌特征。这些限制阻碍了模型捕捉多尺度目标的能力,尤其是小尺寸目标。

分流自注意力

输入序列 F F F首先投影到查询 Q Q Q,键 K K K和值 V V V向量。之后多头自注意力采用 H H H独立注意力头并行计算自注意力。为了减少计算成本,遵循PVT并减少K,V长度而不是Swin中按照区域划分 { Q , K , V } \{Q,K,V\} {Q,K,V}。本文的SSA与PVT的SRA不同点之处在于,在同一自注意力层的注意力头之间,K、V长度不相同。相反,长度在不同头中变化,以捕捉不同粒度的信息。这提供了多尺度令牌聚合。键和值 K , V K,V K,V对于不同头下采样到不同尺寸:
Q i = X W i Q K i , V i = M T A ( X , r i ) W i K , M T A ( X , r i ) W i V V i = V i + L E ( V i ) \begin{aligned} Q_{i}&=XW_{i}^{Q}\\ K_{i},V_{i}&=MTA(X,r_{i})W_{i}^{K},MTA(X,r_{i})W_{i}^{V}\\ V_{i}&=V_{i}+LE(V_{i})\\ \end{aligned} QiKi,ViVi=XWiQ=MTA(X,ri)WiK,MTA(X,ri)WiV=Vi+LE(Vi)
其中 M T A ( ⋅ . r i ) MTA(\cdot.r_{i}) MTA(.ri)是第i层的多尺度令牌聚合层,其中下采样率为 r i r_{i} ri。实践中采用和卷积和步幅为 r i r_{i} ri的卷积实现下采样。 W i Q , W i K , W i V W_{i}^{Q},W_{i}^{K},W_{i}^{V} WiQ,WiK,WiV是第i头线性投影参数。在注意力头之间有变量KaTeX parse error: Expected '}', got 'EOF' at end of input: r_{i]。因此自注意力中键和值可以捕捉不同尺度。 L E ( ⋅ ) LE(\cdot) LE()是MTA通过深度卷积对值 V V V的局部增强分量。
分量自注意力可以描述为: h i = Softmax ( Q i K i T d k ) V i h_{i}=\text{Softmax}(\frac{Q_{i}K_{i}^{T}}{\sqrt{d_{k}}})V_{i} hi=Softmax(dk QiKiT)Vi
得益于多尺度键核值,本文的分流自注意力在捕捉多尺度目标时更强大。计算成本的降低可以取决于 r r r的值。当 r r r变大, K , V K,V K,V中更多令牌被合并,且 K , V K,V K,V长度更短。因此,计算成本较低,但它仍然保留了捕捉大目标的能力。当 r r r变小,更多细节被保留但带入更多计算成本。融合各种 r r r 到一个自注意力层使得捕捉多细粒度特征。

具体细节前馈层

在传统的前馈层中,全连接层是逐点的且无交叉令牌信息可以学习。这里本文目标是通过指定前馈层中的细节来补充局部信息。通过在前馈层的两个全连接层之间添加数据特定层来补充前馈层中局部细节。
x ′ = F C ( x ; θ 1 ) x ′ ′ = F C ( σ ( x ′ + D S ( x ′ ; t h e t a ) ) ; θ 2 ) \begin{aligned} x^{\prime}&=FC(x;\theta_{1})\\ x^{\prime\prime}&=FC(\sigma(x^{\prime}+DS(x^{\prime};theta));\theta_{2})\\ \end{aligned} xx′′=FC(x;θ1)=FC(σ(x+DS(x;theta));θ2)
其中 D S ( ⋅ ; θ ) DS(\cdot;\theta) DS(;θ)是具体细节层,参数为 θ \theta θ,实践中由深度卷积实现。

补丁嵌入层

如何映射图像到序列对于模型性能是重要的。ViT直接划分输入图像为16x16无重叠补丁。 Scaled relu
matters for training vision transformers发现在补丁嵌入使用卷积提供了高质量补丁序列,它帮助Transformer比传统的大跨度非重叠补丁嵌入看得更好。在本文模型中,根据模型尺寸采用具有重叠得不同卷积层。将步幅为2和零填充得7x7卷积层作为补丁嵌入的第一层,并根据模型大小添加步幅为1的额外3x3卷积层。最后使用步幅为2的无重叠投影层生成大小为 H 4 × W 4 \frac{H}{4}\times \frac{W}{4} 4H×4W

这篇关于Shunted Self-Attention via Multi-Scale Token Aggregation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/957609

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

图神经网络框架DGL实现Graph Attention Network (GAT)笔记

参考列表: [1]深入理解图注意力机制 [2]DGL官方学习教程一 ——基础操作&消息传递 [3]Cora数据集介绍+python读取 一、DGL实现GAT分类机器学习论文 程序摘自[1],该程序实现了利用图神经网络框架——DGL,实现图注意网络(GAT)。应用demo为对机器学习论文数据集——Cora,对论文所属类别进行分类。(下图摘自[3]) 1. 程序 Ubuntu:18.04

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

【NodeJS】Unexpected token (109:0) 返回错误码500

刚开始报错是这样的: Unexpected token call 是什么我没看懂,但我发现 span.label.lable-success 后面的 #[i+1] 写错了,应该是 #{i+1} 改成完这个错误后又是一个错误提示: What? Unexpected token (109:0) 返回错误码500是什么鬼 我先将自己这段源码的 - if ... - else 检查下

解决OAuth Token,点击退出登录报404问题

首先,认证服务器发送请求 http://auth.test.com:8085/logout?redirect_uri=http://admin.test.com:8080’ 退出后报404无法跳转到网站首页,这个时候增加一个参数redirect_uri指定退出成功后跳转的路径,因为是自定义的,所以需在认证服务器做一些处理 找到源码默认实现接口DefaultLogoutPageGeneratingF

OAuth2 Token实现授权码模式

文章目录 OAuth2 授权:Resource owner password(密码模式)OAuth2 授权:Authorization code grant授权码模式,适用于浏览器模式OAuth2:Implicit(简化授权模式)OAuth:Client credentials(客户端证书)授权码模式使用案例 OAuth2 授权:Resource owner password(密