从ViT开始,Transformer在视觉领域得到应用。为了降低Transformer中softmax attention操作的计算量和显存,Sparse Global Attention被提出和使用,例如在PVT和PVT v2中。另一种策略是Window attention,如Swin Transformer提出一种Shifted Window方法让ViT具有多尺度的能力,并且降低计算量,能接受大分辨率的图片;Cross-Shaped Window attention则有一半的head分别进行纵向和横向的窗口attention;ViTdet则提出一种local attention+global attention的方法解决该问题。还有一种策略是Linear Attention。
Linear Attention(带有线性归一化) 相比 Softmax Attention有两个点不到位,第一个点是Softmax能让大的更大小的更小,而Linear的出来后比较平滑。第二点是Softmax计算出的Attention map是满秩的,而Linear计算出的是不满秩的,也就是说Linear计算出的对于V的选择是过于同质化的。针对这两点,Flatten Transformer(ICCV2023)提出一种改进名为Focused Linear Attention,旨在弥补二者的性能差距,计算方法如下:
DWC是depth-wise convolution,其中计算相似度的过程如下:
不过Flatten Transformer在应用在各种网络上比如Swin-T中的时候也不是所有的都替换,论文实验表示只换前两个stage比较好,超参p=3。比其他Linear Attention好,但是计算量要求不严格时,比Softmax Attention没特别大优势,提速1.5~2倍吧。