【读点论文】AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(ViT)像处理...
时间:2023-10-21 20:07:01
AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
abstract
-
虽然Transformer系统结构已成为自然语言处理任务的代表性工作成果,但其在计算机视觉中的应用仍然有限。在视觉上,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。
-
本文认为这是对的CNN的依赖是不必要的的,直接应用于图像块序列的纯transformer在图像分类任务中表现得很好。
-
当对大量数据预训练并传输到多个中小型图像识别基准(ImageNet、CIFAR-100、VTAB等),Vision Transformer (ViT)与最先进的卷积网络相比,它取得了优异的效果,但训练所需的计算资源要少得多。
-
CV边界上也有很多文章transformer迁移到CV一般来说,这些文章可以分为两类:
- 将self-attention机制与常见CNN架构结合;
- 用self-attention机制完全替代CNN。
-
本文的工作亮点是尽可能多地NLP领域的transformer不作修改地搬到CV领域来。但是NLP语言数据的处理是序列化的,CV中处理的图像数据是三维的(长、宽和channels)。
- 所以需要一种方式将图像等三维数据转换为序列化数据。图像在本文的数据处理中被切割成patch,这些patch按一定顺序排列,就成了序列化数据。
-
在实验中观察,在中等规模的数据集(例如ImageNet),transformer模型的性能不如ResNets;当数据集的规模扩大时,transformer模型的效果接近或超过一些SOTA结果。作者认为大规模训练可以鼓励transformer学到CNN拥有结构translation equivariance 和locality.
- CNN有两种归纳偏置,一种是局部性(locality/two-dimensional neighborhood structure),也就是说,图片中相邻区域具有相似的特征;一种是平移不变形(translation equivariance),f(g(x))=g(f(x)) ,g代表卷积操作,f代表平移操作。当CNN有了以上两种归纳偏置,有很多先验信息,需要相对较少的数据来学习更好的模型
-
ViT是2020年Google团队提出的将军Transformer应用于图像分类模型,虽然不是第一篇文章transformer它应用于视觉任务论文,但因为其模型简单,效果好,可扩展性强(scalable,模型越大,效果越好。transformer在CV该领域应用的里程碑也引爆了后续的研究。
-
ViT原论文的核心结论是,当有足够的数据进行预训练时,ViT的表现就会超过CNN,突破transformer在下游任务中,缺乏归纳偏置的限制可以获得更好的迁移效果。
- 论文:https://arxiv.org/abs/2010.11929v2
- 跟着bryanyzhu学习:https://www.bilibili.com/video/BV15P4y137jb
INTRODUCTION
- 基于自我关注的架构,特别是Transformers,已成为自然语言处理(NLP)首选模型。主导方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调。由于Transformers计算效率和可扩展性,训练规模前所未有,参数超过100B随着模型和数据集的增长,性能仍然没有饱和的迹象。
- 然而,在计算机视觉中,卷积架构仍占主导地位。NLP受成功的启发,有些工作试图做类似的事情CNN结构与自注意力相结合,完全取代了卷积操作。理论上,后一种模型是有效的,但由于使用了特殊的注意模式,现代硬件加速器还没有有效扩展。因此,在大规模图像识别中,经典ResNet-like架构仍然是state of the art。
- 受NLP中Transformer scaling 本文试图启发成功的标准Transformer直接应用于图像,尽量减少修改。将图像分成小块,并提供这些小块的线性嵌入序列transformer的输入。在NLP图像补片的处理方法与标记(单词)相同。图像分类模型通过监督训练。
- 没有强正则化的中型数据集(如ImageNet)在训练过程中,这些模型产生的适度精度比可比大小ResNets低几个百分点。这种看似效果不佳的结果可能是意料之中的:transformer缺乏CNN一些固有的归纳偏差,比如翻译等变性和局部性,在数据量不足的情况下训练时不能很好的概括。
- 如果模型在更大的数据集(14M-300M在图像上训练,情况就不一样了。发现大规模训练胜过归纳偏差。本文的视觉transformer(ViT)以足够大的规模进行预训练并转移到具有较少数据点的任务中,可以取得优异的效果。
- 当在公共ImageNet-21k数据集或内部JFT-300M在数据集上进行预训练时,ViT接近或超过多个图像识别基准的最先进水平。特别是,最好的模型是ImageNet上达到88.准确率55%,在ImageNet-ReaL上达到90.72%,在CIFAR-100上达到94.55%,19个任务VTAB套件上达到77.63%。
RELATED WORK
- transformer是由Vaswani等人(2017)提出机器翻译,成为许多自然语言处理任务中最先进的方法。基于大规模transformer通常在大型语料库上进行预训练,然后微调手头的任务:BERT (Devlin等人,2019年)使用去噪自我监督预训练任务GPT工作线使用语言建模作为训练任务(Radford等人,2018年;2019;布朗等人,2020年)。
- 直接将自注意机制应用到图像上每个像素都需要注意其他像素。因为像素的数量quadratic cost,这不能缩放到实际输入尺寸。因此,为了应用于图像处理环境transformer,以前尝试过几种类似的方法。
- Parmar等人(2018)仅自注意机制应用于每个查询像素的局部邻域,而不是全局应用。这种局部多头点积自注意力模块可以完全卷积。
- Sparse Transformers (Child等人,2019年)可扩展的全局自我关注相似性,适用于图像。
- 另一种衡量注意力的方法是将注意力应用于不同大小的块中(Weissenborn等人,2019),在极端情况下,只沿单轴应用注意力。
- 这些特殊的注意力结构在计算机视觉任务中表现出了希望的结果,但在硬件加速器上有效地实现了复杂的工程。
- 与本文最相关的是Cordonnier等人(2020)模型,该模型从输入图像中提取大小2 × 2小块,应用完全自注意机制。这个模型非常相似ViT,然而,本文的工作进一步证明了大规模的预训练使普通人变得普通transformer与最先进的CNN竞争(甚至更好)。Cordonnier等人(2020)使用2 ×2像素的小块尺寸,这个该模型仅适用于小分辨率图像,本文还可以处理中等分辨率图像。
- 人们对卷积神经网络(CNN)结合各种形式的自注意机制我也很感兴趣,比如增强图像分类的特征图,或者进一步处理自注意力机制CNN的输出,例如,对象检测、视频处理、图像分类、无监督对象发现或统一文本视觉任务。
- 另一个最近的相关模型是图像GPT (iGPT),在降低图像分辨率和颜色空间后transformer应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后对生成的表示进行微调或线性探测,在ImageNet最大精度为72%。
- 本文的工作在比标准增加ImageNet在更大规模上探索图像识别的数据集。使用额外的数据源可以在标准基准上取得最先进的结果。此外,孙等人(2017)研究过CNN性能与数据集模成比例;Djolonga等人(2020)对来自大规模数据集(如ImageNet-21k和JFT-300M)的CNN迁移学习进行了实证研究。本文也关注后两个数据集,但是训练transformer而不是先前工作中使用的基于ResNet的模型。
METHOD
-
在模型设计中,本文尽可能遵循原始transformer。这种有意简化的设置的一个优点是,可扩展的NLP transformer架构及其高效实现几乎可以直接使用。
-
ViT将输入图片分为多个patch(16x16),再将每个patch投影为固定长度的向量送入Transformer,后续encoder的操作和原始Transformer中完全相同。但是因为对图片分类,因此在输入序列中加入一个特殊的token,该token对应的输出即为最后的类别预测
-
视觉transformer(VIT)
-
该模型的概述如下图所示。标准变换器接收token embeddings的一维序列作为输入。为了处理2D图像,本文将图像 x ∈ R H × W × C x ∈ R^{H×W×C} x∈RH×W×C整形为一系列平坦的2D patch x p ∈ R N × ( P 2 ⋅ C ) x_p∈R^{N×(P^2·C)} xp∈RN×(P2⋅C),其中(H,W)是原始图像的分辨率,C是通道数,(P,P)是每个图像patch的分辨率, N = H W / P 2 N=HW/P^2 N=HW/P2是得到的patch数,它也用作transformer的有效输入序列长度。transformer通过其所有层使用恒定的潜在向量大小D,因此本文使用可训练的线性投影(等式)来展平patch并映射到D维。本文将这种投影的输出称为patch embeddings。
- Model overview.本文将图像分割成固定大小的小块,线性嵌入每个小块,添加位置嵌入,并将得到的向量序列送到标准的Transformer编码器。为了执行分类,本文使用标准的方法,向序列添加一个额外的可学习的“分类标记”。
-
类似于BERT的[class]token,本文将可学习的嵌入预先计划到嵌入的patch序列( z 0 0 = x c l a s s z_0^0=x_{class} z00=xclass),其在transformer编码器( z L 0 z^0_L zL0)的输出处的状态用作图像表示y.在预训练和微调期间, z L 0 z^0_L zL0上都安装了一个分类头。分类头在预训练时由具有一个隐藏层的MLP实现,在微调时由单个线性层实现。
-
位置嵌入被添加到patch嵌入中以保留位置信息。本文使用标准的可学习一维位置嵌入,因为本文没有观察到使用更高级的2D感知位置嵌入的显著性能增益。嵌入向量的结果序列用作编码器的输入。
-
transformer编码器由多头注意力机制和MLP块.Layernorm (LN)应用于每个块之前,残差连接应用于每个块之后。
-
MLP包含具有GELU非线性的两层:
- KaTeX parse error: Undefined control sequence: \ at position 99: …{(N+1)*D}}(1)\\\̲ ̲z^`_l=MSA(LN(z_…
-
-
一个ViT block可以分为以下几个步骤
-
- patch embedding:例如输入图片大小为224x224,将图片分为固定大小的patch,patch大小为16x16,则每张图像会生成224x224/16x16=196个patch,即输入序列长度为196,每个patch维度16x16x3=768,线性投射层的维度为768xD (D=768),因此输入通过线性投射层之后的维度依然为196x768,即一共有196个token,每个token的维度是768。这里还需要加上一个特殊字符cls,因此最终的维度是197x768。到目前为止,已经通过patch embedding将一个视觉问题转化为了一个seq2seq问题.
- positional encoding(standard learnable 1D position embeddings):ViT同样需要加入位置编码,位置编码可以理解为一张表,表一共有N行,N的大小和输入序列长度相同,每一行代表一个向量,向量的维度和输入序列embedding的维度相同(768)。注意位置编码的操作是sum,而不是concat。加入位置编码信息之后,维度依然是197x768.
- LN/multi-head attention/LN:LN输出维度依然是197x768。多头自注意力时,先将输入映射到q,k,v,如果只有一个头,qkv的维度都是197x768,如果有12个头(768/12=64),则qkv的维度是197x64,一共有12组qkv,最后再将12组qkv的输出拼接起来,输出维度是197x768,然后在过一层LN,维度依然是197x768
- MLP:将维度放大再缩小回去,197x768放大为197x3072,再缩小变为197x768。
-
一个block之后维度依然和输入相同,都是197x768,因此可以堆叠多个block。最后会将特殊字符cls对应的输出 z l 0 z_l^0 zl0 作为encoder的最终输出 ,代表最终的image presentation(另一种做法是不加cls字符,对所有的tokens的输出做一个平均),如上公式(4),后面接一个MLP进行图片分类。
-
LayerNorm
-
Norm最开始被提出的时候,是用来解决ICS(Internal Covariate Shift)问题的,而后人的研究发现,Norm起作用的本质是它平滑了Loss,保持了梯度下降过程中的稳定。
-
若模型输入层数据分布发生变化,则模型在这波变化数据上的表现将有所波动,输入层分布的变化称为Covariate Shift,解决它的办法就是常说的Domain Adaptation。同理,在深度学习中,第L+1层的输入,也可能随着第L层参数的变动,而引起分布的变动。这样每一层在训练时,都要去适应这样的分布变化,使得训练变得困难。这种层间输入分布变动的情况,就是Internal Covariate Shift。
-
ICS所带来的问题
- 在过激活层的时候,容易陷入激活层的梯度饱和区,降低模型收敛速度。
- 需要采用更低的学习率,这样同样也降低了模型收敛速度。
-
由于 ICS 问题的存在,x 的分布可能相差很大。要解决独立同分布的问题,“理论正确” 的方法就是对每一层的数据都进行白化操作。然而标准的白化操作代价高昂,且不可微不利于反向传播更新梯度。因此,以 BN 为代表的 Normalization 方法退而求其次,进行了简化的白化操作。Batch Normalization(以下简称BN)的方法最早由offe&Szegedy在2015年提出,主要用于解决在深度学习中产生的**ICS(Internal Covariate Shift)**的问题。
-
白化
(Whitening)是机器学习里面常用的一种规范化数据分布的方法,主要是PCA白化与ZCA白化。白化是对输入数据分布进行变换,进而达到以下两个目的:- 使得输入特征分布具有相同的均值与方差。其中PCA白化保证了所有特征分布均值为0,方差为1;而ZCA白化则保证了所有特征分布均值为0,方差相同。
- 去除特征之间的相关性。
-
基本思想是:在将 x 送给神经元之前,先对其做平移和伸缩变换, 将 x 的分布规范化成在固定区间范围的标准分布。
-
h = f ( g ⋅ x − μ δ + b ) , 最 终 得 到 的 数 据 符 合 均 值 为 b 、 方 差 为 g 平 方 的 分 布 。 h=f(g·\frac{x-μ}{\delta}+b),最终得到的数据符合均值为 b、方差为g平方的分布。 h=f(g⋅δx−μ+b),最终得到的数据符合均值为b、方差为g平方的分布。
-
第一步的规范化会将几乎所有数据映射到激活函数的非饱和区(线性区),仅利用到了线性变化能力,从而降低了神经网络的表达能力。而进行再变换,则可以将数据从线性区变换到非线性区,恢复模型的表达能力。
-
-
BN在batch维度的归一化,也就是对于每个batch,该层相应的output位置归一化所使用的mean和variance都是一样的。BN的学习参数包含rescale和shift两个参数。
- 1、BN在单独的层级之间使用比较方便,比如CNN。得像RNN这样层数不定,直接用BN不太方便,需要对每一层(每个time step)做BN,并保留每一层的mean和variance。不过由于RNN输入不定长(time step长度不定),可能会有validation或test的time step比train set里面的任何数据都长,因此会造成mean和variance不存在的情况。
- 2、BN会引入噪声(因为是mini batch而不是整个training set),所以对于噪声敏感的方法(如RL)不太适用。
-
BN的优势总结
- 通过解决ICS的问题,使得每一层神经网络的输入分布稳定,在这个基础上可以使用较大的学习率,加速了模型的训练速度
- 起到一定的正则作用,进而减少了dropout的使用。当我们通过BN规整数据的分布以后,就可以尽量避免一些极端值造成的overfitting的问题
- 使得数据不落入饱和性激活函数(如sigmoid,tanh等)饱和区间,避免梯度消失的问题
-
-
LayerNorm实际就是对隐含层做层归一化,即对某一层的所有神经元的输入进行归一化。(每hidden_size个数求平均/方差)
-
整体做法类似于BN,不同的是LN不是在特征间进行标准化操作(横向操作),而是在整条数据间进行标准化操作(纵向操作)。
-
LN使得各条数据间在进行标准化的时候相互独立,因此LN在训练和测试过程中是一致的。LN不需要保留训练过程中的 μ , σ 2 \mu,\sigma^2 μ,σ2 ,每当来一条数据时,对这条数据的指定范围内单独计算所需统计量即可。
-
l a y e r N o r m ( x ) = α ⊙ x − μ σ 2 + ε + β 其 中 层 计 算 均 值 : μ l = 1 H ∑ i = 1 H x i l , 其 中 x l = w i l h l 方 差 : σ l = 1 H ∑ i = 1 H ( x i l − μ l ) 2 layerNorm(x)=α\odot\frac{x-μ}{\sqrt{\sigma^2+\varepsilon}}+\beta\\ 其中层计算均值:μ^l=\frac{1}{H}\sum_{i=1}^Hx_i^l,其中x^l=w_i^lh^l\\ 方差:\sigma^l=\sqrt{\frac{1}{H}\sum_{i=1}^H(x_i^l-μ^l)^2} layerNorm(x)=α⊙σ2+εx−μ+β其中层计算均值:μl=H1i=1∑Hxil,其中xl=wilhl方差:σl=H1i=1∑H(xil−μl)2
-
-
-
Inductive bias.
- 本文注意到,视觉transformer比CNN具有更少的图像特定感应偏差。在细胞卷积神经网络中,局部性、二维邻域结构和平移等价性贯穿于整个模型的每一层。在ViT中,只有MLP层是局部的,而且translation equivariance ,而自注意力层是全局的。二维邻域结构的使用非常少:在模型开始时将图像切割成小块,在微调时调整不同分辨率图像的位置嵌入。除此之外,初始化时的位置嵌入不携带关于patch的2D位置的信息,并且patch之间的所有空间关系必须从零开始学习。
-
Hybrid Architecture.
- 作为原始图像补片的替代,输入序列可以由CNN的特征图形成。在这个混合模型中,patch嵌入投影E应用于从CNN特征图提取的patch。作为一种特殊情况,patch可以具有1×1的空间大小,这意味着输入序列是通过简单地展平特征图的空间维度并投影到transformer维度而获得的。如上所述添加cls输入嵌入(对标NLP数据输入)和位置嵌入。
-
FINE-TUNING AND HIGHER RESOLUTION
- 通常,在大型数据集上预先训练ViT,并针对(较小的)下游任务进行微调。为此,本文去掉预训练的预测头,附加一个零初始化的D × K前馈层,其中K是下游类的个数。
- 在比预训练更高的分辨率下进行微调通常是有益的。当输入更高分辨率的图像时,本文保持patch大小不变,这导致更大的有效序列长度。视觉transformer可以处理任意的序列长度(直到存储器限制),但是,预先训练的位置嵌入可能不再有意义。因此,根据它们在原始图像中的位置,对预训练的位置嵌入执行2D插值。注意,这种分辨率调整和碎片提取是关于图像的2D结构的感应偏差被手动注入视觉transformer的关键点。
EXPERIMENTS
-
本文评估了ResNet、视觉transformer(ViT)和混合模型的表征学习能力。为了解每个模型的数据需求,本文在不同大小的数据集上进行预训练,并评估许多基准测试任务。当考虑预训练模型的计算成本时,ViT表现非常好,以较低的预训练成本在大多数识别基准上达到了最先进的水平。最后,本文进行了一个使用自我监督的小实验,并表明自我监督的ViT具有未来的希望。
-
SETUP
- Datasets.
- 为了探索模型的可扩展性,本文使用了具有1千个类和130万图像的ILSVRC-2012 ImageNet数据集,其具有21000类和1400万图像的超集ImageNet-21k,以及具有18000类和3.03亿高分辨率图像的。
- 本文根据科列斯尼科夫等人(2020)的下游任务测试集,对预训练数据集进行重复删除。本文将这些数据集上训练的模型转移到几个基准任务:原始验证标签和清理后的真实标签上的ImageNet,CIFAR-10/100,Oxford-IIIT Pets ,以及Oxford Flowers-102 。对于这些数据集,预处理遵循科列斯尼科夫等人(2020,Big transfer (BiT): General visual representation learning)。
- 本文还对19任务VTAB分类套件进行了评估。VTAB评估不同任务的低数据传输,每个任务使用1000个训练示例。任务分为三组:自然任务,如上述任务,宠物,CIFAR等。专业化的任务——医疗和卫星图像,以及结构化的任务——需要像定位这样的几何理解。
- Model Variants.
- 本文基于BERT 所用的ViT配置,如下表所示。“基本”和“大”模型直接采用了BERT的模型,本文添加更大的“巨大”模型。
- Vision Transformer型号变体的详细信息。
- 在下文中,本文使用简单的符号来表示模型大小和输入patch大小:例如,ViT-L/16表示具有16 × 16输入面片大小的“大”变体。请注意,transformer的序列长度与patch大小的平方成反比,因此patch大小越小的模型计算成本越高。
- 本文基于BERT 所用的ViT配置,如下表所示。“基本”和“大”模型直接采用了BERT的模型,本文添加更大的“巨大”模型。
- 对于基于卷积神经网络的模型,本文使用ResNet,但用Group Normalization(Wu & He,2018年)替换批归一化层(Ioffe和Szegedy,2015年),并使用标准化卷积。这些修改改善了transfer,本文将修改后的模型称为“ResNet (BiT)”。
- 对于混合图,本文将中间特征图以一个“像素”的块大小送入ViT。为了试验不同的序列长度,本文
- (1)或者获取常规ResNet50的阶段4的输出
- (2)或者移除阶段4,在阶段3中放置相同数量的层(保持总层数),并获取该扩展阶段3的输出。
- 对于选项(2)导致4倍的序列长度,以及更昂贵的ViT型号。
- Training & Fine-tuning.
- 本文使用Adam训练所有模型,包括resnet,其中β1 = 0.9,β2 = 0.999,批量大小为4096,并应用0.1的高权重衰减,本文发现这对于所有模型的迁移都是有用的(与常见做法相比,在本文的设置中,Adam对于resnet的效果略好于SGD)。
- 本文使用线性学习率预热和衰减。对于微调,本文使用具有动量的SGD,批量为512。对于下表中的ImageNet结果,本文以更高的分辨率进行了微调:ViT-L/16为512,ViT-H/14为518,并且还使用了系数为0.9999的平均值。
- Metrics.
- 本文通过 few-shot or fine-tuning 精度来调整下游数据集的结果。微调精确度在对相应数据集进行微调后,捕捉每个模型的性能。通过求解将训练图像子集的(冻结)表示映射到 { − 1 , 1 } K \{-1,1\}^K { −1,1}K个目标向量的正则化最小二乘回归问题,获得了Few-shot精度。
- 这个公式允许恢复封闭形式的精确解。虽然本文主要关注微调性能,但有时本文会使用线性少量采样精度进行快速即时评估,因为微调成本太高。
- Datasets.
-
COMPARISON TO STATE OF THE ART
- 首先将本文最大的模型型号ViT-H/14和ViT-L/16与目前其它工作文献中最先进的CNN进行比较。第一个比较点是Big Transfer(BiT),它用大ResNets执行监督迁移学习。第二个是Noisy Student,这是一个大规模的EfficientNet,使用ImageNet和JFT300M上的半监督学习进行训练,去除了标签。
- 目前,“Noisy Student”在ImageNet上是最先进的,BiT-L 在这里提及的其他数据集上是最好的。所有模型都在TPUv3硬件上进行了训练,本文报告了对每个模型进行预训练所需的TPUv3内核天数,即用于训练的TPU v3内核数(每个芯片2个)乘以训练天数。
- 下表显示了结果。在JFT-300M上预训练的较小的ViT-L/16模型在所有任务上都优于BiT-L(在同一数据集上预训练),同时需要少得多的计算资源来训练。更大的模型ViT-H/14进一步提高了性能,尤其是在更具挑战性的数据集上ImageNet、CIFAR-100和VTAB suite。
- Comparison with state of the art on popular image classification benchmarks.
- 本文报告三次微调运行的平均值和标准偏差。在JFT-300M数据集上预训练的Vision Transformer模型在所有数据集上都优于基于ResNet的基线,而预训练所需的计算资源却少得多。在较小的公共ImageNet-21k数据集上预训练的ViT也表现良好。表中的*号表示Touvron等人(2020年)报告的结果略有改善,为88.5%。
- 有趣的是,与现有技术相比,该模型进行预训练所需的计算量仍然少得多。然而,本文注意到,预训练效率不仅会受到架构选择的影响,还会受到其他参数的影响,如训练计划、优化器、权重衰减等。本文提供了不同架构的性能与计算的对照研究。最后,在公共ImageNet-21k数据集上预训练的ViT-L/16模型在大多数数据集上也表现良好,同时预训练所需的资源更少:它可以使用具有8个核心的标准云TPUv3在大约30天内进行训练。
- 下图将VTAB任务分解到各自的组中,并在此基准上与以前的SOTA方法进行比较:BiT、是一个在ImageNet和Youtube上共同训练的ResNet,以及是ImageNet上的监督加半监督学习。在自然和结构化任务上,ViT-H/14优于BiT-R152x4和其他方法。在专业化任务上,前两种模式的表现是相似的。
- VTAB在自然、专业和结构化任务组中的表现细分。
-
PRE-TRAINING DATA REQUIREMENTS
- 视觉transformer在大型JFT-300M数据集上进行预训练时表现良好。与ResNets相比,视觉的归纳偏差更少,数据集的大小有多重要?本文进行了两个系列的实验。
- 首先,本文在不断增加的数据集上预训练ViT模型:ImageNet、ImageNet-21k和JFT300M。为了提高较小数据集的性能,本文优化了三个基本的正则化参数——权重衰减、损失函数和label smoothing。
- 下图显示了微调到ImageNet后的结果(其他数据集的结果如下表所示)。当在最小的数据集ImageNet上进行预训练时,尽管进行了(适度的)正则化,但ViT-Large模型的表现不如ViT-Base模型。用ImageNet-21k预训练,他们的表现差不多。只有使用JFT-300M,才能看到大型机型的全部优势。下图还显示了不同尺寸的位模型所跨越的性能区域。在ImageNet上,比特CNN优于ViT,但是在更大的数据集上,ViT超过了它。
- Transfer to ImageNet. 虽然在小数据集上进行预训练时,大型ViT模型的性能比BiT ResNets(阴影区域)差,但在大型数据集上进行预训练时,它们会大放异彩。同样,随着数据集的增长,较大的ViT变体会超过较小的。
- 在ImageNet、ImageNet-21k或JFT300M上进行预训练时,Vision Transformer在各种数据集