赞
踩
文章链接:2303.08810.pdf (arxiv.org)
作为vision transformers的中心块,注意力是一个用来捕获长期依赖关系的强有力的工具。然而,这种力量会产生巨大开销:它会产生巨大的计算负担和大量内存占用,当计算所有空间位置的成对token交互时。一系列工作试图解决这个问题通过在注意力机制中引入手工制作的、与内容无关的稀疏性,比如将注意力操作限制在局部窗口、轴向条纹或扩张窗口之内。
本篇工作的贡献点:
- 通过双层路由(bi-level routing)提出了一种新颖的动态稀疏注意力(dynamic sparse attention),以实现更灵活的计算分配和内容感知,使其具备动态的、query感知的稀疏性
- 使用两级路由注意力作为基本构建块,提出了一个新的视觉Transformer,名为BiFormer,视觉领域的多个实验表明该模型具有更好的性能。
本篇工作的核心方法:
第一步:在粗区域级别上过滤掉最不相关的Q-K键值对向量,只保留一小部分路由区域。
第二步:再在这些路由区域的并集中应用细粒度的token-to-token注意力机制 。
?首先什么是稀疏注意力
如果要节省显存,加快计算速度,那么一个基本的思路就是减少关联性的计算,也就是认为每个元素只跟序列内的一部分元素相关,这就是稀疏Attention的基本原理。
接下来:梳理一下上图:
图(a)是原始的注意力实现,其直接在全局范围内操作,每一个像素点都要进行计算,导致高计算复杂性和大量内存占用;
图(b)Local Attetion:计算一个像素周围一些点的Attention,通过移动Attention框来集合不同像素点之间的信息。
图(c)Axial Attention:计算轴向(行 / 列)的Attention的信息。
图(d)Dilated Attention:加入空洞卷积的Attention注意力。
图(e)Deformable Attention:对于单个像素点,首先通过一层网络来计算出贡献值最大/最好的点,计算这些点对其的Attention,讲这些点的信息融合起来。
总结:
方法b-d:采用的都是静态的方法,没有动态的选择。对于不同的图片(对应于不同的数据集)会有不同的效果。
方法e:在选择像素点进行像素融合时,紧是使用选择出的部分单个信息,得到贡献值。基于可变形注意力通过不规则网格来实现图像自适应稀疏性。
方法f(本篇文章):它是动态的选择的需要融合的信息方法。
大致思想:
网络整体进行粗略的Attention计算和区域的选择,在对选择好的区域进行细致的计算进行相加。
首先,将进行分块,得到红色小块,将红色小块的信息进行融合计算,得到不同大块区域的信息进行融合,得到不同区域之间的粗略信息。
对于蓝色区域而言,计算出这两黄色区域对它的Attention贡献值比较高。选择好后,只需要计算蓝色区域(4个小像素)和两个黄色区域(8个小像素)之间进行Attention计算。再将这8个点的信息融合到4个像素里面,得到最终的信息。相当于从粗到细的Attention的计算过程。
首先对于的特征图变成,接下来在进行Q,K,V的计算
接下来进行Attention的计算
比如对于蓝色区域而言,计算另外15个区域对它的Attention值,选取15区域里面中最好的K个,在图中就是黄色的两个区域,后续我们就可以只用计算黄色区域和蓝色区域的关系信息。
基于BRA
模块,本文构建了一种新颖的通用视觉转换器BiFormer
。如上图所示,其遵循大多数的vision transformer
架构设计,也是采用四级金字塔结构,即下采样32倍。
具体来说,BiFormer
在第一阶段使用重叠块嵌入,在第二到第四阶段使用块合并模块来降低输入空间分辨率,同时增加通道数,然后是采用连续的BiFormer
块做特征变换。需要注意的是,在每个块的开始均是使用 的深度卷积来隐式编码相对位置信息。随后依次应用BRA
模块和扩展率为 的 2 层 多层感知机(Multi-Layer Perceptron, MLP
)模块,分别用于交叉位置关系建模和每个位置嵌入。
本文提出了一种双层路由注意力模块,以动态、查询感知的方式实现计算的有效分配。其中,BRA
模块的核心思想是在粗区域级别过滤掉最不相关的键值对。它是通过首先构建和修剪区域级有向图,然后在路由区域的联合中应用细粒度的token-to-token
注意力来实现的。值得一提的是,该模块的计算复杂度可压缩至 !最后,基于该模块本文构建了一个金字塔结构的视觉Transformer
——BiFormer
,它在四种流行的视觉任务、图像分类、目标检测、实例分割和语义分割方面均表现出卓越的性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。