ViT:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 论文阅读

论文链接

AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE


0. Abstract

  • Transformer 在计算机视觉中的应用有限
  • 在视觉中,注意力要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持它们的整体结构
  • 本文证明了这种对CNN的依赖是不必要的,并且直接应用于图像块序列的纯转换器可以在图像分类任务上表现得很好

1. Intro

  • 受NLP中Transformer缩放成功的启发,尝试将标准Transformer直接应用于图像,并进行尽可能少的修改

  • 我们**将图像拆分为补丁,并提供这些补丁的线性嵌入序列作为Transformer的输入**

  • 图像块的处理方式与标记(单词)相同,以监督的方式训练图像分类模型

  • 不足:Transformers 缺乏 CNN 固有的一些归纳偏差,例如平移等方差和局部性,因此在数据量不足的情况下训练时不能很好地概括

  • 当以足够的规模进行预训练并转移到数据点较少的任务时,ViT 取得了优异的结果

2. Related Work

  • 基于大型 Transformer 的模型通常在大型语料库上进行预训练,然后针对具体的任务进行微调

  • 将自注意力机制应用到图像上需要每个像素关注其他每个像素。由于像素数量的二次成本,这无法缩放到实际的输入尺寸。有几种近似的做法

    • 仅在每个查询像素的局部邻域而不是全局应用自注意力。这种局部多头点积自注意力块可以完全取代卷积
    • 采用了全局自注意力的可扩展近似,以便适用于图像。
    • 扩展注意力的另一种方法是将其应用于不同大小的块中
  • 图像 GPT:在降低图像分辨率和颜色空间后将 Transformers 应用到图像像素,以无监督方式进行训练,然后可以对生成的表示进行微调或线性探测以实现分类性能

3. Method

3.1 Vision Transformer (ViT)

Fig.1 ViT 模型框架示意图
  • 标准 Transformer 接收一维令牌嵌入序列作为输入

    • 将图像 x ∈ R H × W × C x ∈ \mathbb{R}^{H×W ×C} xRH×W×C 重塑为一系列展平的 2D 块 x p ∈ R N × ( P 2 ⋅ C ) x_p ∈ \mathbb{R}^{N×(P^2·C)} xpRN×(P2C),其中 (H, W ) 是原始图像的分辨率,C 是通道数,(P, P ) 是每个图像块的分辨率, N = H W / P 2 N = HW/P^2 N=HW/P2 是生成的块数,这也作为 Transformer 的有效输入序列长度

    • Transformer 在其所有层中使用恒定的潜在向量大小 D,因此将补丁展平并使用可训练的线性投影映射到 D 维度
      z 0 = [ x c l a s s ; x p 1 E ; x p 2 E ; ⋅ ⋅ ⋅ ; x p N E ] + E p o s ,           E ∈ R ( P 2 ⋅ C ) × D , E p o s ∈ R ( N + 1 ) × D (Eq.1) z_0 = [x_{class}; x^1_pE; x^2_pE; · · · ; x^N_pE] + E_{pos},\ \ \ \ \ \ \ \ \ E ∈ \mathbb{R}^{(P^2·C)×D}, E_{pos} ∈ \mathbb{R}^{(N+1)×D} \tag{Eq.1} z0=[xclass;xp1E;xp2E;⋅⋅⋅;xpNE]+Epos,         ER(P2C)×D,EposR(N+1)×D(Eq.1)

    • 将可学习的嵌入添加到嵌入补丁序列 ( 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 表示。分类头在预训练时由具有一个隐藏层的 MLP 实现,在微调时由单个线性层实现
      y = L N ( z L 0 ) (Eq.4) y = LN(z^0_L) \tag{Eq.4} y=LN(zL0)(Eq.4)

    • 位置嵌入被添加到补丁嵌入中以保留位置信息。使用标准的可学习 1D 位置嵌入,。生成的嵌入向量序列用作编码器的输入

    • Transformer 编码器由多头自注意力和 MLP 块(等式 2、3)的交替层组成
      z l ′ = M S A ( L N ( z l − 1 ) ) + z l − 1 ,        l = 1... L z l = M L P ( L N ( z l ) ) + z l ,        l = 1... L \begin{align} &z'_{\mathscr{l}} = MSA(LN(z_{\mathscr{l}−1})) + z_{\mathscr{l}−1},\ \ \ \ \ \ \mathscr{l} = 1 . . . L \tag{Eq.2} \\ &z_{\mathscr{l}} = MLP(LN(z_{\mathscr{l}})) + z_{\mathscr{l}},\ \ \ \ \ \ \mathscr{l} = 1 . . . L \tag{Eq.3} \end{align} zl=MSA(LN(zl1))+zl1,      l=1...Lzl=MLP(LN(zl))+zl,      l=1...L(Eq.2)(Eq.3)

感应偏置

ViT 的图像特定归纳偏差比 CNN 少得多

  • 在 CNN 中,局部性、二维邻域结构和平移等方差被融入到整个模型的每一层中
  • 在 ViT 中,只有 MLP 层是局部和平移等变的,而自注意力层是全局的
  • 在模型开始时将图像切割成块,并在微调时调整不同分辨率图像的位置嵌入。二维邻域结构的使用非常少
  • 初始化时的位置嵌入不携带有关补丁的 2D 位置的信息,并且补丁之间的所有空间关系都必须从头开始学习

混合架构

  • 输入序列可以由 CNN 的特征图形成
  • 在此混合模型中,补丁嵌入投影 E(Eq.1)应用于从 CNN 特征图提取的补丁
  • 补丁可以具有 1x1 的空间大小,这意味着输入序列是通过简单地展平特征图的空间维度并投影到 Transformer 维度来获得的

3.2 Fine-Tuning & Higher Resolution

在大型数据集上预训练 ViT,并对(较小的)下游任务进行微调

  • 移除预训练的预测头并附加一个零初始化的 D × K 前馈层,其中 K 是下游类的数量

  • 以比预训练更高的分辨率进行微调通常是有益的

  • 当输入更高分辨率的图像时,保持补丁大小相同,这会生成更大的有效序列长度

  • 根据预训练位置嵌入在原始图像中的位置对它们进行 2D 插值

    请注意,只有在分辨率调整和提取补丁的时候,才会手动注入对图像二维结构的归纳偏见到 ViT 中

4. Experiments

  • 评估了ResNet、Vision Transformer(ViT)和混合模型的表示学习能力
  • 对各种规模的数据集进行预训练并评估许多基准任务
  • 进行了一个小实验,使用自我监督,并展示了自我监督的 ViT 对未来的潜力

4.1 Setup

数据集

  • 使用包含1千个类别和130万张图像的 ILSVRC-2012 ImageNet数据集,其超集 ImageNet-21k 包含21千个类别和1400万张图像,以及包含18千个类别和3.03亿高分辨率图像的 JFT 数据集
  • 将预训练数据集与下游任务的测试集进行去重,将在这些数据集上训练的模型迁移到多个基准任务上
  • 在19个任务的VTAB分类套件上进行评估,VTAB评估对于不同任务的低数据传输,每个任务使用1,000个训练样例

模型变体

  • 基于用于BERT(Devlin et al., 2019)的配置进行ViT配置。"Base"和"Large"模型直接采用自BERT,并添加了更大的"Huge"模型

    Transformer 的序列长度与补丁大小的平方成反比,因此具有较小补丁大小的模型在计算上更昂贵
  • 对于基线的 CNNs,我们使用 ResNet,但将 Batch Normalization层替换为 Group Normalization,并使用标准化卷积。

  • 对于混合模型,我们将中间特征映射馈送到具有一个"像素"的 ViT 中

  • 为了尝试不同的序列长度

    • 使用常规ResNet50的第4阶段的输出
    • 将第4阶段删除,在第3阶段放置相同数量的层(保持总层数),并且取得这个扩展第3阶段的输出

训练与微调

  • 我们使用 Adam 对所有模型进行训练,其中 β 1 = 0.9 , β 2 = 0.999 β_1 = 0.9,β_2 = 0.999 β1=0.9β2=0.999,批量大小为4096,并应用高权重衰减值0.1
  • 对于所有模型的微调,使用带动量的SGD,批量大小为512

度量标准

  • 通过少样本准确率或微调准确率来报告下游数据集的结果
  • 微调准确率捕捉了在相应数据集上微调每个模型后的表现
  • 少样本准确率是通过解决一个带有正则化的最小二乘回归问题得到的

4.2 Comparison to SOTA

  • 在所有任务中,较小的 ViT-L/16 模型在 JFT-300M 上进行了预训练,表现优于在相同数据集上进行预训练的 BiT-L,同时需要更少的计算资源来进行训练
  • 大的模型ViT-H/14进一步提高了性能,尤其是在更具挑战性的数据集(ImageNet、CIFAR-100和VTAB套件)上
  • 预训练效率可能不仅受架构选择的影响,还受其他参数的影响,比如训练计划、优化器、权重衰减等

4.3 Pre-training Data Requirements

ViT 相比 ResNets 对于视觉的归纳偏差较少,数据集大小有多重要?对此进行了两个系列的实验

  • 在数据集上进行前训练 ViT 模型,逐渐增加数据集的大小
  • 为了增强对较小数据集的性能,我们优化了三个基本的正规化参数——权重衰减、随机失活和标签平滑
  • 在随机的9M、30M和90M的子集上,以及全部的JFT300M数据集上训练模型

  • 没有对较小的子集进行额外的正则化,并且对所有设置使用相同的超参数

  • 卷积的归纳偏置对于较小的数据集是有用的,但对于更大的数据集来说,直接从数据中学习相关模式是足够的,甚至是有益的

4.4 Scaling Study

  • 通过评估从JFT-300M进行的迁移性能来执行对不同模型的控制缩放研究
  • ViT 在性能/计算权衡方面优于ResNet。ViT使用的计算量大约是相同性能的2-4倍
  • 混合模型在较小的计算预算下稍微优于ViT,但在较大的模型上差异消失
  • ViT 似乎在尝试的范围内没有达到饱和

4.5 Inspecting Vision Transformer

为了开始理解 ViT 如何处理图像数据,分析其内部表示

  • ViT 第一层将扁平化的补丁线性投影到一个低维空间中,下图展示了学习嵌入过滤器的前几个主要成分。这些成分类似于对每个补丁内部细节的低维表示的可行基函数
  • 在投影之后,将一个经过学习的位置嵌入添加到补丁表示中。下图显示模型学会了在位置嵌入的相似性中编码图像内的距离,即更近的补丁倾向于具有更相似的位置嵌入

  • 自注意力使得 ViT 能够在最低层级上整合整个图像的信息。下图展示根据注意力权重计算图像空间中信息整合的平均距离。这种“注意距离”类似于CNN中的感受野大小

  • 一些头在最低层次上已经关注了大部分图像,表明该模型确实使用了整合全局信息的能力。其他注意头在低层次上具有一致的小注意距离。这种高度局部化的注意力在 Transformer 之前应用ResNet的混合模型中不太明显,这表明它可能具有类似于CNN中早期卷积层的功能。注意距离随着网络深度的增加而增加

5. Conclusion

  • 探索了将Transformers直接应用于图像识别
  • 与使用自我注意力的计算机视觉的先前工作不同,我们在架构中除了初始补丁提取步骤之外,并没有引入图像特定的归纳偏差,而是将图像解释为一系列补丁,并通过在 NLP 中使用的标准 Transformer 编码器进行处理

挑战

  • 将ViT应用于其他计算机视觉任务,比如检测和分割
  • 需要继续探索自监督预训练方法。自监督和大规模监督预训练之间仍然存在很大差距
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值