CrossFormer:A Versatile Vision Transformer Hinging On Cross-Scale Attention

研究背景

尽管Transformer在CV领域取得了不错的成就,但现有的Transformer存在一个限制其性能的缺陷,它们不能再不同尺度的feature上面构建interaction,而这种能力对于许多视觉任务来说是非常重要的。现有的Transformer没这种能力有以下两个原因:

  1. embeddings是从equal-size中生成的,所以它们只具有单一尺度的特征,并再后续层中其规模保持不变或统一变大,因此在同一层的embedding总是equal-scale的;
  2. 在self-attention中,相邻embedding经常被组合在一起并合并,然而,在这种情况下,即使embedding同时具有小尺度和大尺度特征,合并操作也会失去每个单独embedding的小尺度(细粒度)特征,这使跨尺度注意不可用。

解决思路

image.png

Cross-Scale Embedding Layer

CEL可以为每个stage生成input embedding,以第一个为例,它接收一幅图像作为输入,然后使用四个不同大小的卷积核对图像块进行采样。四个卷积核的步幅保持不变,在下图中我们可以看到,每四个对应的patch都有相同的中心,不同的尺度,这四个patch都会被投影并拼接成一个嵌入。对于跨尺度嵌入,一个问题是如何设置每个尺度的project dimension。由于相同维度下,大卷积比小卷积有更大的计算量,为例控制CEL的总计算量,对大卷积用较低的维度,小卷积用较高的维度,具体分配参考下图。这个方案节省了大量的计算量,但不明显影响模型的性能。
image.png

CrossFormer Block

每个CrossFormer Block由一个长短距离注意力模块(LSDA: Long Short Distance Attention)和一个多层感知机(MLP)组成,如下图。
image.png

Long Short Distance Attention

我们将self-attention分为两部分:短距离注意(SDA: Short Distance Attention)和长距离注意(LDA: Long Distance Attention)。对于SDA,将每个相邻的G x G embedding组合在一起,下图a为G=3的示例。对于输入尺寸为S x S的LDA,以固定的间隔I对embedding进行采样。如图b (I = 3),所有带有红色边框的embedding都属于一组,带有黄色边框的embedding都属于另一组。LDA的组高度或宽度计算为G=S/I(即在本例中G=3)。
分组之后,SDA和LDA在每组内均采用vanilla self-attention,结果表明,自注意模块的内存/计算成本由O(S4)降低到O(S2G2), 大多数情况下G << S。
值得注意的是,LDA的有效性也得益于跨尺度embedding。具体来说,我们在图b中绘制了包含两个embedding的所有patches。我们可以看到,两个embedding的小尺度patches是不相邻的,所以在没有上下文的帮助下很难判断它们之间的关系。换句话说,如果只是用small-scale patches(即single-scale feature),将很难构建这两种embedding之间的依赖关系。相反,相邻的large-scale patches提供了足够的上下文来连接这两种embedding,使得远距离的跨尺度注意更容易也更有意义。
image.png

Dynamic Position Bias

随着位置编码技术的不断发展,相对位置编码偏差逐渐的应用到了transformers中,很多的vision transformers均采用RPB来替换原始的APE,好处是可以直接插入到我们的attention中,不需要很繁琐的公式计算,并且可学习性高,鲁棒性强,公式如下:
image.png

但很显然,如果图像的尺寸变化,那么可能会超出B所表达的范围。举个栗子,如果我们的窗口大小为7x7 那么我们希望的相对位置范围为[公式]假设我们不考虑截断距离,如果我们的窗口突然放大到了9x9,那么我们实际的相对位置所表达的信息只是中间的一部分窗口,失去了对外层数据位置的访问。DPB的思想则是,我们不希望通过用实际的相对位置来做embeeidng,而是希望通过隐空间先对位置偏差进行学习,如下图所示。 DPB由3个线性层+LayerNorm+ReLU组成的block堆叠而成,最后接一个输出为1的线性层做bias的表征,输入是(N, 2),由于self-attention是由多个head组成的,所以输出为(N, 1 x heads)
image.png

image.png

Variants of CrossFormer

image.png

实验结果

ImageNet

image.png

COCO

image.png

你可能感兴趣的:(神经网络,深度学习,计算机视觉)