Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
Links
- PDF Attachments: 2021’Swin Transformer_Liu et al_.pdf
- Zotero Links: Local library
- Official code: Github
My Comments and Inspiration
这是我刚接触 Transformer 不久的工作,可能缺少对于 Transformer 的敏感性,评论如下。
ViT 向我们展示了 Transformer 强大的潜力和在足量数据下的表现,但是对于我们蒟蒻来说,在巨量数据上去尝试改进并不是一个可行的方案。基于此,我们沿着 ViT 思考,可能需要引入 inductive bias 来限制 Transformer 的自由度,降低其对于数据量的依赖程度。 Swin Transformer 中给成功的引入了 CNN 中 locality 和 translation invariation 两个固有的 inductive,分别通过基于窗口的自注意力和 patch merging。但是,作者并没有到此止步,同样也做了一些思考,譬如如何引入窗口间的交互(这里告诉我们在考虑局部性的时候,局部和局部之间的交互也同样重要,但是实验结果表明这种重要程度是和任务类型相关的),如何加快 shift window 的计算速度等,这是一个很好的科研方式,但是或许对团队有着较高的要求。
我们还有如下问题,Swin Transformer 在小数据集上表现如何?与 ViT 相比呢?能否有效的收敛?譬如说几万的数据集上?引入的这种 inductive bias 和 CNN 自带的还有多少差距?这种差距可能来源是什么?如果我们引入更多的先验,能否弥补一些 inductive bias 缺失所导致的性能降低?
启发
- 局部和局部的交互是有效的,但是这种效果或许与任务类型有关。
- 当全局效果顶到了上限时(或者说面对一个全局的操作、模块等),我们可以考虑基于局部的方法,但是要考虑局部间的交互
- shift window 是一个有效的策略,在 MLP 上作者也进行了验证
- Inductive bias 确实限制了 Transformer 在非足量图像数据上的表现能力,但是粗暴的引入 CNN 的 inductive bias,又会使得 Transformer 这种通用架构变得可能不在通用(即可能引入某些 inductive bias 并不适合 NLP),这对于模型的大一统来说也许并不是好事,那么有没有图像和文本通用的 inductive bias?或者说,有没有适用于图像,但是又不会对在 NLP 上的应用起到反作用的 inductive bias?
Cores, Contributions and Conclusions
Cores
- 利用基于窗口的自注意力降低 Transformer 的计算量,从平方正比变成线性正比
- 利用滑窗 (shifted window) 完成上下文的感知,而可以不使基于窗口的自注意力一直只关注到自己的局部窗口
- 利用 patch merging 来降低分辨率,控制计算量并引入平移不变性
- 类似披着 CNN 皮的 Transformer,文中虽然没提,但是实际上借鉴了 CNN 的模式,向 Transformer 中引入了 Inductive bias,譬如局部性和平移不变性,我们能在 Swin Transformer 中找到类似卷积的局部性和 Pooling 层的平移不变性
Contributions
- 提出了一个新的基于 Transformer 的 backbone,这是一个非常强有力的 backbone,拥有非常优秀的表现,同时计算量也是线性正比的,拥有非常好的性质,基本屠榜了各大任务
- 提出了一种新的基于 shifted window 的方法使得基于窗口的自注意力能够实现上下文的感知(与邻域发生交互)
- (小改进)提出了一种计算滑窗的快速计算方式,更加适合 Transformer 结构和计算机的计算。
Preface & Motivation
将 Transformer 从 NLP 应用到 CV 上有两个挑战:
- 视觉实体尺度上的变化意味着多尺度信息是十分重要的。在 NLP 中,一个 word 就是一个 token。在图像中使用的 token 往往是一个固定尺度的 patch,同时在 Transformer 中全程不做尺度上的改变,这缺少了图像或者物体的多尺度信息(譬如多尺度信息对于物体检测是十分重要的)
- 图像像素的巨大分辨率会导致自注意力计算量以平方速度增加,平方正比于输入图像尺寸(这往往针对的密集预测类的任务,如物体分割,此时输入图像的尺寸会很大)
以上即为本文的动机,但是我感觉动机这里作者或许可以编的更高大上一些,因为实际上作者在解决了上面的问题后,实际上从更高的层面来说,解决了更多的问题,也给了我们更多的启发。
[! Note] 笔记
- 通过 patch merging 解决 1,但是同时也有很多其他的好处,譬如引入了平移不变性的 inductive bias,
- 引入 window-base self-attention 解决 2,同时也有其他好处,譬如降低计算量等等
Methods
Experiments
Some Descriptions
- “Challenges in adapting Transformer from language to vision arise from differences between the two domains, such as large variations in the scale of visual entities and the high resolution of pixels in images compared to words in text.”
- “With CNNs serving as backbone networks for a variety of vision tasks, these architectural advances have led to performance improvements that have broadly lifted the entire field.”
- “There exist many vision tasks such as semantic segmentation that require dense prediction at the pixel level, and this would be intractable for Transformer on high-resolution images, as the computational complexity of its self-attention is quadratic to image size.”