1 简介
本文根据2021年《AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE》翻译总结的。在本文中提出了模型Vision Transformer (ViT),其没有使用CNN,而是参考NLP领域的Transformer处理图像,即图像领域纯的Transformer。
该模型之前,主要是ResNet之类的CNN网络在图像领域占主导地位。
ViT是在大规模数据上进行监督预训练,然后在小的下游数据进行fine-tune(微调)。ViT暂时没有使用自监督(SELF-SUPERVISION),类似NLP的mask训练,这个可以后面进一步探讨下。
当预训练数据量小时(ImageNet),ViT表现不如ResNet;但当预训练数据量大时(JFT-300M),ViT表现超越ResNet。Transformers 缺乏 CNN 固有的一些归纳偏置 (inductive biases),例如平移等效性和局部性 (translation equivariance and locality),因此在数据量不足的情况下训练时不能很好地泛化。
如上所述,ViT有两个特点,一是采用纯Transformer,没有CNN;二是基于大量的预训练数据。
2 方法
结合着上面模型架构图和公式一起说明,
1) 将图像 H * W * C(如224 * 224 * 3,高 * 宽 * channel)拆成固定大小P * P(如16 * 16)的小块(patch),然后线性embed他们,加上位置embed,最后输入到标准的transformer。
整个过程就是上面的公式1. 其中D是embedding的维度
2) multiheaded self-attention (MSA),如公式2.
3) MLP包括两个带有GELU非线性的层。如公式3.
4) Fine-tune时,去掉预训练的预测head,换成一个零初始化的D*K的feedforword层,其中K表示下游任务的分类数量。
实验中,我们采用了如下一些模型:
3 实验
可以看到我们的模型ViT,在各任务中基本是最好的,尤其是ViT-H。
ViT与ResNet、和混合模型Hybird(CNN+transformer)相比,在相同的计算能力下,ViT准确率高于ResNet;对于小的模型时,混合模型Hybird表现好于ViT,但当变成大模型时,差距就不存在了。
下图说明,当预训练数据量小时(ImageNet),ViT表现不如ResNet;但当预训练数据量大时(JFT-300M),ViT表现超越ResNet。