Vision Transformer (ViT) 论文深度解析
Vision Transformer (ViT) 论文解读论文标题An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale作者团队Google Research, Brain Team发表时间2020年 (ICLR 2021)论文链接arXiv:2010.119291. 论文提出背景在自然语言处理NLP领域Transformer 架构已经成为绝对的标准。在 ViT 提出之前计算机视觉CV领域的统治者是卷积神经网络CNN如 ResNet。而作者的疑问是能否直接将标准的纯 Transformer 架构应用于图像分类任务实验证明虽然在中小规模的数据集如 ImageNet上从头训练时表现略逊于同期最先进的 ResNet但当在超大规模数据集如 ImageNet-21k 或 JFT-300M上进行预训练再迁移到中小型数据集上时纯 Transformer 模型能够达到甚至超越最先进的 CNN 模型的表现同时需要更少的计算资源。2. 模型架构 (Architecture)ViT 试图尽可能多地遵循原始 Transformer 架构。整体流程可以概括为以下几个关键步骤2.1 图像分块与线性投影 (Patch Embedding)Transformer 处理的是一维序列字词而图像是二维的。如何将图像转换成序列分块 (Patching)将一张H × W × C H \times W \times CH×W×C的图像切分成N NN个固定大小的P × P P \times PP×P图像块Patch。比如输入是224 × 224 224 \times 224224×224的图像分块大小是16 × 16 16 \times 1616×16那么一共会得到( 224 / 16 ) 2 196 (224/16)^2 196(224/16)2196个 Patch。这也是论文标题中 “16x16 Words” 的由来每个 Patch 等价于 NLP 中的一个 Word。展平与线性映射 (Linear Projection)将每个 Patch 展平Flatten然后通过一个可学习的线性映射矩阵将其投影到固定维度D DD。这个过程相当于生成词向量Token Embedding。2.2 加入类别 Token (Class Token)借鉴 BERT 的思想作者在生成的 Patch 序列最前面加入了一个可学习的特殊 Token[class]token。这个 Token 会与序列中的其他维度一起通过所有的 Transformer 编码层。最终只提取这个特殊的 Token 在最后一层的输出作为整张图像的全局特征表示送入 MLP head 进行图像分类。2.3 位置编码 (Position Embedding)因为 Transformer 本身缺乏捕捉序列绝对位置信息的能力直接打乱输入的 Patch 顺序自注意力机制的计算依然能够进行但这破坏了图像的结构图像块被打乱了。解决方式为每个 Patch Token 加上一个可学习的 1D 位置编码以保留图像的空间信息。论文也实验了 2D 位置编码但发现 1D 已经足够。这使得模型能够“知道”每个 Patch 来源于图像的哪个物理位置。2.4 Transformer Encoder由多层标准的 Transformer Block 堆叠而成每一层主要包含多头自注意力机制 (Multi-Head Self-Attention, MSA)用于捕捉不同 Patch 之间的全局依赖关系。多层感知机 (MLP)包含全连接层和 GELU 激活函数。残差连接 (Residual Connection) 层归一化 (Layer Normalization)与传统 Transformer 的 LN 放在全连接或注意力结构之后不同Post-normViT 采用了在每次操作之前进行 LNPre-norm这种设计在实践中被证明有助于更深的参数网络的稳定收敛。2.5 模型家族论文定义了 Base、Large 和 Huge 三种不同规模的模型3. 关键发现大数据胜过归纳偏置这是 ViT 论文中最核心的结论之一。CNN 的优势具有“归纳偏置”Inductive Bias即局部性Locality和平移不变性Translation Equivariance在小数据集上泛化能力强 。ViT 的局限ViT 缺乏这种预设的先验知识。实验显示在 ImageNet1.3M 图片上训练时ViT 表现不如 ResNet [cite: 26, 211]。规模效应一旦预训练数据集扩大到ImageNet-21k14M或JFT-300M300MViT 的表现开始反超模型本身凭借其庞大的参数量和灵活强大的捕捉全局信息的能力能够从数据中“暴力且自主地”学习出类似甚至超越归纳偏置的模式大规模数据效应战胜了归纳偏置。4. 性能表现在 JFT-300M 上预训练的ViT-H/14在各大主流基准测试中达到了 SOTAImageNet: 88.55%CIFAR-100: 94.55%VTAB (19 任务综合): 77.63%此外ViT 的训练效率极高。相比达到同等精度的 CNN如 ResNet 或 Noisy Student EfficientNetViT 所需的计算资源TPUv3-core-days显著更少。5. 可视化Transformer 看到了什么通过分析 ViT 的内部表示研究者发现了一些有趣的现象线性嵌入层学习到的过滤器能够捕捉到图像 patch 的细微结构。位置嵌入模型自动学到了 2D 图像的拓扑结构相邻 patch 的编码更相似。远程注意力甚至在模型的最底层某些注意力头就已经能够覆盖到整张图像的范围这与 CNN 逐渐扩大感受野的方式完全不同。6. ViT 的历史意义与影响打破壁垒彻底打破了在计算机视觉核心骨干分类网络领域中CNN 架构长达近十年的绝对垄断地位。大一统趋势证明了 Transformer 有能力作为 CV 和 NLP 领域的通用骨架Backbone为后续引爆多模态大模型的发展奠定了最稳固的基石。衍生研究由于纯 ViT 在密集预测任务如目标检测、语义分割这些需要高分辨率特征图的任务上因序列过长导致自注意力计算量平方级增长随之诞生了一大批结合了部分局部偏置并保留全局视野的衍生工作例如大名鼎鼎的Swin Transformer推动视觉模型进一步工程进化。总结ViT (Vision Transformer) 是一个具有里程碑意义的工作。它用一种极其简单、暴力且干净的方式告诉研究者们如果算力和数据都足够放弃那些繁杂的人为设计先验结构拥抱更加通用的 Transformer 架构是通往更大规模智能的可行方案。