VISION TRANSFORMER
ViT 的图像表示与注意力机制
Vision Transformer 将图像划分为一组 Patch,把视觉问题转换为序列建模问题,再使用自注意力建立不同区域之间的全局关系。
1. 从图像到 Token
图像按照固定尺寸切分为 Patch,每个 Patch 展平并线性映射为向量。假设输入为 H×W,Patch 尺寸为 P×P,则 Token 数量约为 HW/P²。Patch 越小,空间细节越多,但注意力计算成本也越高。
2. 位置编码
自注意力本身不包含空间顺序,因此需要加入位置编码。绝对位置编码直接表示每个 Token 的位置;相对位置编码描述 Token 之间的相对距离,更容易适应不同空间关系。
3. 自注意力在做什么
查询 Q 与键 K 的相似度决定信息权重,再对值 V 加权求和。多头注意力让模型在不同子空间关注不同关系,例如局部纹理、远距离结构或目标与背景关系。
4. 与 CNN 的差异
| 方面 | CNN | ViT |
|---|---|---|
| 先验 | 局部连接、平移等变 | 较少视觉先验 |
| 感受野 | 逐层扩大 | 注意力可直接全局交互 |
| 数据需求 | 相对友好 | 通常更依赖预训练与数据规模 |
| 复杂度 | 与卷积核和特征图相关 | 标准注意力随 Token 数平方增长 |
理解重点:ViT 的价值不仅是“把 Transformer 用在图像上”,而是提供一种基于全局关系组织视觉特征的方式。
参考资料
- Dosovitskiy et al., An Image is Worth 16x16 Words.
- Transformer 与视觉注意力公开资料。