swin transformer:多层级基于移动窗口的transformer
动机:由于图像和自然语言还是有所区别,图像对同一物体可能出现在多尺度上,而ViT采用的是固定尺寸patch并且在全局上做自注意力,需要平方级的复杂度,而对于视觉领域一些下游任务需要多尺度以及高分辨率的情况下,ViT需要花费的资源太大导致无法训练,因此swin transformer结合了CNN和ViT的特点,将图片打成4*4的patch,再采用滑动窗口的模式一步步的合并做自注意力,从而达到了全局建模的效果,能够节省大量运算复杂度,同时也能满足一些任务对多尺度特征的要求(如密集物体检测等)。
结构:transformer块有两层自注意力层,一层是基于窗口做自注意力,再经过一层基于移动窗口的自注意力层。就可以在局部自注意力的基础上兼顾全局建模。同时,由于移动了窗口,原先自注意力的4个块变成了9个块,作者团队为了不增加运算的复杂度,在做自注意力时将左上角的三小块拼接到右下角,这样还是4个图片块做自注意力,同时为了不让不同图片块的patch做自注意力(原本不在一起),还加入了一种掩码,即不是相同图片块做自注意力(矩阵乘法)的区域为-100,相同图片块的乘积区域这是0,这样加上掩码就会使非相同图片块的乘积区域的值变成很小的负数,这样经过softmax之后就会接近0,不会有太大影响。
swin transformer 论文精读读后感
最新推荐文章于 2024-05-03 16:35:29 发布