【论文笔记】An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale

【题目】:An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale

【引用格式】:Dosovitskiy A, Beyer L, Kolesnikov A, et al. An image is worth 16x16 words: Transformers for image recognition at scale[J]. arXiv preprint arXiv:2010.11929, 2020.

【网址】:https://arxiv.org/pdf/2010.11929/1000

【开源代码】:https://github.com/google-research/vision_transformer

目录

一、瓶颈问题

二、本文贡献

三、解决方案

1、模型架构

2、归纳偏差

3、混合架构

4、微调与更高分辨率

四、实验结果

1、setup

1.1 模型设置

1.2 训练设置

1.3 数据集设置

1.4 评估指标设置

2、与当前最先进水平的比较

3、规模缩放研究

4、审视视觉 Transformer


一、瓶颈问题

        在其之前,注意力机制要么与卷积网络结合使用,要么在保持卷积网络整体结构不变的情况下,用于替换卷积网络的某些组件。

二、本文贡献

        文中证明了这种对卷积神经网络(CNNs)的依赖并非必要,直接应用于图像补丁序列的纯 Transformer 在图像分类任务中可以表现得非常出色。

三、解决方案

1、模型架构

        输入处理:x\in R^{H \times W\times C}重塑为扁平的二维图像块序列x_{p} \in R^{N \times (p^{2}\cdot c)}N = HW/P^{2}为图像块数量。通过可训练线性投影将图像块映射到维度D,得到图像块嵌入。添加可学习的分类嵌入x_{class}位置嵌入E_{pos}形成输入z_{0}

        Transformer 编码器:多头自注意力(MSA)和多层感知器(MLP)块交替组成。层归一化(LN)用于每个块前残差连接用于每个块后。MLP 包含两层,使用 GELU 非线性激活函数。

        输出:Transformer 编码器输出的z_{L}^{0}经层归一化得到图像表示y,预训练时分类头为带一个隐藏层的 MLP,微调时为单个线性层。

2、归纳偏置

        ViT 相比 CNN,图像特定归纳偏置更少。CNN 每层都融入局部性、二维邻域结构和平移不变性;ViT 中仅 MLP 层有局部性和平移不变性,自注意力层是全局的,二维邻域结构仅用于图像切块和微调时调整位置嵌入。

3、混合架构

        输入序列可由 CNN 的特征图构成。对从 CNN 特征图提取的图像块应用嵌入投影E,特殊情况是(1×1)大小的图像块,即展平特征图空间维度后投影到 Transformer 维度,再添加分类和位置嵌入。

4、微调与更高分辨率

        微调:预训练后移除预训练预测头,添加零初始化的(D×K)前馈层(K为下游类别数)。

        高分辨率处理:微调时可采用更高分辨率图像,保持图像块大小不变会增加有效序列长度。通过对预训练位置嵌入进行二维插值,根据其在原始图像中的位置调整,以适应更高分辨率,这是手动注入图像二维结构归纳偏差的环节之一。

四、实验结果

        文中评估了残差网络(ResNet)、视觉 Transformer(ViT)以及混合模型的表征学习能力。

1、setup

1.1 模型设置

基线 CNN:使用 ResNet,将 Batch Normalization 层替换为 Group Normalization,采用标准化卷积,修改后的模型记为 “ResNet(BiT)”。

混合模型:将中间特征图输入到图像块大小为一个 “像素” 的 ViT。为实验不同序列长度,有两种选择:一是采用常规 ResNet50 网络第四阶段的输出;二是去掉第四阶段,在第三阶段放置相同数量的层(保持总层数不变),采用扩展后的第三阶段输出,此操作会使序列长度变为原来 4 倍,ViT 模型计算成本更高。

 ViT 模型:配置基于 BERT,有 “Base”“Large”“Huge” 等变体,用如 ViT-L/16 表示 “Large” 变体且输入图像块大小为 16×16,Transformer 序列长度与图像块大小平方成反比,小块大小模型计算成本更高。

1.2 训练设置

训练优化器:训练所有模型(包括 ResNets)使用 Adam 优化器,参数β1=0.9 ,β2=0.999 ,批量大小 4096,权重衰减 0.1,使用线性学习率 warmup 和 decay。

微调优化器:微调时所有模型使用带动量的 SGD,批量大小 512。在 ImageNet 实验中,ViT-L/16 微调分辨率为 512,ViT-H/14 为 518,还采用了 Polyak & Juditsky(1992)平均方法,平均因子 0.9999。

1.3 数据集设置

预训练数据集:使用 ILSVRC-2012 ImageNet(1k 类,1.3M 图像)、ImageNet-21k(21k 类,14M 图像)、JFT(18k 类,303M 高分辨率图像),对预训练数据集针对下游任务测试集去重。

下游基准任务数据集:包括使用原始验证标签和清理后 ReaL 标签的 ImageNet、CIFAR-10/100、Oxford-IIIT Pets、Oxford Flowers-102,预处理遵循 Kolesnikov 等人(2020)方法;还有 19 任务的 VTAB 分类套件,分自然类(如 Pets、CIFAR 等任务)、专业类(医学和卫星图像)、结构化类(需几何理解如定位任务),每项任务用 1000 个训练示例评估小数据量迁移情况。

1.4 评估指标设置

        通过少样本学习准确率微调准确率报告下游数据集结果。微调准确率反映模型在相应数据集微调后的性能;少样本学习准确率通过求解正则化最小二乘回归问题得到,将训练图像子集(固定)特征表示映射到\begin{Bmatrix} -1, &1 \end{Bmatrix}^{k}目标向量,能闭式求解精确解,主要关注微调性能,有时在微调成本高时用少样本线性分类准确率快速评估。

2、与当前最先进水平的比较

背景:将最大的 ViT 模型 ViT-H/14 和 ViT-L/16 与文献中先进的 CNN 作比较。对比对象一是 Big Transfer(BiT),使用大型 ResNets 进行有监督迁移学习;二是 Noisy Student,是在去除标签的 ImageNet 和 JFT300M 上用半监督学习训练的大型 EfficientNet。目前,Noisy Student 在 ImageNet 表现最优,BiT-L 在其他文中数据集表现最佳。

硬件及指标:所有模型在 TPUv3 硬件上训练,报告预训练各模型所耗费的 TPUv3 核心天数(TPU v3 核心数量 × 训练天数,每芯片 2 核心)。

实验结果:

  • ViT-L/16 在 JFT-300M 预训练,在所有任务上优于同样在该数据集预训练的 BiT-L,且训练所需计算资源少很多;更大的 ViT-H/14 性能进一步提升,尤其在 ImageNet、CIFAR-100 和 VTAB 套件等更具挑战的数据集上表现突出,且预训练计算量仍比先前最先进模型少。
  • 在 ImageNet-21k 预训练的 ViT-L/16 在多数数据集表现良好,预训练资源需求少,8 核标准云 TPUv3 约 30 天可完成训练。

        在规模递增的 ImageNet、ImageNet-21k 和 JFT300M 上预训练 ViT 模型,优化权重衰减、dropout 和标签平滑三个正则化参数。结果显示,在最小的 ImageNet 预训练时,ViT-Large 性能不如 ViT-Base;在 ImageNet-21k 预训练时二者性能相似;只有在 JFT-300M 预训练时,更大模型优势才充分显现。

        JFT300M 子集实验:在 900 万、3000 万、9000 万随机子集及完整 JFT300M 数据集上训练模型,不额外正则化,用相同超参数,采用提前停止策略并报告最佳验证准确率,为节省计算报告少样本线性准确率。结果表明,小数据集上同等计算成本下 ViT 比 ResNets 更易过拟合,如 ViT-B/32 和 ResNet50、ResNet152x2 和 ViT-L/16 的对比,说明卷积归纳偏置对小数据集有用,大数据集直接从数据学相关模式即可甚至更有益。

3、规模缩放研究

Average-5: 5个数据集上的平均性能

研究目的与设定:通过评估从 JFT-300M 数据集迁移的性能,进行可控的规模缩放研究。此设定下数据规模不限制模型性能,旨在评估各模型性能与预训练成本的关系。

实验模型集合:

  • ResNets包含 7 个模型,如 R50x1、R50x2、R101x1 等,部分预训练 7 个轮次,部分如 R152x2 和 R200x3 预训练 14 个轮次。
  • Vision Transformers有 6 个模型,如 ViT-B/32、B/16、L/32 等,部分预训练 7 个轮次,部分如 L/16 和 H/14 预训练 14 个轮次。
  • Hybrids(混合模型):共 5 个模型,如 R50+ViT-B/32、B/16、L/32 等,部分预训练 7 个轮次,部分如 R50+ViT-L/16 预训练 14 个轮次,模型名称末尾数字代表 ResNet 主干网络总下采样比率。

实验结果与发现

  • 性能与计算量权衡:图 5 展示迁移性能与总预训练计算量关系,结果表明在性能和计算量的权衡上,Vision Transformers 优于 ResNets,ViT 达到相同性能(5 个数据集平均)所用计算量约少 2-4 倍。
  • 混合模型表现:计算资源预算较小时,混合模型性能略优于 ViT,但模型规模变大后差异消失,这与预期中卷积局部特征处理对 ViT 的辅助作用在任何规模都有效的想法相悖
  • 模型性能潜力:在测试范围内,Vision Transformers 未出现性能饱和,为扩大模型规模提供了希望。

4、审视视觉 Transformer

第一层线性投影分析:ViT 的第一层将展平的图像块线性投影到低维空间,图 7(左)展示了学习到的嵌入滤波器的主要主成分,这些主成分类似于对每个图像块内精细结构进行低维表示的合理基函数。

位置嵌入分析:投影后添加学习的位置嵌入,图 7(中间)表明模型会在位置嵌入相似性中对图像内距离进行编码,近的图像块位置嵌入更相似,还出现行列结构(同行列的图像块嵌入相似),大网格有时会有正弦结构。位置嵌入能表示二维图像拓扑结构,解释了手工设计的二维感知嵌入变体无性能提升的原因【ViT 自身的位置嵌入已经可以很好地从数据中学习到二维图像拓扑结构,这些手工设计的规则并不能额外提供有价值的信息,无法让模型性能进一步提升】。

自注意力机制分析

  • 注意力距离计算:自注意力使 ViT 底层也能整合全图信息,通过基于注意力权重计算信息整合的图像空间平均距离(“注意力距离”,类似 CNN 感受野大小)来探究模型对该能力的利用程度。
  • 底层注意力头表现:部分注意力头在底层就关注图像大部分区域,说明模型利用了全局信息整合能力,而其他注意力头底层注意力距离小,这种高度局部化注意力在 Transformer 前有 ResNet 的混合模型中不明显,可能与 CNN 早期卷积层功能类似【在 Transformer 前接入 ResNet 的混合模型中,这种高度局部化的注意力表现不突出。因为 CNN 早期卷积层主要是捕捉局部特征,所以推测这些局部化注意力头在 ViT 里可能起到类似 CNN 早期卷积层的作用,聚焦于提取图像局部细节 】。
  • 注意力距离与深度关系:注意力距离随网络深度增加而增大,且模型全局上会关注与分类语义相关的图像区域(图 6) 。

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值