文章目录
- SWin-Transformer解读
- 1.基础介绍
- 关于Shifted Window based Self-Attention
- 相对位置偏置
- 网络整体结构和层级特征
欢迎访问个人网络日志🌹🌹知行空间🌹🌹
SWin-Transformer解读
1.基础介绍
Swin-Transformer是2021
年03
月微软亚洲研究院提交的论文中提出的,比ViT
晚了半年左右,相对于ViT
而言,Swin-Transformer
的改进,使transformer
能作为新的视觉任务backbone
,用于分类分割和检测,姿态估计等任务。
论文:https://arxiv.org/abs/2103.14030
代码:https://github.com/microsoft/Swin-Transformer
Swin-Transformer
是Shifted Window Transformer
,作者指出了将transformer
应用到视觉任务中需要解决的两个问题,
一个是在ViT
中就已经提到的计算self attension
时 Q K T d k V \frac{QK^T}{\sqrt{d_k}}V dkQKTV复杂度是序列长度L
(在视觉任务中是image size)的平方,着限制了transformer
处理大分辨率图像的能力。
另一个,对于像语义分割/目标检测这些任务,最好能输出层级的金字塔型的特征,以增加模型处理不同scale
对象的能力,同时也更利于使用过去研究中已验证有效果的trick
。
Swin-Transformer
中作者针对上述两个问题提出的方法分别是Shifted Window based Self-Attention
和随着网络的深度合并图像patch
来生成层级特征图。
关于Shifted Window based Self-Attention
先来看transformer
中的常规全局Multi-Head Self Attention(MSA)
的计算复杂度,
Q=K=V
,shape
为(L, C)
L
对应的是序列的长度对于 h × w h\times w h×w的图像等同于 L = h × w L=h\times w L=h×w,C
是模型的通道数等同于hidden_dims
, W i Q , W i K , W i V W_i^Q,W_i^K,W_i^V WiQ,WiK,WiV对应的shape
都为(C,C)
,MSA
输出的通道数也是C
,则 W O W^O WO的shape
为(C,C)
。那么,对于全局注意力机制的计算包括 Q W i Q QW_i^Q QWiQ, K W i K KW_i^K KWiK, V W i V VW_i^V VWiV, Q K T QK^T QKT, S V SV SV, A W O AW^O AWO这几部分,其中 S = s o f t m a x ( Q K T C ) S=softmax(\frac{QK^T}{\sqrt{C}}) S=softmax(C