【深度学习】Vision Transformer论文,ViT的一些见解《 一幅图像抵得上16x16个词:用于大规模图像识别的Transformer模型》

必看文章:https://blog.csdn.net/qq_37541097/article/details/118242600

论文名称: An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale
论文下载:https://arxiv.org/abs/2010.11929
官方代码:https://github.com/google-research/vision_transformer

文章目录

  • PS
    • 一张图
    • Vision Transformer过程
  • ABSTRACT
  • INTRODUCTION
  • RELATED WORK
  • METHOD
    • VISION TRANSFORMER (VIT)
    • FINE-TUNING AND HIGHER RESOLUTION
  • EXPERIMENTS
    • 实验设置 数据集
    • COMPARISON TO STATE OF THE ART
    • PRE-TRAINING DATA REQUIREMENTS
    • SCALING STUDY
    • INSPECTING VISION TRANSFORMER
    • SELF-SUPERVISION
  • CONCLUSION

PS

一张图

在这里插入图片描述

Vision Transformer过程

将图像应用于Transformer的过程可以分为以下几个步骤:

  • 图像划分为块:首先,将输入图像分割成大小相同的块。每个块通常由一个固定数量的像素组成,比如16x16像素。

  • 块的序列化:将每个块的像素展平为向量,并对所有块进行序列化。这样,我们得到一个形状为(N, d)的序列,其中N是块的总数,d是每个块的向量维度。

  • 位置编码:为了将空间信息引入ViT模型,位置编码被添加到序列中。位置编码可以是一个为每个位置生成的固定向量,或者也可以通过学习得到。

  • 输入嵌入:将序列化的块与位置编码进行拼接,并添加一个额外的可学习的"类别嵌入"向量作为整个图像的表示。这样,我们得到一个形状为(N, d+1)的向量序列。

  • Transformer编码器:将输入嵌入的向量序列输入到Transformer编码器中。Transformer编码器由多层自注意力和位置前馈神经网络(Feed-Forward Neural Network)组成。它可以捕捉到序列中每个向量与其他向量的关系,并输出一个对每个向量进行上下文感知的表示。

  • 分类器:最后,将Transformer编码器的输出向量输入到一个全连接层进行分类任务。这个分类器可以根据具体的应用进行设计,比如softmax层用于多类别分类。

假设输入图像的大小为H x W,并且将其划分为B个块。每个块的大小为P x P。在序列化过程中,我们将每个块的像素展平为形状为(P x P, C)的向量,其中C是每个像素的通道数。这样,我们得到一个形状为(B, P x P, C)的块向量序列。

位置编码可以通过以下公式计算:

PE(pos, 2i) = sin(pos / 10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))

其中pos是位置,i是维度索引,d_model是输入嵌入的维度。这样,每个位置都会得到一个维度为d_model的位置编码向量。

输入嵌入可以通过将块向量序列与位置编码拼接得到:

X = [x1, x2, …, xB],其中xi是第i个块的向量表示。

Transformer编码器中的自注意力机制可以通过以下公式计算:

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V

其中Q、K和V分别是Query(查询)、Key(键)和Value(值)向量。在ViT中,它们都是通过线性变换得到的。

最后,分类器可以通过全连接层和softmax激活函数进行定义:

Y = softmax(WX + b),其中W是权重矩阵,b是偏置向量。

ABSTRACT

尽管Transformer架构已经成为自然语言处理任务的事实标准,但它在计算机视觉方面的应用仍然有限。在视觉领域,注意力要么与卷积网络结合使用,要么用来替换卷积网络的某些组件,同时保持其整体结构不变。我们展示了在图像分类任务中,完全依赖CNNs并不是必需的,直接应用纯Transformer于图像块序列可以表现得很好。当在大量数据上进行预训练,并迁移到多个中型或小型图像识别基准数据集(如ImageNet、CIFAR-100、VTAB等)时,Vision Transformer(ViT)相较于最先进的卷积网络取得了出色的结果,同时需要较少的计算资源进行训练。

INTRODUCTION

自注意力机制的架构,尤其是Transformer(Vaswani等,2017),已经成为自然语言处理(NLP)中首选的模型。主要方法是在大规模文本语料库上进行预训练,然后在较小的任务特定数据集上进行微调(Devlin等,2019)。由于Transformer的计算效率和可扩展性,现在可以训练参数超过1000亿的规模空前庞大的模型(Brown等,2020; Lepikhin等,2020)。模型和数据集不断增大,性能仍然没有出现饱和的迹象。

然而,在计算机视觉领域,卷积架构仍然占主导地位(LeCun等,1989; Krizhevsky等,2012; He等,2016)。受到NLP成功的启发,多个研究尝试将类似CNN的架构与自注意力相结合(Wang等,2018; Carion等,2020),有些甚至完全替换卷积操作(Ramachandran等,2019; Wang等,2020a)。然而,后一种模型在现代硬件加速器上尺度化的效果并不理想,因为它们使用了专门的注意力模式。因此,在大规模图像识别中,像经典的ResNet架构仍然处于领先地位(Mahajan等,2018; Xie等,2020; Kolesnikov等,2020)。

受到Transformer在NLP中尺度化成功的启发,我们尝试直接将标准的Transformer应用于图像,最大程度地减少修改。为此,我们将图像分割成块,并将这些块的线性嵌入序列作为Transformer的输入。图像块被视为NLP应用中的标记(单词)。我们以监督方式在图像分类任务上对模型进行训练。

在像ImageNet这样的中等规模数据集上进行训练时,如果没有强大的正则化,这些模型的准确率稍低于相同规模的ResNet模型,差距只有几个百分点。这种看似令人沮丧的结果是可以预料的:Transformer缺乏一些卷积神经网络固有的归纳偏差,如平移等变性和局部性,因此在数据量不足的情况下无法很好地泛化。

然而,如果模型在更大的数据集(1400万至3亿张图像)上进行训练,情况将会改变。我们发现大规模训练胜过归纳偏差。当在足够规模的预训练后,将ViT迁移到较少数据点的任务上时,我们的视觉Transformer(ViT)取得了出色的结果。在预训练于公开的ImageNet-21k数据集或内部JFT-300M数据集之后,ViT在多个图像识别基准上接近或超过了最先进的模型。特别是,在ImageNet上达到了88.55%的准确率,在ImageNet-ReaL上达到了90.72%,在CIFAR-100上达到了94.55%,在VTAB套件的19个任务中达到了77.63%的准确率。

RELATED WORK

Transformer架构最初是由Vaswani等人(2017)提出的,用于机器翻译,并且后来成为许多自然语言处理任务中的最先进方法。通常情况下,大规模的基于Transformer的模型会在大型语料库上进行预训练,然后在具体任务上进行微调:BERT(Devlin等人,2019)使用去噪自监督预训练任务,而GPT系列则使用语言建模作为其预训练任务(Radford等人,2018; 2019; Brown等人,2020)。

直接将自注意力应用于图像会导致每个像素都要关注其他每个像素,而这样的计算成本与像素数量的平方成正比,因此无法适应实际输入尺寸。因此,在图像处理的上下文中应用Transformer时,过去尝试了几种近似方法。Parmar等人(2018)仅在每个查询像素的局部邻域中应用自注意力,而不是全局应用。这些局部的多头点积自注意块可以完全取代卷积操作(Hu等人,2019; Ramachandran等人,2019; Zhao等人,2020)。在另一方面的工作中,稀疏Transformer(Child等人,2019)采用可扩展的近似方法来应用全局自注意力,使其适用于图像。另一种扩展注意力的方法是按不同尺寸的块应用注意力(Weissenborn等人,2019),在极端情况下,仅沿着各个轴进行应用(Ho等人,2019; Wang等人,2020a)。许多这些专门的注意力架构在计算机视觉任务上展现出有希望的结果,但需要复杂的工程才能在硬件加速器上高效实现。

与我们最相关的是Cordonnier等人(2020)的模型,他们从输入图像中提取2×2大小的补丁,并在其上应用完全的自注意力。这个模型与ViT非常相似,但我们的工作进一步证明了大规模预训练使得原始的Transformer在与最先进的卷积神经网络竞争时具备竞争力,甚至更好。此外,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等人,2019)。

另一个最近相关的模型是图像GPT(iGPT)(Chen等人,2020a),它在降低图像分辨率和色彩空间后将Transformer应用于图像像素。该模型以无监督的方式作为生成模型进行训练,然后可以对其结果表示进行微调或进行线性探测以实现分类性能,ImageNet上达到72%的最高准确率。

我们的工作扩展了关于在比标准ImageNet数据集更大规模上进行图像识别的论文集。使用额外的数据源可以在标准基准测试中实现最先进的结果(Mahajan等人,2018; Touvron等人,2019; Xie等人,2020)。

此外,Sun等人(2017)研究了CNN性能随数据集大小的变化规律,Kolesnikov等人(2020)和Djolonga等人(2020)则对CNN从大规模数据集(例如ImageNet-21k和JFT-300M)进行迁移学习进行了实证探索。我们也专注于这两个数据集,但训练Transformer而不是先前工作中使用的基于ResNet的模型。

图1,模型概述:我们将图像分成固定大小的补丁,线性嵌入每个补丁,添加位置嵌入,并将得到的向量序列输入到标准的Transformer编码器中。为了进行分类,我们使用标准方法,在序列中添加一个额外可学习的“分类令牌”。Transformer编码器的示意图受到了Vaswani等人(2017)的启发。
在这里插入图片描述

METHOD

在模型设计中,我们尽可能地遵循了原始的Transformer(Vaswani等人,2017)。
这种刻意简化的设置的一个优点是,可扩展的NLP Transformer架构以及它们的高效实现几乎可以直接使用。

VISION TRANSFORMER (VIT)

该模型的概述如图1所示。标准Transformer接收一个1D序列的标记嵌入作为输入。为了处理2D图像,我们将图像x ∈ R H×W×C重塑为扁平化的2D图像块序列xp ∈ R N×(P 2 ·C),其中(H, W)是原始图像的分辨率,C是通道数,(P, P)是每个图像块的分辨率,N = HW/P2是生成的图像块数量,也是Transformer的有效输入序列长度。Transformer在所有层中使用固定的潜在向量大小D,因此我们将图像块扁平化,并使用可训练的线性投影(Eq. 1)将其映射到D维。我们将这个投影的输出称为图像块嵌入。

类似于BERT的[class]标记,我们在嵌入图像块序列之前添加一个可学习的嵌入(z 0 0 = xclass),其在Transformer编码器输出时的状态(z 0 L)作为图像表示y(Eq. 4)。在预训练和微调期间,将分类头连接到z 0 L。分类头在预训练时由一个带有一个隐藏层的MLP实现,在微调时只有一个线性层。

为了保留位置信息,我们将位置嵌入添加到图像块嵌入中。我们使用标准的可学习1D位置嵌入,因为我们没有观察到使用更高级的2D感知位置嵌入带来显著的性能提升(附录D.4)。得到的嵌入向量序列作为编码器的输入。

Transformer编码器(Vaswani et al, 2017)由多头自注意力(MSA,详见附录A)和MLP块(Eq. 2, 3)交替组成。在每个块之前应用LayerNorm(LN),在每个块后应用残差连接(Wang et al, 2019; Baevski & Auli, 2019)。

在这里插入图片描述

归纳偏差。我们注意到,相比于CNNs,Vision Transformer的图像特定归纳偏差要少得多。在CNNs中,局部性、二维邻域结构和平移等变性被整个模型的每一层都固定了下来。而在ViT中,只有MLP层是局部的和平移等变的,而自注意力层是全局的。二维邻域结构的使用非常有限:模型的开始阶段通过将图像分为图像块,并在微调时用于调整不同分辨率图像的位置嵌入(如下所述)。除此之外,在初始化时的位置嵌入不包含关于图像块的二维位置的信息,所有图像块之间的空间关系都必须从头开始学习。

混合架构。除了使用原始图像块作为输入序列,还可以使用CNN的特征图作为输入序列的形成方式(LeCun等人,1989年)。在这种混合模型中,将图像块嵌入投影E(Eq. 1)应用于从CNN特征图中提取的图像块。作为特殊情况,图像块的空间尺寸可以为1x1,这意味着输入序列是通过简单地压缩特征图的空间维度并投影到Transformer维度来获得的。

分类输入嵌入和位置嵌入按照上述描述进行添加。

FINE-TUNING AND HIGHER RESOLUTION

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

EXPERIMENTS

我们评估了ResNet、Vision Transformer(ViT)和混合模型的表示学习能力。为了了解每个模型的数据需求,我们在不同规模的数据集上进行预训练,并评估多个基准任务。考虑到模型预训练的计算成本,ViT的表现非常出色,在大多数识别基准上以较低的预训练成本达到了最先进的水平。最后,我们进行了一项小规模的自监督实验,并展示了自监督的ViT在未来有潜力。

实验设置 数据集

为了探索模型的可扩展性,我们使用了包含1,000个类别和1.3百万张图片的ILSVRC-2012 ImageNet数据集(下文简称为ImageNet),其超集ImageNet-21k包含21,000个类别和14百万张图片(Deng等人,2009),还有包含18,000个类别和3.03亿张高分辨率图片的JFT数据集(Sun等人,2017)。我们按照Kolesnikov等人(2020)的方法对预训练数据集进行了去重处理,以保证与下游任务的测试集无关。我们将在这些数据集上训练的模型迁移到几个基准任务上进行测试:ImageNet上的原始验证标签和经过清理的ReaL标签(Beyer等人,2020),CIFAR-10/100(Krizhevsky,2009),Oxford-IIIT Pets(Parkhi等人,2012)和Oxford Flowers-102(Nilsback&Zisserman,2008)。对于这些数据集,预处理按照Kolesnikov等人(2020)的方法进行。

在这里插入图片描述

在我们的评估中,我们还使用了包含19个任务的VTAB分类套件(Zhai等人,2019b)。VTAB评估了低数据传递到不同任务的能力,每个任务使用1,000个训练样本。这些任务分为三组:自然任务-像上面提到的任务、宠物、CIFAR等;专业任务-医学和卫星图像;结构化任务-需要几何理解的任务,如定位任务。

模型变体。我们基于BERT(Devlin等人,2019)使用的配置来构建ViT模型,如表1所示。"Base"和"Large"模型直接采用了BERT的配置,我们还添加了更大的"Huge"模型。以下是我们使用的简略记号表示模型规模和输入路径大小:例如,ViT-L/16表示具有16×16输入路径大小的"Large"变体。

需要注意的是,Transformer的序列长度与路径大小的平方成反比,因此具有较小路径大小的模型计算成本更高。

对于基准CNN,我们使用ResNet(He等人,2016),但将批归一化层(Ioffe&Szegedy,2015)替换为组归一化(Wu&He,2018),并使用标准化卷积(Qiao等人,2019)。这些修改提高了迁移性能(Kolesnikov等人,2020),我们将修改后的模型称为"ResNet (BiT)"。对于混合模型,我们将中间特征映射输入到输入路径大小为一个像素的ViT模型中。为了尝试不同的序列长度,我们要么(i)取普通ResNet50第4个阶段的输出,要么(ii)删除第4个阶段,将相同数量的层放在第3个阶段(保持总层数),并取扩展的第3个阶段的输出。选项(ii)会导致序列长度增加4倍,ViT模型的计算成本更高。

训练和微调。我们使用Adam(Kingma&Ba,2015)对所有模型进行训练,包括ResNets,设置β1 = 0.9,β2 = 0.999,批量大小为4096,并应用高权重衰减率0.1。我们发现这对于所有模型的迁移性能是有益的(附录D.1表明,与常规做法相反,在我们的设置中Adam相对于SGD稍微更好地工作于ResNets)。我们使用线性学习率预热和衰减,详见附录B.1。对于微调,我们对所有模型使用带动量的SGD,批量大小为512,详见附录B.1.1。对于表2中的ImageNet结果,我们在更高的分辨率上进行微调:ViT-L/16为512,ViT-H/14为518,并使用Polyak&Juditsky(1992)平均化因子为0.9999(Ramachandran等人,2019;Wang等人,2020b)。

指标。我们通过少样本或微调准确率报告下游数据集的结果。

微调准确率反映了在对应数据集上微调后每个模型的性能。少样本准确率是通过解决正则化最小二乘回归问题获得的,该问题将(冻结的)表示映射到{−1, 1} K目标向量的子集训练图像。这种形式允许我们以闭合形式恢复精确解。虽然我们主要关注微调性能,但有时我们使用线性少样本准确率进行快速的即时评估,以避免成本较高的微调过程。

COMPARISON TO STATE OF THE ART

根据作者给出的比较结果,ViT-H/14模型在自然和结构化任务上超过了BiT-R152x4模型以及其他方法的性能。而在专业任务上,前两个模型的性能相似。

此外,通过表2中的结果可以看出,使用JFT-300M预训练的较小的ViT-L/16模型在所有任务上都优于BiT-L模型,并且所需的计算资源更少。而更大的ViT-H/14模型在更具挑战性的数据集(如ImageNet、CIFAR-100和VTAB套件)上进一步提高了性能。有趣的是,这个模型的预训练计算成本仍远低于之前的最先进模型。

同时,作者也指出预训练效率可能不仅受架构选择的影响,还受其他参数(如训练计划、优化器、权重衰减等)的影响。他们在第4.4节中进行了对不同架构的性能与计算成本的控制研究。

图2将VTAB任务分解为各自的组,并与先前的SOTA方法进行了比较:BiT、VIVI(在ImageNet和Youtube上共同训练的ResNet)和S4L(在ImageNet上进行监督加半监督学习)。

总体而言,ViT-H/14模型在自然任务和结构化任务上优于其他方法,而在专业任务上与顶级模型的性能相当。

在这里插入图片描述

PRE-TRAINING DATA REQUIREMENTS

根据作者的研究结果,使用较大的JFT-300M数据集进行预训练对于Vision Transformer模型的性能至关重要。相比ResNet,Vision Transformer在视觉任务上没有那么多的归纳偏差,所以数据集的大小对于其表现非常关键。

作者进行了两组实验来验证这一点。

第一组实验中,他们将ViT模型分别在不断增大的数据集上进行预训练,包括ImageNet、ImageNet-21k和JFT-300M。为了提高在较小数据集上的性能,他们优化了三个基本的正则化参数:权重衰减、Dropout和标签平滑。图3展示了在微调到ImageNet后的结果(其他数据集的结果见表5)。当在最小的数据集ImageNet上进行预训练时,ViT-Large模型的性能相对于ViT-Base模型较差,尽管使用了(适度的)正则化。当使用ImageNet-21k进行预训练时,它们的性能相似。只有在使用JFT-300M进行预训练时,我们才能看到更大模型的完全优势。图3还显示了不同大小的BiT模型所覆盖的性能区域。在ImageNet上,BiT CNN优于ViT,但在更大的数据集上,ViT占据了领先地位。

第二组实验中,他们将模型训练在大小分别为9M、30M、90M以及完整的JFT-300M子集上。对于较小的子集,他们没有进行额外的正则化,并且使用相同的超参数设置。这样可以评估模型本身的特性,而不是正则化效果。然而,他们使用了提前停止,并报告了训练过程中达到的最佳验证准确率,为了节省计算资源,他们报告了少样本线性准确率而不是完整的微调准确率。图4展示了结果。相比具有相似计算成本的ResNet,在较小的数据集上,Vision Transformer模型更容易出现过拟合。例如,ViT-B/32比ResNet50稍快,但在9M子集上表现更差,而在90M+子集上表现更好。ResNet152x2和ViT-L/16也有类似的情况。这一结果进一步证实了卷积的归纳偏差对于较小的数据集非常有用,但对于更大的数据集来说,直接从数据中学习相关模式就足够甚至更有益处。

总体而言,ImageNet上的少样本结果(图4)以及VTAB上的低数据结果(表2)显示了Vision Transformer在非常低数据转移方面的潜力。对于Vision Transformer的少样本特性进行进一步分析是未来工作中令人兴奋的方向。

在这里插入图片描述

SCALING STUDY

在这项控制性的扩展研究中,作者通过评估从JFT-300M的迁移性能来对不同模型进行了评估。在这种情况下,数据大小并不限制模型的性能,并且我们评估了每个模型的预训练成本与性能之间的关系。模型集包括:7个ResNet模型,即R50x1、R50x2、R101x1、R152x1和R152x2,它们经过了7个周期的预训练;还有R152x2和R200x3,它们经过了14个周期的预训练;6个Vision Transformer模型,即ViT-B/32、B/16、L/32和L/16,它们经过了7个周期的预训练;还有L/16和H/14,它们经过了14个周期的预训练;以及5个混合模型,即R50+ViT-B/32、B/16、L/32和L/16,它们经过了7个周期的预训练;还有R50+ViT-L/16,它经过了14个周期的预训练(对于混合模型,模型名称末尾的数字代表的不是补丁大小,而是ResNet主干网络中总的下采样比率)。

图5显示了性能与总的预训练计算成本之间的关系(有关计算成本的详细信息请参见附录D.5)。每个模型的详细结果在附录的表6中提供。可以观察到一些规律。首先,Vision Transformer在性能/计算成本的平衡上超过了ResNet。ViT相比于ResNet使用大约2-4倍的计算资源达到相同的性能(在5个数据集上的平均值)。其次,在小的计算预算下,混合模型稍微优于ViT,但随着模型变大,差别逐渐消失。这个结果有些令人惊讶,因为人们可能会期望卷积局部特征处理对于任何大小的ViT都有所帮助。第三,Vision Transformer似乎在尝试的范围内还没有达到饱和,这激发了未来的扩展研究的动力。

INSPECTING VISION TRANSFORMER

根据研究结果,我们对Vision Transformer(ViT)的内部表示进行了分析,以开始理解它如何处理图像数据。Vision Transformer的第一层将扁平化的图像块线性投影到一个低维空间中。图7(左)显示了学习到的嵌入滤波器的前几个主要分量。这些分量类似于对每个图像块内部细节的低维表示的合理基函数。

投影后,模型会添加一个学习到的位置嵌入到图像块的表示中。图7(中)显示,模型通过位置嵌入的相似性来编码图像中的距离关系,即距离较近的图像块往往具有更相似的位置嵌入。此外,出现了行-列的结构;同一行/列的图像块具有相似的嵌入。最后,在较大的网格中有时还可以观察到正弦结构(附录D)。位置嵌入能够学习到表示二维图像拓扑结构,这解释了为什么手工设计的二维感知嵌入变体并没有带来改进(附录D.4)。

自注意力机制使得ViT在最浅的层中就能够整合整个图像中的信息。我们研究了网络在多大程度上利用了这种能力。具体来说,我们根据注意力权重计算了在图像空间中整合信息的平均距离,也被称为“注意力距离”(图7,右)。这个距离类似于CNN中的感受野大小。

研究发现,在最浅的层中,一些注意力头已经关注到了整个图像的大部分区域,这表明模型确实利用了全局整合信息的能力。其他注意力头在低层中的注意力范围较小。而对于在Transformer之前应用了ResNet的混合模型,这种高度局部化的注意力不太明显(图7,右),这表明它可能发挥了与CNN中早期卷积层类似的功能。此外,随着网络层数的增加,注意力距离也会增加。总体上,我们发现模型更关注与分类任务有语义相关性的图像区域(图6)。

在这里插入图片描述

SELF-SUPERVISION

Transformer在自然语言处理(NLP)任务中取得了令人印象深刻的性能。然而,它们的成功不仅源于其出色的可扩展性,也与大规模的自监督预训练有关(Devlin等,2019;Radford等,2018)。我们还对自监督训练中的掩码图像块预测进行了初步探索,类似于BERT中使用的掩码语言建模任务。通过自监督预训练,我们较小的ViT-B/16模型在ImageNet数据集上实现了79.9%的准确率,相比从头开始训练提高了2%,但仍比有监督预训练差4%。

附录B.1.2包含了更多细节内容。对于对比式预训练(Chen等,2020b;He等,2020;Bachman等,2019;Henaff等,2020),我们将其作为未来工作的探索方向。

CONCLUSION

我们已经探索了将Transformer直接应用于图像识别。与以往在计算机视觉中使用自注意力的方法不同,我们除了初始的图像块提取步骤之外,并未引入图像特定的归纳偏置到架构中。相反,我们将图像解释为一系列的图像块,并使用在NLP中使用的标准Transformer编码器进行处理。当与大规模数据集的预训练相结合时,这种简单但可扩展的策略表现出惊人的效果。

因此,Vision Transformer在许多图像分类数据集上与或超过了最先进的方法,同时预训练成本相对较低。

尽管初步结果是令人鼓舞的,但仍然存在许多挑战。其中一个挑战是将ViT应用于其他计算机视觉任务,如目标检测和分割。我们的结果与Carion等人(2020)的结果结合起来,显示了这种方法的潜力。另一个挑战是继续探索自监督预训练方法。我们的初步实验显示自监督预训练可以改善性能,但自监督预训练与大规模有监督预训练之间仍存在较大差距。最后,进一步扩展Vision Transformer可能会带来更好的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/57263.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Libevent开源库的介绍与应用

libeventhttps://libevent.org/ 一、初识 1、libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络&#xff…

RocketMQ 事务消息

事务消息是 RocketMQ 的高级特性之一 。这篇文章,笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。 1 应用场景 举一个电商场景的例子:用户购物车结算时,系统会创建支付订单。 用户支付成功后支付订单的状态…

微信小程序选项卡切换(滑动切换,点击切换)

效果如下&#xff1a;可点击切换&#xff0c;滑动切换 代码如下 这个可以在项目用 index.wxml <view classtopTabSwiper><view classtab {{currentData 0 ? "tabBorer" : ""}} data-current "0" bindtapcheckCurrent>选项一&…

警惕!中科院预警,Frontiers这本不被收录!2023年7月EI目录已更新!(附全年下载)

2023年7月EI期刊目录更新 爱思唯尔官网近日更新了EI期刊目录&#xff0c;此次更新是2023年7月1日&#xff0c;与上次更新&#xff08;2023年6月&#xff09;相比&#xff0c;有1本期刊名称在Serials&#xff08;连续出版&#xff09;列表中搜索不到&#xff0c;详情如下&#…

Java课题笔记~ 动态SQL详解

一、动态 sql 是什么&#xff1f; 1、动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中&#xff0c;开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。 例如&#xff0c;拼接时要确保添加了必要的空格&#xff0c;还要…

AgileBoot - 全栈项目启动

AgileBoot-Back-End: 基于Ruoyi做了大量重构优化的基础快速开发框架。采用Springboot Vue 3 Mybatis Plus 更面向对象的业务建模 面向生产的项目。&#xff08;非玩具项目&#xff09; 首先克隆代码&#xff0c;同是克隆前端和后端的代码。 前端代码启动&#xff1a; np…

阿里云容器服务 Serverless 版(ACK Serverless)全新升级

7 月 31 日&#xff0c;阿里云智能云原生应用平台负责人丁宇宣布&#xff0c;容器服务 Serverless 版 ACK Serverless 全新升级。 ACK Serverless&#xff1a;免运维、极致弹性的 K8s 全托管服务 阿里云在 2018 年发布了首个 Serverless 容器服务 ASK&#xff0c;其本质是将容…

音视频--DTMF信号发送及检测

参考资料 https://zh.wikipedia.org/wiki/%E5%8F%8C%E9%9F%B3%E5%A4%9A%E9%A2%91 1. DTMF是什么 1.1 DTMF定义 双音多频信号&#xff08;英语&#xff1a;Dual-Tone Multi-Frequency&#xff0c;简称&#xff1a;DTMF&#xff09;&#xff0c;电话系统中电话机与交换机之间…

list删除重复元素几种思路

文章目录 list删除重复元素几种思路hashsetStream流删除所有重复元素 list删除重复元素几种思路 hashset List<String> list2 new ArrayList<>();list2.add("a");list2.add("b");list2.add("a");Set<String> set new HashS…

uni-app 微信小程序自定义导航栏

一、效果图 二、导航栏的组成 上面的导航栏主要由状态栏&#xff08;就是手机电量显示栏&#xff09;和小程序的导航栏组成&#xff0c;android手机一般为48px&#xff0c;ios手机一般为44px 三、开发步骤 1、设置navigationStyle:custom {"path": "pages/v…

1.初识typescript

在很多地方的示例代码中使用的都是ts而不是js&#xff0c;为了使用那些示例&#xff0c;学习ts还是有必要的 JS有的TS都有&#xff0c;JS与TS的关系很像css与less ts在运行前需要先编译为js&#xff0c;浏览器不能直接运行ts 目录 1 编译TS的工具包 1.1 安装 1.2 基本…

【力扣】 12. 整数转罗马数字 模拟

力扣 12. 整数转罗马数字 解题思路 当某个位数的某个数不为4或9时&#xff0c;高位对应的字符总是在低位对应的字符前面。只有当该数为4或9时&#xff0c;低位对应的字符在高位前面。 根据这一特性&#xff0c;我们进行分类讨论。 1.当数为4时&#xff0c;则对应的罗马数为 10 …

有多卷?智慧金融可视化大屏可以这样子

科学技术不断发展&#xff0c;数字化转型不断加快&#xff0c;智慧金融正成为金融业的新引擎。数字孪生、大数据、物联网等新一代信息技术在推动智慧金融更加强调效率、优化精准营销。数据可视化大屏如何为金融单位提供低代码、定制化的服务&#xff0c;让金融单位的数据可视、…

SOME/IP学习笔记1

SOA概念 在SOA中,每个服务就好像我们每一个人在社会中扮演的角色,在对别人提供着服务的同时,同时也享受着别人提供出来的服务,人与人之间,既是彼此独立的,又是需要互相通讯的。服务提供者将功能具象为一组接口,这样使用者就能知道如何调用服务,完成某件事情,得到某个…

文心一言 VS 讯飞星火 VS chatgpt (70)-- 算法导论6.5 9题

九、请设计一个时间复杂度为 (n lgk)的算法&#xff0c;它能够将 k 个有序链表合并为一个有序链表&#xff0c;这里 n 是所有输入链表包含的总的元素个数。(提示:使用最小堆来完成 k 路归并。 文心一言&#xff1a; 要设计一个时间复杂度为 O(n log k) 的算法&#xff0c;将 …

RabbitMQ快速入门

文章目录 1、RabbitMQ的概述1.1、什么是消息队列&#xff1f;1.2、为什么要使用消息队列&#xff1f;1.3、RabbitMQ的特点&#xff1a; 2、RabbitMQ的安装2.1 下载与安装2.2 常用命令 3、RabbitMQ消息发送和接受3.1 消息发送和接受机制3.2 AMQP的消息路由3.3 Exchange(交换机)的…

该选择WPF 还是 Winform?

WPF和WinForms都是.NET平台下的桌面应用程序开发框架&#xff0c;它们各有特点&#xff0c;适用于不同的场景和需求。下面是对WPF和WinForms的一些比较和优劣势&#xff1a;WPF&#xff08;Windows Presentation Foundation&#xff09;&#xff1a;WPF具有强大的图形渲染能力&…

UML—用例图的那些事

目录 背景: 1.用例图的发展史 过程: 1.用例图中的元素和关系 2.应用中的例子 总结&#xff1a; 背景: 1.用例图的发展史 用例图是一种常用的软件工程工具&#xff0c;用于描述系统的功能需求和用户与系统的交互。它在软件开发过程中起到了重要的作用&#xff0c;并且经历了…

使用Vue+CSS实现汉堡图标过渡为叉号图标,有点意思

前言 本文给大家分享三个具有过渡效果的汉堡图标&#xff0c;当点击汉堡图标时&#xff0c;过渡为叉号图标。这种具有过渡特效的图标挺炫酷的&#xff0c;感觉一下子给网页增加一点新颖特色。早在2015年左右&#xff0c;国外挺多优秀门户网站都有使用类似的图标&#xff0c;那…

学无止境·运维高阶③(Mysqldump脚本)

Mysqldump脚本 1、详细脚本2、执行 1、详细脚本 #!/bin/bash mysql_cmd‘-uroot -pRedHat123’ exclude_db‘information_schema|performance_schema|sys’ bak_path/backup/db mysql m y s q l c m d − e ′ s h o w d a t a b a s e s ′ − N ∣ e g r e p − v " {m…