VSA: Learning Varied-Size Window Attention in Vision Transformers
方法:
给定输入特征X,VSA首先按照基线方法的例程,将这些标记划分为几个窗口Xw,窗口大小为预定义的w。我们将这些窗口称为默认窗口,并从默认窗口中获取查询:
为了估计每个默认窗口的目标窗口大小和位置,VSA将默认窗口的大小和位置作为参考,并采用可变大小窗口回归(VSR)模块来预测参考的规模和偏移,如图3(b)所示。VSR模块由平均池化层、LeakyReLU激活层和步长为1的1×1卷积层组成。池化层的内核大小和步长遵循默认窗口大小。
其中Sw和Ow∈R2×N表示相对于默认窗口位置的水平和垂直方向上的估计尺度和偏移,独立于N个注意力头。生成的窗口称为目标窗口。
我们首先从特征图X中得到:
然后VSA模块分别从K,V上的每个不同大小的窗口中均匀地采样M个特征,并获得作为查询tokens Qw的key/value tokens。为了将计算成本保持为窗口注意力,我们将M设置为w×w。然后将采样的与用于注意力计算的查询Qw一起馈送到MHSA中。然而,由于key/value tokens是从不同位置采样的,查询tokens,因此query 和 key tokens之间的相对位置嵌入可能无法很好地描述空间关系。遵循CPVT,我们在MHSA层之前采用条件位置嵌入(CPE)将空间关系提供到模型中,如图3(c)所示,即
其中,Z l−1是来自前一个变换器块的特征,CP E由深度卷积层实现,其内核大小等于窗口大小,即默认情况下为7×7,步长为1。
实验结果: