译:《一张图片等价于很多16x16单词:按比例进行图像识别的Transformer》
论文地址:AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
Motivation
目前,Transformer在NLP领域使用广泛,而在视觉领域,卷积架构仍占主导地位,注意力目前存在的问题是如何将图片输入,因为图像分类等领域中图片通常大小是\(224\times224\)的,这样自注意力后就是\((224\times224)^2\),会太过巨大。目前已有的模型,要么是注意力与卷积网络结合使用,要么是注意力被用于替换卷积网络的组件,同时保持它们整体架构不变。而对于使用注意力替换整个卷积的模型,理论上有效,但由于使用了专门的注意模式,还没有在现代硬件加速器上得到有效的扩展。
换句话说,无论是将卷积与注意力混合使用还是完全用注意力替换卷积模型都已经有人在做了,而作者则提出,他们是受到Transformer在NLP上可扩展性的成功所启发,进而提出了Vision Transformer(ViT)
作者表示CNN上的这种依赖并不是必须的,并且直接应用于图像块序列的纯Transformer可以在图像分类任务上表现得很好,具体地,作者通过将图片分割成patch,每个patch是\(16\times16\)的,这样对应的就是\(14\times14(224/16)\)了,然后将这些patch的线性嵌入序列输入到Tansformer,图片的patch会和NLP应用中的词token一样进行训练。
方法简介
Vision Transformer (ViT)
模型结构如图,标准Transformer接收token嵌入的一维输入,为了处理二维图片,作者将\(x \in \mathbb R^{H\times W\times C}\)变换为展平的二维patch\(x_p \in \mathbb R^N\times(P^2 . C)\)的序列,其中\((H,W)\)表示原始图像分辨率,\(C\)表示通道数,\((P,P)\)表示每个图片patch的分辨率,\(N=HW/P^2\)是patch的数量。Transformer使用的是大小为D的隐常量,因此作者展平了patch然后使用一个可训练的线性投影将其映射到了D维。
与BERT的[CLASS] token类似,作者还添加一个可学习的嵌入层到嵌入patch的序列,其在Transformer编码器的输出状态用途图像表示。
同样地,位置编码也被加入到patch嵌入以保留位置信息,作者使用标准可学习的一维位置嵌入,因为他们没有观察到可以从使用更高级的二维感知嵌入获得有意义的表现。
Inductive bias(归纳偏置)
作者发现ViT比CNN具有更少的图像特有的归纳偏置,在CNN中,局部性(locality,卷积神经网络以滑动窗口形式一点点在图片上卷积的,所以假设图片上相邻区域会有相邻的特征)、二维领域结构和平移等变性(translation equivariance,\(f(g(x))=g(f(x))\),\(f\)可以理解成卷积\(g\)可以理解成平移,无论是先做平移还是先做卷积,最后结果是一样的)被bake到整个模型的每一层;在ViT则只有MLP层是局部性和平移等变性,而自注意力层是全局性的。二维领域结构被使用地很简单有限。
此外,初始化位置嵌入不携带关于patch的二维位置的信息,并且必须从头开始学习patch之前的所有空间关系。
Hybrid Architecture
作为原始图像块的替代,输入序列可以由CNN的特征图表示,在这个混合模型中,patch嵌入投影应用于从CNN特征提取的patches上
微调与高分辨率
作者在大数据集上进行训练,在小数据集上进行微调,移除了预训练预测头,添加了零初始化的DxK前馈层,K是下游任务分类的数量。结果是与预训练相比,在更高分辨率图片上微调通常是有益的。
但在微调时,预训练的位置嵌入或许不再有意义,因此作者根据它们在原始图片的位置对预训练的位置嵌入进行二维内插。