当前位置: 首页 > news >正文

VIT(ICLR2021)


paper
code

Abstract

虽然Transformer架构已经成为自然语言处理任务的事实标准,但其在计算机视觉中的应用仍然有限。在视觉中,注意力要么与卷积网络一起应用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。对cnn的这种依赖是不必要的,直接应用于图像块序列的纯transformer可以在图像分类任务上表现很好。当在大量数据上进行预训练并转移到多个中小型图像识别基准(ImageNet、CIFAR-100、VTAB等)时,与最先进的卷积网络相比,视觉Transformer (ViT)取得了出色的结果,同时需要的训练计算资源大大减少

Introduction

基于自注意力的架构,特别是transformer (Vaswani et al., 2017),已经成为自然语言处理(NLP)的首选模型。主流的方法是在大型文本语料库上进行预训练,然后在较小的特定任务数据集上进行微调(Devlin等人,2019)。由于transformer的计算效率和可扩展性,已经可以训练规模空前的模型,具有超过100B的参数(Brown等人,2020;Lepikhin等人,2020)。随着模型和数据集的增长,性能仍然没有饱和的迹象。然而,在计算机视觉中,卷积架构仍然占主导地位(LeCun等人,1989;Krizhevsky等人,2012;He等人,2016)。受NLP成功的启发,许多工作尝试将类cnn架构与自注意力相结合(Wang等人,2018;Carion等人,2020),一些完全取代卷积(Ramachandran等人,2019;王等,2020a)。后者虽然理论上很有效,但由于使用了专门的注意力模式,尚未在现代硬件加速器上有效扩展。因此,在大规模图像识别中,经典的ResNet类架构仍然是最先进的(Mahajan等人,2018;Xie等人,2020;Kolesnikov等人,2020)。

受Transformer在NLP中缩放成功的启发,实验将标准Transformer直接应用于图像,并进行尽可能少的修改。为此,将图像分割为块,并提供这些块的线性嵌入序列作为transformer的输入。在NLP应用中,图像块与标记(单词)的处理方式相同。以有监督的方式在图像分类上训练模型。当在没有强正则化的中型数据集(如ImageNet)上训练时,这些模型的精度比同等大小的ResNets低几个百分点。这种看似令人沮丧的结果是可以预期的:transformer缺乏cnn固有的一些归纳偏差,如平移等变性和局部性,因此在数据量不足时,泛化效果不好。

然而,如果模型在更大的数据集(14M-300M图像)上训练,图像会发生变化。大规模训练胜过归纳偏差。所提出的视觉Transformer (ViT)在以足够规模进行预训练并转移到数据点较少的任务时取得了出色的结果。当在公共ImageNet-21k数据集或内部JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近或超过了最先进水平。最好的模型在ImageNet上达到了88.55%的准确率,在ImageNet- real上达到了90.72%的准确率,在CIFAR-100上达到了94.55%的准确率,在19个任务的VTAB套件上达到了77.63%的准确率。

Related Work

transformer由Vaswani等人(2017)提出用于机器翻译,并已成为许多NLP任务中的最先进方法。基于transformer的大型模型通常在大型语料库上进行预训练,然后针对手头的任务进行微调:BERT (Devlin等人,2019)使用降噪自监督预训练任务,而GPT工作使用语言建模作为预训练任务(Radford等人,2018;2019年;Brown等人,2020)。
简单地将自注意力应用于图像,需要每个像素关注每个其他像素。由于像素数量为二次成本,这无法扩展到实际的输入大小。因此,为了将transformer应用于图像处理,过去曾尝试过几种近似方法。Parmar et al.(2018)仅将自注意力应用于每个查询像素的局部邻域,而不是全局。这种局部多头点积自注意力块可以完全取代卷积(Hu等人,2019;Ramachandran等人,2019;Zhao等,2020)。在另一种工作中,稀疏transformer (Child等人,2019)采用可扩展的全局自注意力近似,以便适用于图像。缩放注意力的另一种方法是将其应用于不同大小的块(Weissenborn等人,2019),在极端情况下,仅沿单个轴应用(Ho等人,2019;王等,2020a)。许多这些专门的注意力架构在计算机视觉任务上表现出了有希望的结果,但需要复杂的工程才能在硬件加速器上有效实现。
与我们的模型最相关的是Cordonnier等人(2020)的模型,该模型从输入图像中提取大小为2 × 2的块,并将完全的自注意力应用于顶部。该模型与ViT非常相似,但本文工作进一步证明,大规模预训练使普通transformer与最先进的cnn竞争(甚至优于)。此外,Cordonnier等人(2020)使用了2 × 2像素的小块大小,这使得模型仅适用于小分辨率图像,而我们也处理中分辨率图像。
人们对将卷积神经网络(CNN)与自注意力形式相结合也很感兴趣,例如通过增强用于图像分类的特征图(Bello等人,2019)或使用自注意力进一步处理CNN的输出,例如用于目标检测(Hu等人,2018;Carion等人,2020),视频处理(Wang等人,2018;Sun等人,2019)、图像分类(Wu等人,2020)、无监督目标发现(Locatello等人,2020)或统一的文本视觉任务(Chen等人,2020c;Lu等人,2019;Li et al., 2019)。另一个最近的相关模型是图像GPT (iGPT) (Chen et al., 2020a),它在降低图像分辨率和颜色空间后将transformer应用于图像像素。该模型作为生成模型以无监督的方式进行训练,然后可以对得到的表示进行微调或线性探索分类性能,在ImageNet上实现了72%的最高精度。

我们的工作增加了越来越多的论文集合,这些论文在比标准ImageNet数据集更大的尺度上探索图像识别。使用额外的数据源可以在标准基准上取得最先进的结果(Mahajan等人,2018;Touvron等人,2019;Xie et al., 2020)。此外,Sun等人(2017)研究了CNN性能如何随数据集大小而变化,以及Kolesnikov等人(2020);Djolonga等人(2020)从ImageNet-21k和JFT-300M等大规模数据集对CNN迁移学习进行了经验探索。我们也关注后两个数据集,但训练transformer,而不是之前工作中使用的基于resnet的模型。

模型的概述。将图像分割为固定大小的块,对每个块进行线性嵌入,添加位置嵌入,并将得到的向量序列提供给标准的Transformer编码器。为了进行分类,我们使用标准的方法在序列中添加一个额外的可学习的“分类标记”。Transformer编码器的插图受到Vaswani等人(2017)的启发。

Method

在模型设计中,我们尽可能地遵循原始Transformer (Vaswani et al., 2017)。这种故意简单设置的好处是,可扩展的NLP Transformer架构及其高效实现几乎可以开箱即用。

VISION TRANSFORMER (VIT)

图1描述了该模型的概述。标准转换器接收一个1维标记嵌入序列作为输入。为了处理2D图像,我们将图像x∈RH×W×C重塑为一个平坦的2D补丁xp∈RN×(P2·C)序列,其中(H, W)是原始图像的分辨率,C是通道数量,(P, P)是每个图像块的分辨率,N = HW/P2是结果补丁的数量,它也作为Transformer的有效输入序列长度。Transformer在其所有层中使用恒定的潜向量大小D,因此我们将补丁展平,并用可训练的线性投影映射到D维(公式1)。我们将此投影的输出称为补丁嵌入。

与BERT的[class] token类似,我们在嵌入补丁序列(z00 = xclass)前添加一个可学习的嵌入,其在Transformer编码器输出处的状态(z0 L)用作图像表示y(公式4)。在预训练和微调期间,分类头都附在z0L上。分类头由一个在预训练时具有一个隐藏层的MLP实现,在微调时由一个单一的线性层实现。

位置嵌入被添加到补丁嵌入中以保留位置信息。使用标准的可学习1D位置嵌入,因为没有观察到使用更先进的2d感知位置嵌入带来的显著性能提升(附录D.4)。得到的嵌入向量序列作为编码器的输入。
Transformer编码器(Vaswani et al., 2017)由交替层的多头自注意力(MSA,见附录A)和MLP块(公式2、3)组成。在每个块之前应用Layernorm (LN),在每个块之后应用残差连接(Wang et al., 2019;Baevski & Auli, 2019)。
MLP包含两个具有GELU非线性的层。

Inductive bias

Vision Transformer的图像特定归纳偏差比cnn小得多。在cnn中,局部性、二维邻域结构和平移等性被烘焙到整个模型的每一层中。在ViT中,只有MLP层是局部的和平移等变的,而自注意力层是全局的。二维邻域结构的使用非常谨慎:在模型开始时通过将图像切割成块,并在微调时调整不同分辨率图像的位置嵌入(如下所述)。除此之外,初始化时的位置嵌入不携带关于块的2D位置的信息,块之间的所有空间关系必须从头学习。

Hybrid Architecture

作为原始图像块的替代方案,输入序列可以从CNN的特征图形成(LeCun等人,1989)。在这个混合模型中,将块嵌入投影E(公式1)应用于从CNN特征图中提取的块。作为一个特例,patch的空间大小可以是1x1,这意味着输入序列是通过简单地展平特征映射的空间维度并投影到Transformer维度来获得的。分类输入嵌入和位置嵌入按上述方式添加。

FINE-TUNING AND HIGHER RESOLUTION

通常,我们在大型数据集上预训练ViT,并对(较小的)下游任务进行微调。为此,删除预训练的预测头,并附加一个零初始化的D × K前馈层,其中K是下游类别的数量。相比预训练,以更高的分辨率进行微调通常是有益的(Touvron等人,2019;Kolesnikov等人,2020)。当输入更高分辨率的图像时,我们保持patch大小相同,这导致了更大的有效序列长度。视觉Transformer可以处理任意序列长度(直到内存限制),然而,预训练的位置嵌入可能不再有意义。因此,根据预训练位置嵌入在原始图像中的位置,对其进行2D插值。请注意,这种分辨率调整和块提取是关于图像2D结构的归纳偏差被手动注入Vision Transformer的唯一点。

Conclusion

我们已经探索了transformer在图像识别中的直接应用。与之前在计算机视觉中使用自注意力的工作不同,除了初始块提取步骤外,没有将图像特定的归纳偏差引入到架构中。相反,我们将图像解释为一系列补丁,并通过NLP中使用的标准Transformer编码器进行处理。当与大型数据集的预训练相结合时,这种简单但可扩展的策略效果惊人。因此,视觉Transformer在许多图像分类数据集上匹配或超过了最先进的技术,同时预训练成本相对较低。虽然这些初步结果令人鼓舞,但仍存在许多挑战。一是将ViT应用于其他计算机视觉任务,如检测和分割。我们的结果,加上Carion等人(2020)的结果,表明了这种方法的前景。另一个挑战是继续探索自监督预训练方法。初步实验表明,自监督预训练的效果有所改善,但在自监督和大规模监督预训练之间仍有很大的差距。最后,ViT的进一步扩展可能会提高性能。

相关文章:

  • 建立对人工智能(AI)的信任
  • PCB入门指南:从电阻到常见电路的全解析
  • redis高阶2 高性能
  • 1.7 点云数据获取方式——视觉SLAM
  • 深度循环神经网络
  • 逆传播AIGEO营销:破局生成式搜索时代,让AI成为品牌代言人!
  • 科研入门规划
  • AI时代来临将带来文科复兴
  • 数据库中DDL、DML、DCL的区别是什么?
  • vue+cesium线流动纹理
  • c# 获取当前程序的路径
  • OpenJDK 1.8中-Xloggc参数下GC日志覆盖与追加模式深度解析
  • 基于esp32的小区智能门禁集成系统设计和实现
  • RoPE 相对位置编码 VS 传统位置编码
  • 【强化学习系列】Q-learning——从贝尔曼最优方程谈起
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(2):MCP高性能服务优化
  • 【无标题】好用的远程链接插件
  • DNA复制过程3D动画教学工具
  • C语言按位操作符
  • 道德经解读分析
  • 中国人民解放军南部战区位南海海域进行例行巡航
  • 上海“模速空间”:将形成人工智能“北斗七星”和群星态势
  • 人社部:将制定提前领取个人养老金相关办法
  • 北美票房|《罪人》遭媒体唱衰,好莱坞业内人士集体反击
  • 央视曝光假进口保健品:警惕!保税仓发货不等于真进口
  • 别让心脏“饿肚子”,心肌缺血全解析