1. Swin Transformer 的基本结构 Swin Transformer 采用了分层结构,每一层有一个固定大小的窗口,通过窗口内的自注意力计算特征。Swin Transformer 的主要模块包括:Patch Partition:将输入图像划分为不重叠的Patch。Linear Embedding:将每个Patch映射到一个高维向量空间。Swin Transformer Block:窗口化的多头自注意力(...
在前面的章节中,我们学习了SwinTransformer的整体框架,其主要由Patch Merging模块与SwinTansformer Block模块组成, Patch Embedding 在输入进Swin Transformer Block前,需要将图片切成一个个 patch,然后嵌入向量。 具体做法是对原始图片裁成一个个window_size*window_size的窗口大小,然后进行嵌入。 这里可以通过二维卷积层,...
重点解释该block,该模块应该是整个Swin 最重要的特征,而模块中的子模块SW-MAS,重要中的精髓。 可以看出,该模块是由两子模块构成,其中唯一不同是,第一个是W-MSA,第二个是SW-MSA。也就是说,一个SwinTransformerBlock是包括Window multi-head self attention (W-MSA),和一个Shifted Window multi-head self atten...
Swin Transformer block: Swin transformer 的标准多头自注意力机制替换为移位窗口,而其他层保持不变。即Swin transformer由一个基于移位窗口的多头自注意力机制模块组成,其次是一个2层的MLP,包括一个非线性激活函数GELU,在MSA和MLP之间有层归一化和残差结构: Swin transformer = MSA(shifted windows) + Layer Normaliz...
针对第二个问题,在每一个模块(Swin Transformer Block)中,Swin Transformer通过特征融合的方式(PatchMerging,可参考卷积网络里的池化操作)每次特征抽取之后都进行一次下采样,增加了下一次窗口注意力运算在原始图像上的感受野,从而对输入图像进行了多尺度的特征提取,使得在CV领域的其他密集预测型任务上的表现也是SOTA。
除了Patch Merging模块,接下来便是Swin Transformer Block模块了,这才是重头戏,其主要包含LayerNorm,Window Attention(W-MSA),Shifted Window Attention(SW-MSA)和MLP模块。为方便对整个架构的理解,我们先从外部梳理一遍其具体变换: Swin Transformer整体外部变换过程 ...
2、Swin Transformer Block 这是这篇论文的核心模块。 如何解决计算量随着输入尺寸的增大成平方倍的增长? 抛弃传统的transformer基于全局来计算注意力的方法,将输入划分为不同的窗口,分别对每个窗口(window)施加注意力。 仅仅对窗口(window)单独施加注意力,如何解决窗口(window)之间的信息流动?交替使用W-MSA和SW-MSA模...
Swin Transformer以原始图像片元像素作为输入,通过编码后得到像素的特征而后逐级传递最终获取图像的特征表达。在本研究中使用了4x4的片元作为输入,每个片元作为一个token,输入的维度为W/4xH/4x48,而后通过一次线性变换得到了W/4xH/4xC的特征表达。 通过本文提出的Swin Transformer block单元对输入特征进行计算。后续的...
Swin Transformer Block:此模块是 Transformer 中使用 Shifted Window 的多 ATTENTION 模块,具有一致性;Swin Transformer 模块中包含一个 MSA(多头 Attention)模块 SHIFTED WINDOW,之后是 2 层 MLP,接着将 Layernorm 层添加至各 MSA 模块与各 MLP 层内,而后是剩余连接。
第一个Swin Transformer Block的MLP结构和之前ViT一样,没有新东西,下面就到第二个Swin Transformer Block中的SW-MSA模块。 SW-MSA主要是为了让窗口与窗口之间可以发生信息传输。 论文中给出了这样一幅图来描述SW-MSA。 值得注意的是,表面上看从4个窗口变成了9个窗口,实际上是整个窗口网格从左上角分别向右侧和下...