Press "Enter" to skip to content

ScalableViT:重新思考视觉Transformer面向上下文的泛化

文章目录

 

论文地址:https://arxiv.org/abs/2203.10790

 

论文代码:https://github.com/Yangr116/ScalableViT

 

普通的自注意机制依赖于预定义和固定的计算维度。这样限制了模型不能具有面向上下文的泛化,从而带来更多的上下文线索(局部的)和全局表征(全局的)。因此,本文提出了一种可伸缩的自我注意(Scalable Self-Attention,SSA)机制,该机制利用两个伸缩因子来释放查询、键和值矩阵的维度,同时解除它们与输入的绑定。此外,我们提出了一种基于窗口的交互式自注意( Interactive Window-based Self-Attention,IWSA),通过重新合并独立的值标记和聚集相邻窗口的空间信息来建立非重叠区域之间的交互。通过交替叠加SSA和IWSA,Scalable Vision Transformer (ScalableViT)在通用视觉任务上实现了优于SOTA的性能。

 

关键词:ViT、自我注意机制、分类、检测、语义分割

 

思路构建

 

CNNs在过去几年里占据CV的主导地位,这归因于它们在从局部到全局感知建模真实图像的能力。但在整体视觉感知方面仍存在缺陷。这种全局视图对于下游任务至关重要,如目标检测和语义分割。最近,ViT 及其变种使用了transformer编码器来处理图像任务。

 

transformer的全局感知计算昂贵,因为自我关注是在整个序列上的二次计算。

 

因此,为了缓解这个问题,提出了Swin transformer模型。典型的Swin Transformer 采用了基于windows的Self-Attention (WSA),它将特征映射划分为许多不重叠的子区域,并使其能够处理线性复杂度的大规模图像。还提出了一种基于移动窗口的自我注意(SWSA),以弥补潜在的长期依赖的损失。

 

为了深入了解WSA,本文在第二个块之后可视化特征图。如图一所示,WSA捕获的特征是分散的,它们更倾向于局部,而不是面向全局。

图一

作者任务之所以WSA捕获的特征是分散的是在于它可能归因于一个不变固定的维度,导致限制了学习能力,因此模型的最终性能的高度取决于输入数据的难度

 

为此,作者提出了Scalable Self-Attention (SSA),它同时在空间和通道维度引入两个尺度因子(rn和rc)。

 

它同时将两个尺度因子(rn和rc)引入到空间维度和通道维度中。也就是说,SSA有选择性地将这些因子应用于查询矩阵、键矩阵和值矩阵(Q、K和V),以确保维度更具弹性,不再受输入的深度约束。

 

在图1的第三行中,我们可以发现,空间可伸缩性可以为对象带来几乎连续的视觉建模,但一些上下文线索仍然丢失。

 

因此,作者扩展通道维度来学习更图形化的表示。如图1最后一行所示,通过通道可扩展性,SSA在保持面向上下文泛化的同时,成功地获得了完整的对象特征图。

 

同时,作者还提出了Interactive Window-based Self-Attention (IWSA),它由一个常规WSA和一个local interactive module (LIM)组成。IWSA通过重新合并独立的值标记和聚合相邻窗口的空间信息来建立信息连接。

 

为了实现更有效的一般视觉任务的主干,我们采用了层次设计,并提出了一种新的视觉变压器架构,称为 ScalableViT ,它在每个阶段交替安排IWSA和SSA模块。

 

主要贡献

对于全局自注意,我们建议SSA在普通的自注意块中提供面向上下文的泛化,这在不牺牲上下文表达性的情况下显着降低了计算开销。
对于局部自我注意,我们设计了LIM来增强WSA的全局感知能力。

网络结构

 

ScalableViT网络架构

接下来,我们详细介绍ScalableViT的架构,主要关注SSA和IWSA机制。SSA同时在空间维度和通道维度中引入不同的尺度因子,以保持面向上下文的泛化,同时减少计算开销。IWSA通过从一组离散的values(v)值中聚集信息来增强局部自我注意的感受野域。两者都具有线性的计算复杂度,并且可以在单个层中学习长期的依赖关系。

 

Scalable Self-Attention

 

自我注意是变压器中的一个关键机制,普通的自我注意可以计算为:

 

一般来说,在自然图像中有很多同源信息,但普通的自我注意仍然计算它们的相似性。值得注意的是,并不是所有的信息都是计算视觉转换器中的自我注意力所必需的。因此,作者提出Scalable Self-Attention (SSA),其中两个尺度因子(rn和rc)分别被引入空间和通道维度,导致一个比普通的更有效的中间计算。

 

SSA示例图

这些比例因子还可以恢复输出维度与输入对齐,使后续的FFN层和剩余连接可行。因此,中间维度更有弹性,不再与输入x深度绑定。

 

模型可以获得面向上下文的泛化,同时显着减少计算开销。SSA可以写成:

 

 

Interactive Window-based Self-Attention

 

除了有效的自注意外,早期的研究还开发了局部自注意,以避免具有token数的二次计算复杂度。WSA将一个图像(H×W×C)划分为多个包含M×M标记的部分窗口。对每个窗口计算注意力。

 

然而,这种计算效率高的WSA产生了一个具有完整形状但孤立激活的特征图(见图1),这归因于在单个层中缺失的整体感受野。这远不是自我关注的最初目标。

 

因此,作者提出了 Interactive Window-based Self-Attention (IWSA)。IWSA是将a local interactive module(LIM)合并到WSA中。具体结构如下所示。

 

在获得离散值的集合V之后,LIM将它们reshape为M×M×C,接着将其合并形状完整的value图(H×W×C)。紧接着,使用一个函数F (x)来建立相邻的Vn之间的连接。最终,输出的Y = F (V)是一个具有全局信息的完整全局特征图。

最后,在Z上添加这个特征图作为最终的输出Z‘。公式如下:

Position Encoding

 

除了LIM引入的位置信息外,作者还利用由固定权值的卷积层组成的位置编码生成器(PEG)来获取隐式的位置信息。如 ScalableViT网络架构 所示,它被插在两个连续的Transformer块之间,每个级的前面只有一个。在PEG之后,输入的tokens被发送到随后的块,位置偏差可以使Transformer实现输入排列。

 

在本文中,我们提出了一个名为ScalableViT的视觉变压器主干,它由两种高效的自注意机制(SSA和IWSA)组成。SSA在空间维度和通道维度上采用两个协同的尺度因子来进行面向情境的泛化,从而保持更多的上下文线索并学习图形表示。IWSA开发了一个本地交互式模块来建立独立窗口之间的信息连接。它们都拥有在单个层中建模长期依赖关系的能力。提出的尺度性交替建立这两个自我注意模块。它将整个框架推入一个更有效的权衡状态,并在各种视觉任务上实现了最先进的性能。

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注