论文解析[7] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

发表时间:2020
论文地址:https://arxiv.org/abs/2010.11929
代码地址:https://github.com/google-research/vision_transformer

文章目录

  • 摘要
  • 3 方法
    • 3.1 VISION TRANSFORMER (VIT)
    • 3.2 微调和更高的分辨率
  • 4 实验
  • 5 结论

摘要

虽然Transformer已经成为了 nlp 领域的标准,但它在 cv 上的应用还是有限的。在视觉领域,注意力或者与卷积网络结合,或者取代卷积神经网络里的某些卷积,但整体结构不变。

我们证明了对于卷积神经网络的依赖是不必要的,一个纯的transformer直接应用于图像序列块也可以在图像分类任务上表现的很好。当使用大量的数据进行预训练再迁移到不同的中小数据集,ViT可以获得和卷积神经网络相当的效果。

3 方法

在模型设计方面,我们尽可能接近原始的Transformer。这样做的好处是可以将可扩展的NLP Transformer结构和有效的实现几乎可以开箱即用。

3.1 VISION TRANSFORMER (VIT)

论文解析[7] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE_第1张图片
标准的Transformer接收一个1D的序列token作为输入。为了处理2D的图像,我们将图像 x ∈ R H × W × C x∈R^{H×W×C} xRH×W×C 变形为一系列的2D的patch x p ∈ R N × ( P 2 ∗ C ) x_p∈R^{N×(P^2*C)} xpRN×(P2C) ( H , W ) (H, W) (H,W) 表示原始图像的分辨率, C C C 是通道数, ( P , P ) (P, P) (P,P) 是每个图像patch的分辨率, N = H W / P 2 N=HW/P^2 N=HW/P2 是patch的数目,作为有效输入序列长度。Transformer所有的层都是使用D作为向量长度,我们使用一个可以训练的全连接层将patch映射为D维,输出作为patch嵌入。

类似于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 y y。分类头是通过一个MLP实现。

位置嵌入被加入到了patch嵌入中来保留位置信息。我们使用标准的可以学习的1D position embedding。输出嵌入向量序列作为transformer编码器的输入。

Transformer编码器包括交替的多头注意力层(MSA)和MLP块。标准化层(LN)应用于每个块之前和和每个块的残差连接之后。

论文解析[7] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE_第2张图片

3.2 微调和更高的分辨率

我们在大数据上进行预训练,在下游的小任务上进行微调。在比预训练更高分辨率上进行微调是有好处的。当提供更高分辨率图像时,我们保持相同的patch大小,这导致了更大的序列长度。ViT可以处理任意的序列长度(取决于内存限制),然而预训练的位置嵌入会不再有意义。因此我们采用预训练位置嵌入的2D插值法,根据它们在原始图像中的位置。分辨率调整和patch提取是唯一手动加入到ViT的关于图像2D结构的归纳偏置。

4 实验

论文解析[7] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE_第3张图片

5 结论

我们直接使用nlp领域里标准的transformer来做图像识别,不同于先前计算机视觉的自注意力,除了初始的patch提取步骤,没有引入图像特有的归纳偏置。相反,我们把一张图像理解为一个patch序列,并使用用于 nlp 的一个标准Transformer来处理它。这个简单、扩展性很好的策略与大规模数据集预训练结合时,表现的很好。ViT在许多图像分类数据集上达到或超过了sota,而且预训练起来相对便宜。

尽管这些最初的结果是给人希望的,但是还存在很多挑战。首先是将ViT应用到其他的计算机视觉任务,例如检测和分割。我们的结果,与SETR结合,表明了这种方法的前景。另一个挑战是继续探索自监督预训练方式。我们的初始实验表明了使用自监督预训练的提升,但和大规模的有监督预训练比起来还有很大的差距。最后,更大的ViT尺度,有可能带来性能的提升。

你可能感兴趣的:(#,论文阅读,深度学习,人工智能,计算机视觉)