Swin Transformer论文阅读笔记

Swin Transformer阅读笔记

文章目录

    • Overall Architecture
      • Swin Transformer Block
    • Shifted Windows based Self-Attention
      • self-attention in non-overlapped windows
      • Shifted window partitioning in successive blocks
      • Efficient batch computation for shifted configuration
      • Relative position bias
    • Architecture Variants(架构变体)

Overall Architecture

Swin Transformer论文阅读笔记_第1张图片
1.通过一个Patch splitting Module将输入的RGB图像分割成不重叠的patch。像ViT一样。每一个patch被视为一个‘’token’’,并且它的特征被设置为原始像素值的连接。在实施过程中,patch size为4x4,所以每个patch的特征维度是4x4x3=48。

2.随后通过一个Linear Embedding层将原始像素值投射到一个任意的维度

3.接着多个Swin Transformer Block应用于这些patch。这个Transformer Block和Linear Embedding层共同构成了Stage1

为了产生层次性的表达,随着网络的变深,token的数量通过Patch Merging层进行减少

Swin Transformer Block

Swin Transformer Block是在Transformer的基础上将Transformer的多头注意力机制替换为一个基于移动窗口(shifted windows)的模块,其他保持不变。
Swin Transformer论文阅读笔记_第2张图片 Swin Transformer论文阅读笔记_第3张图片

将Transformer和Swin Transformer进行对比,可以清楚地看到将多头注意力机制替换为了基于MSA Module的Shifted Windows,同时跟随一个2层的MLP。同时在每一个MSA和每一个MLP结构之前都添加一个LayerNorm层。

Shifted Windows based Self-Attention

self-attention in non-overlapped windows

标准的Transformer结构和它应用于图像分类的情况都需要计算全局的注意力,即需要计算一个token和其他所有token之间的关系。对于具有大量token的任务不太适用。

MSA(Multi-Head Self-Attention)和W-MSA(Window based MSA)的计算复杂度如下:

在这里插入图片描述

Shifted window partitioning in successive blocks

基于窗口的注意力机制缺乏窗口之间的联系。为了保证窗口之间的联系并且保持计算的高效性,提出Shifted窗口注意力模块。

Swin Transformer论文阅读笔记_第4张图片

W-MSA和SW-MSA代表着使用regular windows和shifted windows的注意力机制(上图中左侧是regular windows,右侧是shifted windows),shifted windows能够使前一层的相邻的Windows之间联系起来,这对图像分类、目标检测和语义分割都非常有用。

Swin Transformer Blocks的计算如下:

Swin Transformer论文阅读笔记_第5张图片

Efficient batch computation for shifted configuration

Shifted windows 带来的问题就是它会生成更多的窗口,会造成计算量的增加。于是提出一个更高效的批量计算方法——朝向左上方向的环形变换。

Swin Transformer论文阅读笔记_第6张图片

通过这种转换,一批窗口会有一些更小的窗口组成,因此一个掩膜(masking)机制应用于这些小窗口上来限制自注意力机制的计算量。通过cyclic-shift,batched window的数量与regular windows的数量相同,因此同样高效。

Relative position bias

在计算head的相似性时,添加一个相对位置偏差

在这里插入图片描述

Q,K,V分别是query,key,value matrices(即查询矩阵,键矩阵,值矩阵)。d 是query/key 的维度

Swin Transformer论文阅读笔记_第7张图片

如图表所示,可以看到在添加ViT中绝对位置插值、相对位置偏差带来的增益。

Architecture Variants(架构变体)

基本的架构是Swin-B。变体有Swin-T、Swin-S和Swin-L分别是SwIn-B模型大小和计算复杂度的0.25、0.5、2倍,Swin-T和Swin-S的复杂度分别与ResNet50(DeiT-S)和ResNet101相似。

Swin Transformer论文阅读笔记_第8张图片

C是first stage中隐藏层的通道数。具体的模型大小,理论模型复杂度(FLOPS)等如下表所示:

Swin Transformer论文阅读笔记_第9张图片

你可能感兴趣的:(笔记,论文阅读,transformer,深度学习,pytorch)