【精选】swin transformer解读 您所在的位置:网站首页 resnet结合transformer 【精选】swin transformer解读

【精选】swin transformer解读

2023-11-09 20:18| 来源: 网络整理| 查看: 265

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows --论文解读 论文信息、概要

Swin transformer是微软今年三月25日公布的一篇利用transformer架构处理计算机视觉任务的论文。源码仅仅公布两天就在github上收获了2.2k个stars。它是我个人认为迄今为止用tranformer架构处理计算机视觉任务最有实用价值的一篇文章,在图像分割,目标检测各个领域已经霸榜,让很多人看到了transformer完全替代卷积的可能。而且它的设计思想吸取了resnet的精华,从局部到全局,将transformer设计成逐步扩大感受野的工具,它的成功背后绝不是偶然,而是厚厚的积累与沉淀。 论文链接https://arxiv.org/abs/2103.14030

总体结构

输入的图像先经过一层卷积进行patch映射,我有看过源代码,具体是将图像先分割成 4 × 4 4\times4 4×4的小块,然后将每一个小块通过映射成一个像素点,进行了通道上的扩充。以swin-s为例,输入的 224 × 224 224\times224 224×224图像经过这一步操作就变成了 56 × 56 56\times56 56×56的特征图。特征图一开始开始输入到stage1,stage1由两层transformer组成,这两层transformer的核心一个是普通的window attention, 另一个是shift window attention。可以将window attention 和shift window attention视为两个模块,在每一个stage内部就是直接堆积这两个模块。然后在stage与stage之间要有一个pooling操作来降低要处理的数据的尺寸,也就是为了从一开始的局部信息搜索到全局信息的提取。当然这个pooling操作与传统卷积里面的pooling也不太一样,它是将特征图先经过一个space to depth变为 1 4 \frac{1}{4} 41​,通道数变为原来的4倍,再又一个MLP缩减一半。也就是说没经过一个stage,总的数据量变为原来的 1 2 \frac{1}{2} 21​。 此时可以很容易的看出,swin transformer和resnet一样设计的是一个层次结果很明显的网络,底部的结构处理的数据更多也更局部,顶部的网络处理的数据更少但是语义信息是更加丰富的。不同的是swin主要提取信息的方式是采用transformer,而resnet是卷积核。 在这里插入图片描述

window attention 和 shift window attention

如图,window attention就是按照一定的尺寸将图像划分为不同的window,每次transformer的attention只在window内部进行计算。那么如果只有window attention就会带来每一个像素点的感受野得不到提升的问题,所以它又设计了一个shift window attention的方法,就是换一下window划分的方式,让每一个像素点做attention计算的window块处于变化之中。那么就起到了提升感受野的作用。

在这里插入图片描述

存在的问题

在同尺寸通计算量的前提下,swin确实效果远好于resnet。但是有几个问题: 1. 受缚于shift操作,对不同尺寸的输入要设计不同的网络,而且也要重新开始训练,这是很难接受的。 2. 和Detr一样训练的时候收敛的太慢。我自己有训练了一下最小的swin-tiny版本,大概训练了一百多轮的时候也才到72~73左右。有这方面改进的想法的朋友可以和我交流,整一篇B类应该没问题。 3. shift操作其实主要是为了提升感受野,可以换一种更好的方式。在这个方面我也有一点思路,可以交流。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有