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

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

Skywalker

INTRODUCTION

Self-Attention在NLP大放异彩,在CV(computer vision)领域要怎么应用呢?

首选,图片相对于NLP处理的序列太大了,相关的工作有两个方向:

  1. CNN和Self-Attention结合使用(比如可以用ResNet的特征图作为输入)
  2. 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

如何把自注意力机制用在图片上?

  1. 把像素当成一个元素(复杂度太高)
  2. 不用整张图,用local neighborhoods做自注意力
  3. Sparse Transformers对一些稀疏的点做自注意力,是全局注意力的近似

METHOD

Vision Transformer(ViT)

image-20250426213150974

  1. 将图片分成Patch,加入Position Embedding,变成一个序列,通过Linear Projecttion of Flattened Patches
  2. 将这个加工过的序列放入Transformer Encoder
  3. 分类通过Extra Learnable embedding(参考BERT)加入一个特殊字符CLS,因为所有的Token和Token之间都在做交互,我们相信Class Embedding能够从别的Embedding学到有用的信息。最后根据CLS做最后的判断
  4. 进入MLP Head 用交叉熵函数进行训练。

前向过程:

为输入, 如果使用的Patch可以得到个维度为768图像块($196\times768(16163)$).

经过全连接层(维度为),经过(线性投射层)维度变为加上,整体进入Transformer Encoder的维度为(位置编码是相加的,不改变维度)。、

进入Transformer Encoder的KQV(如果有12个头的话,整体的维度变为)合起来还是 MLP会放大,然后缩小

  • 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.
Comments
On this page
精读——AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION ATSCALE