Vision Transformer(ViT)
一、背景:从卷积到Transformer
在计算机视觉领域,卷积神经网络长期占据主导地位。 从LeNet到ResNet,CNN通过卷积层在图像上滑动窗口,捕捉局部特征(如边缘、纹理、形状)。然而,CNN有两个主要限制:
- 局部性:卷积核一次只能看到图像的一小部分,很难直接捕捉远处像素之间的关系。
- 归纳偏置强:CNN预设了局部平移不变性等假设,对数据依赖较强。
而在自然语言处理(NLP)领域,Transformer 模型凭借 自注意力机制彻底取代了RNN与LSTM,成为理解序列数据的王者。
于是,研究者提出了一个大胆想法:既然Transformer能捕捉文本中词与词之间的依赖关系,那么能不能让它理解图像中像素块与像素块之间的关系?这就是 Vision Transformer(ViT) 的诞生。
二、核心思想:把图像当成“句子”
Transformer原本是为处理序列而设计的。为了让它能处理图像,ViT做了一个关键转换:
把一张图像切成许多小块(Patch),然后把这些小块视为“词”。
举个例子:
假设我们有一张尺寸为 224×224 的彩色图像。ViT会把它切成 16×16 的小块。因此一共有:$ (224 / 16)^2 = 14 \times 14 = 196 \text{个Patch}$
每个Patch包含 (16×16×3 = 768) 个像素值。
这些Patch会被展平(Flatten)成一个向量,然后通过一个线性层映射成固定长度的 嵌入向量(Embedding),就像词向量一样。
于是,一张图像就变成了一个“有196个词的句子”。
三、ViT的模型结构
Vision Transformer的整体结构与原始Transformer非常相似,由以下几个部分组成:
1. Patch Embedding(图像块嵌入)
- 将每个小图像块展平并映射到固定维度的向量空间;
- 类似于NLP中的词向量;
- 输出一个序列:[x₁, x₂, …, xₙ],每个xᵢ代表一个Patch。
2. 加入分类标识符 [CLS]
- ViT像BERT一样,在序列最前面加一个特殊的 [CLS] token。
- 这个token的最终输出会被用来表示整张图像的特征,用于分类任务。
3. 位置编码(Positional Encoding)
- Transformer本身对序列顺序不敏感,所以要告诉模型每个Patch在图像中的位置。
- ViT通过位置编码加到每个Patch的嵌入中,让模型知道空间结构信息。
4. Transformer Encoder 模块
包含多个 自注意力层 和 前馈层:
- 多头自注意力:模型可以同时从多个角度理解Patch之间的关系,比如形状、颜色、位置等。
- 前馈神经网络:对每个Patch的特征进行非线性变换,增强表示能力。
这些层通常堆叠 12~24层,构成深层的Transformer。
5. 全连接层
最终,[CLS] token 的输出向量会被送入一个全连接层(MLP Head)做分类输出。
四、ViT的优势与挑战
1. 优势:
- 全局建模能力强: Transformer能同时看到所有Patch,轻松捕捉全局依赖。
- 可扩展性好: 随着模型规模和数据量增加,性能线性提升。
- 通用性强:ViT可与NLP统一框架结合。
2. 挑战:
- 数据需求大:ViT训练需要极大量的数据才能超过CNN,比如论文中在 JFT-300M(3亿张图片) 上训练。
- 缺乏平移不变性:CNN天然具有平移特性,而ViT需要学习这种特性。
- 计算成本高:Self-Attention对序列长度是二次复杂度,图像块太多时计算量庞大。
五、后续改进
| 模型 | 改进方向 | 主要特性 |
|---|---|---|
| DeiT (Data-efficient Image Transformer) | 数据效率 | 用知识蒸馏减少数据需求 |
| Swin Transformer | 局部注意力 | 将图像分成窗口处理,计算量降低 |
| PVT (Pyramid Vision Transformer) | 多尺度特征 | 模仿CNN金字塔结构 |
| ViT-H/16, ViT-L/32 | 模型规模 | 更深更宽的ViT版本 |
这些改进让ViT逐渐在ImageNet、COCO等任务上超越CNN。
六、论文信息
Title: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Authors: Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, et al.
Institution: Google Research / Brain Team
Published: 2020
Link: https://arxiv.org/abs/2010.11929