Swin Transformer 可以说是批着Transformer外表的卷积神经网络。
具体的架构如下图所示:
首先我们得到一张224*224*3的图片。
通过分成4*4的patch,变成了56*56*48。
线性变换后又变成了56*56*96。
然后利用了Swin Transformer中一个比较特别的结构 Patch Merging 变成28*28*192。
同理,变成14*14*384。
同理,变成7*7*768。
这是总体的过程,Swin Transformer内部是由W-MSA 和SW-MSA组成的。
另外一个比较重要的是针对移位配置的高效批量计算。
移动窗口分区的一个问题是,它将导致更多的窗口,一些窗口将小于M×M。
一个简单的解决方案是将较小的窗口填充到M×M的大小,并在计算注意力时屏蔽填充的值。这种朴素解增加的计算量是相当大的(2×2→ 3×3,是2.25倍)。
利用下图所示的方法:
在该偏移之后,分批窗口可以由在特征图中不相邻的几个子窗口组成,因此采用掩蔽机制来将自注意计算限制在每个子窗口内。
掩码如下: