
精读——AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION ATSCALE

INTRODUCTION
Self-Attention在NLP大放异彩,在CV(computer vision)领域要怎么应用呢?
首选,图片相对于NLP处理的序列太大了,相关的工作有两个方向:
- CNN和Self-Attention结合使用(比如可以用ResNet的特征图作为输入)
- Stand-Alone Self-Attention(用一个局部的window缩小计算复杂度) / Axial Attention(分别拆开高度和宽度做Self-Attention)
Vison Transformer 将图像拆分为 16x16 的图块(Patch),视为“单词”输入 Transformer,通过 全局自注意力(Self-Attention) 直接建模所有图块间关系,无需卷积。
ViT在中等模型上,如果没有比较强的约束 ,是要比同等级别的ResNet要弱几个百分点的。作者解释:
Transformers 缺少一些归纳偏置(Inductive biases)(如:Locality(邻近则相关), Translation Equivariance(操作顺序无关))
然而在大规模数据集上,ViT有着显著优势。
CONCLUSION
不需要图像特有的Inductive biases,可以直接把图片分块后当作word处理,用NLP的Transformer来做图像的分类。在有大规模预训练后,效果很好。
文章提出的问题:Vison Transformer能不能在分割和检测上发挥作用。
后续:检测方面:ViT-FRCNN
分割方面:SETR
Swin Transformer、ViT-G
RELATED-WORK
如何把自注意力机制用在图片上?
- 把像素当成一个元素(复杂度太高)
- 不用整张图,用local neighborhoods做自注意力
- Sparse Transformers对一些稀疏的点做自注意力,是全局注意力的近似
METHOD
Vision Transformer(ViT)
- 将图片分成Patch,加入Position Embedding,变成一个序列,通过Linear Projecttion of Flattened Patches
- 将这个加工过的序列放入Transformer Encoder
- 分类通过Extra Learnable embedding(参考BERT)加入一个特殊字符CLS,因为所有的Token和Token之间都在做交互,我们相信Class Embedding能够从别的Embedding学到有用的信息。最后根据CLS做最后的判断
- 进入MLP Head 用交叉熵函数进行训练。
前向过程:
经过全连接层(维度为
进入Transformer Encoder的KQV(如果有12个头的话,整体的维度变为
- Title: 精读——AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION ATSCALE
- Author: Skywalker
- Created at : 2025-04-26 20:15:42
- Updated at : 2025-04-28 23:24:24
- Link: https://skywalker.github.io/2025/04/26/AN-IMAGE-IS-WORTH-16X16-WORDS/
- License: This work is licensed under CC BY-NC-SA 4.0.