摘要
SG-Former(Self-guided Transformer)是一种新型的视觉Transformer模型,旨在解决传统Transformer在处理大型特征图时面临的计算成本高的问题。该模型通过一种自适应细粒度的全局自注意力机制,实现了有效的计算成本降低。它利用重要性地图(significance map)来重新分配令牌(tokens),根据每个区域的重要性进行调整。实验结果显示,SG-Former在ImageNet-1K、CoCo和ADE20K等数据集上的性能超过了现有的最先进模型,同时具有更低的计算成本和更少的参数。
概述
拟解决的问题:现有的视觉Transformer模型在处理大型特征图时面临计算成本高的问题,这限制了它们在大规模输入上的适用性。为了降低计算成本,先前的工作要么依赖于局部小区域的细粒度自注意力,要么依赖于全局粗粒度的自注意力,但这会牺牲全局信息的建模能力。
创新之处
- 自适应细粒度的全局自注意力:通过重要性地图来重新分配令牌,为显著区域分配更多令牌,为次要区域分配较少令牌。
- 重要性地图的自我进化:重要性地图是通过混合尺度自注意力估计的,并在训练过程中自我进化。
- 混合尺度自注意力:在单个自注意力层中提取细粒度局部和全局粗粒度信息。
方法
SG-Former与之前的CNN和Transformer模型共享相同的补丁嵌入层和四级金字塔结构。除了最后一个阶段,每个阶段都有 Ni 个 Transformer 块,由两种类型的块重复组成:(i)混合尺度 Transformer 块和(ii)自引导 Transformer 块。混合尺度自注意提取混合尺度对象和多粒度信息,指导区域显著性。自引导自注意根据混合尺度变压器块的显著性信息对全局信息进行建模,同时保持显著区域的细粒度。
3.1 Hybrid-scale Attention
混合尺度关注有两个目的:(1)在不超过Swin Transformer中的窗口关注的计算成本的情况下,提取混合尺度的全局细粒度信息;(2)为自引导关注提供意义。
局部全局信息和混合尺度的比较。(A) ViT 中的自注意力是单尺度的,计算成本巨大,因此仅适用于小特征图。(B) Swin Transformer 中的自注意力是单尺度的,并且在小窗口内受到限制,这降低了计算成本并保留细粒度信息;然而,注意力是局部的。 (C) PVT 中的自注意力是单尺度的。它将令牌与计算成本一起减少,并保留全局感受野;然而,它只捕获粗略的信息。(D) 我们的自注意力是混合尺度的,并从局部区域到全局区域执行注意力。它降低了计算成本,保留了全局感受野,并捕获了细粒度的混合尺度信息。
ViT:将图像分割成多个patch,然后将这些patch作为序列输入到Transformer模型中。ViT使用全局自注意力机制,可以捕捉图像中任意两个patch之间的关系,但计算复杂度随着序列长度的平方增长。
Swin Transformer:引入了层次化结构,它采用分窗口的局部自注意力,每个窗口内部进行细粒度的计算,而不同窗口间通过层次结构实现信息流动。
PVT:采用了金字塔结构,通过逐层降低特征图分辨率的方式,实现了多尺度的特征融合。通过在不同层级上应用不同大小的卷积核来聚合特征,从而降低全局自注意力的计算成本。
Hybrid-scale Attention:SG-Former通过引入重要性地图来动态调整令牌的分配,实现了自适应细粒度的全局自注意力。这种方法旨在结合局部和全局信息,同时降低计算成本。
如图所示,输入特征X被投影到Query(Q)、Key(K)和Values(V)中。然后多头自注意力采用 H 个独立的头。通常,这些 H 独立的头部在相同的局部区域内执行,因此缺乏头部多样性。相比之下,我们将 H 个头均匀地剥离为 h 个组,并将这些 h 个组注入混合尺度和多感受野注意力,其中每组有 H/h 个头。在第 i 个属于第 j 个组的头中,尺度 (其中 j = 1, · · · , h),{K,V } 中的每个 标记合并为一个标记。接下来,我们将 {Q, K,V } 拆分为窗口。{K,V } 的窗口大小设置为 M,并且在所有组中保持不变。为了将 {Q} 和 {K,V } 的窗口大小与 {K,V } 中的令牌合并对齐,选择 {Q} 的窗口大小为,大于 {K,V } 的窗口大小。注意力的感受野显着扩大了次:
其中 表示将 X 中的每个令牌合并为一个令牌,该令牌使用步幅的卷积实现。特殊情况是当等于 1 时,其中没有令牌合并,{Q, K,V } 具有相同大小的窗口。
计算注意力图:
其中表示窗口大小为的窗口分区。是注意力权重。有一个特殊情况:等于 h × w,其中不需要窗口分区,{K,V } 中的所有标记都由 {Q} 参与,导致全局信息提取。
是第i个头的重要性分数,通过对注意力分数进行累加来完成的,这个求和是在所有位置 m 上进行的,意味着我们对每个头的注意力分数进行全局累加。
表示第 i 个头中第 m,n 个位置的注意力分数。
最终的全局重要性图 S 是通过对所有自注意力头的重要性图进行累加得到的,它综合了所有头的信息,得到了一个反映整个特征图全局重要性分布的图。这个全局重要性图用于在整个特征图上指导token的重新分配。
3.2 Self-Guided Attention
为了降低Transformer的计算量,最近的工作建议通过将几个标记合并为一个,将序列长度与令牌聚合减少。然而,这种聚合平等地对待每个令牌并忽略不同令牌的固有显着性差异。这种聚合面临两个问题:(i)信息可能会丢失或与显着区域的不相关信息混合,以及(ii)在一个小区域或背景区域,许多标记(更高的序列比例)对于简单语义是多余的,同时需要大量的计算。
论文提出了自引导注意力,它使用显着性作为聚合标记的指导。也就是说,在显着区域中,为细粒度信息保留了更多的标记,而在次要区域中,保持较少的标记以保持自注意力的全局视图并同时降低计算成本。
首先将输入特征映射X投影到Query(Q)、Key(K)和Value(V)。接下来,H 独立的自注意力头并行计算自注意力。为了减少计算成本,同时保持特征图的大小在注意力后不变,我们固定 Q 的长度,但使用重要性引导聚合模块 (IAM) 聚合 K 和 V 的标记。
IAM的目标是在显著区域将更少的令牌聚合为一个(即保留更多),在背景区域将更多令牌聚合为一个(即保留更少)。显著性图S包含了多粒度的区域显著性信息(见3.1节)。我们将显著性图的值按升序排序,并将S平均划分为n个子区域S1,···,Sn。因此,Sn和S1分别是最重要和次要的区域。同时,将X中的所有令牌按照S1,···,Sn分为X1,···,Xn。在式(1)中,r表示每r个令牌聚合为一个令牌的聚合速率。我们设置不同的聚合率r1,···,rnt不同重要度的区域,使每个子区域有一个聚合率,子区域越重要,聚合率越小。不同阶段的具体值如表所示。因此,IAM对分组输入特征X1、···、Xn进行分组聚合,每组具有不同聚合率的分组通过将每组的token串接重新分配token。
其中 F(X, r) 是聚合函数,我们通过输入维度为 r 的全连接层实现它,输出维度为 1。 中的令牌数等于中的令牌数除以。