【论文精读】 Vision Transformer(ViT)
摘要
通过充分的数据预训练后, ViT 的性能超越ConvNet, 克服了Transformers缺乏归纳偏差这一局限性, 从而在各种下游任务中展现出良好的迁移能力
架构

如图所示,在此处理程中给定输入图像x∈RH×W×Cx\in\mathbb{R}^{H\times W\times C}会被划分为二维patches序列x_p∈RN×(P²⋅C)x_p\in\mathbb{R}{N\times(P{!2}\cdot C)}。其中(H, W)表示原始图像的分辨率,C表示通道数量,(P, P)(P,! P)分别代表每个patch的空间分辨率和高度与宽度参数,N=H×W/(P²)计算得到patch的数量,并作为其输入序列的长度。随后通过patch embedding模块将每个patch展平并经过线性投影映射到目标空间维度E∈RD×(P²⋅C)]
与BERT中的标记机制相似,在构建patch embedding序列时,在其前面添加了一个可学习嵌入层(z₀₀ = x_class)和(ẑ₀₀ = x_{class})。其中对应的Transformer编码器输出位置是(z_L, 0)。该输出经过分类头处理后的结果即为图像表示yy。其中,在预训练阶段使用多层感知机(MLP)作为分类头;而在微调过程中则采用单一的线性层作为分类头。
将position embeddings整合到patch embeddings中以保持位置信息,并采用标准可学习的一维位置嵌入机制。这样可以确保生成的一组embedding向量序列能够顺利地作为Transformer编码器的实际输入进行处理。
该编码器主要由交错的多头自注意力机制(MSA)以及前馈网络模块构成。每一模块前面均采用了Layernorm处理,在模块输出后设置了残差连接。其内部架构包括两个连续的全连接层,并分别引入了正弦曲波激活函数(GELU)以增强非线性特性
z_0 = {x_{class}; x_p^1_E; x_p^2_E; \dots; x_p^N_E} + E_{pos}, E \in \Reals{(p2 \cdot C)} \times D, E_{pos} \in \Reals^{N+1} \times D
zℓ′=MSA(LN(zℓ−1))+zℓ−1,ℓ=1…Lz'{\ell}=MSA(LN(z{\ell-1}))+z_{\ell-1}, \ell=1 \dots L
zℓ=MLP(LN(zℓ′))+zℓ′,ℓ=1…Lz_{\ell}=MLP(LN(z'{\ell}))+z'{\ell}, \ell=1 \dots L
y=LN(zL0)y=LN(z^0_L)
归纳偏差
CNN架构将局部特性、二维邻接关系和平移不变性有机地融入每一层设计。相比之下,在Vision Transformer(ViT)架构中,仅MLP层保留了局部性和平移不变性特性;自注意力机制则呈现出完全全局性的特点。特征图的空间关系主要通过初始分割为块以及微调阶段对不同分辨率图像进行位置编码来体现。值得注意的是,在初始设置阶段的位置编码并未包含关于每个块内像素或区域的具体二维坐标信息;同时,在后续的学习过程中,默认情况下各区域间的空间关联关系需要完全重新学习以适应新的数据特征。
混合架构
以作替代方案的方式,在该混合模型中,
通过将patch embedding进行投影EE处理,
特别地,在这一特殊情况中,
将尺寸设定为1×1,
从而使得输入序列经由展平操作后被投射到Transformer维度上。
在构建网络结构时,
将输入嵌入层与位置编码层按照上述方法整合起来完成前馈连接。
实验
实验配置
数据集
基于ILSVRC-2012构建的ImageNet框架下,并结合ImageNet-21k与JFT-18k的数据集进行实验设计时,在预训练阶段排除了可能引入冗余的数据源。随后将所训练得到的模型应用于以下关键领域测试:经过去重处理后的ImageNet验证集评估指标作为基准指标,并结合CIFAR系列中的CIFAR-10/100进行性能测试;同时针对Oxford IIIT Pets与Oxford Flowers系列中的Oxford Flowers-102展开研究;此外该模型还在包含 VTAB 上多个分类任务的广泛测试集中取得了显著表现
模型变体

如图所示, 本实验采用了基于BERT架构的设计方案以构建ViT模型. Base与Large规模版本直接继承了BERT的设计基础, 并在此基础上引入了更大规模的Huge组件. 针对CNN架构的选择, 在本研究中我们采用了ResNet作为基础模块, 并通过将Batch Normalization替换成Group Normalization来优化特征提取过程. 在混合型架构设计中(Hybrid), 我们采用了CNN提取图像特征后将其传递给ViT模块进行处理, 并将其划分为单像素级别的patch尺寸.
训练和微调
在训练过程中,在采用Adam optimizer的情况下对所有模型采用了参数设置如下:β₁设为约等于\beta_1 = 0.9、\beta_2设为约等于\beta_2 = 0.\text{ } (此处可能需要更精确地表示数值) (具体数值根据上下文补充)。其中training data的batch size设定为4086,并应用了权重衰减系数设定为\beta_3 = 0.\text{ } (此处可能需要更精确地表示数值) 的方法进行处理。此外,在该过程中的学习率调整策略以及伴随的学习率衰减机制也被实施了线性规划以实现最优效果。在微调阶段中采用梯度下降法(SGD)作为优化算法,在该过程中将training data的batch size设定为512以进一步提升训练效率并保证模型性能稳定

根据图中所展示的情况,在相同配置条件下,Adam在相同配置条件下比ResNets的SGD表现稍优。因此,在此情况下实验采用Adam算法。

上图显示了微调过程中的学习率、warmup策略细节。

上图为更详细的训练配置。
对比实验

通过实验数据分析,在JFT数据集上预先训练完成的ViT模型,在迁移至下游任务时展现出显著的优势,在性能指标上优于基于ResNet架构设计的BiT框架以及依赖EfficientNet结构实现的数据增强方法Noisy Student,并且所需的时间更加节省。此外,在采用规模更大的模型ViT-H/14时其性能得到了进一步提升。

上图展示了更多细节,在这些预训练基准上的应用中(如ImageNet、ImageNet-21k或JFT300M)展示了Vision Transformer在各数据集上的准确率表现。研究者发现该算法的性能受到了其他框架的影响。

上图揭示了在不同规模的数据集上进行预训练时,ViT在性能上显著优于CNN(BiT、VIVI、S4L(监督加半监督学习))。

在较小的数据量上进行图像预训练(ImageNet)的同时进行参数调整(weight decay, dropout 和 label smoothing),以提高模型性能表现。结果显示,在仅使用1千张图像进行预训练时(ImageNet-1k),基于ViT的微调效果明显不如ResNet;而在包含2.1千张图像的中等规模数据集上预训练(ImageNet-21K)时,则两者的表现接近;当采用包含3亿多张图像的大规模数据集(JFT-300M)进行预训练时,在此过程中微调后的ViT模型能够展现出更好的性能优势。
从同一个数据源JFT中提取不同规模的数据样本(包括1亿、3亿、1亿到3亿不等),目的是为了减少不同数据集中潜在存在的偏差问题;在此过程中无需引入额外的正则化措施,并采用相同的超参数配置完成实验研究。在linear evaluation阶段是将预训练模型直接用于特征提取;而few-shot learning则是在验证阶段中对每类仅采样五张图片进行训练。实验结果表明,在小规模数据集的情况下(如抽取少量样本时),CNN预训练模型表现出更好的性能表现;这证明了CNN模型具有较强的归纳偏置能力;然而随着数据量增大(尤其是当有足够的样本支持时),基于Transformer架构的方法往往能够展现出更好的性能表现;在这种情况下基于数据本身的学习策略往往能够展现出更好的效果

上图显示了不同vit框架在每个VTAB-1k任务上获得的分数。
模型训练成本

通过对比图中所展示的不同架构体系下的识别性能及预训练所需计算资源对比图, 研究表明 Vision Transformers 在相同计算资源投入的情况下, 通常能够实现比 ResNets 更高的识别精度. 然而, 混合架构在小规模模型设计中较纯transformer实现了性能提升, 但随着模型规模逐渐扩大时, 在较大规模模型中这种优势逐渐消失

上图呈现更为详细地展示实验性能数据,并涵盖了ViT、ResNet以及不同规模混合模型的迁移能力及其各自预训练计算开销情况。

上图左侧呈现了不同输入规模下各种体系架构在推理过程中的计算消耗时间分布情况。通过观察发现,在相同条件下ViT模型的运行效率与类似架构的ResNet模型表现不相上下
右侧图展示了不同输入大小架构下的内存占用情况。对于每个batch size而言,在相同条件下运行时所消耗的最大核心数量对比明显地显示出ViT模型在内存效率方面的优势
可视化

上图直观地展示了输出层的特征被叠加到输入图像中,并且其可视化效果揭示了模型在分类任务中的关注区域。

上图左显示了ViT第一层将图像转patch embedding的滤波器的主成分。
在投影空间完成处理后,在块表示中加入位置信息。上图展示了模型如何利用位置嵌入来编码图像内的距离关系——即相邻块之间的位置编码具有高度的相关性。此外,在这种组织方式下特别适合提取局部区域特征——每一行或列中的小块(补丁)表现出高度一致的位置编码。
self-attention能够使ViT融合整个图像的信息。图右揭示出注意力权重在图像空间中的平均距离,并将其与卷积神经网络中感受野尺寸的经典实验进行了对比分析。研究发现,在较深的网络中某些注意力头确实倾向于关注全局信息,在较浅层的位置则更加注重局部特征提取的能力表现。这一现象提示其可能具有与浅层卷积层类似的功能特性。值得注意的是,在整体趋势上可以看出随着网络深度的增长,注意距离呈现出逐渐增大的趋势;而在全局范围内,则显示出该模型对那些在语义上与分类任务相关联的关键区域的关注度显著提升。

上图为更详细的用不同超参数训练的模型的位置嵌入。

上图呈现了更加详细地分解的ViT和混合模型的注意力权重在图像空间中的平均距离;即通过将注意力权重作为加权因子来计算每个query像素与所有其他像素之间距离的加权平均值。
positional encoding

- 未启用位置嵌入
- 例如将图像划分为一个D\times D的网格(这里D=3),其中每个网格单元被编号为[i,j](其中i,j\in\{0,...,D-1\})
- 每个轴向上的坐标分别从一到三进行编号
- 通过相对距离计算空间关系而不是它们的绝对位置。
通过实际实验结果可以看出,在采用不同位置编码方案时(不论是采用基于空间信息的位置编码还是基于语义信息的位置编码),其精度表现相当接近;若放弃位置编码机制,则会导致模型性能出现明显下降吗?
reference
Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., & Houlsby, N. (2020). A picture is equivalent to 16×16 tokens: transformation models for scalable image understanding.
