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

news2024/12/24 2:28:46

必看文章: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可能会带来更好的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【微信小程序】保存多张图片到本地相册

<template><view class"container"><u-swiper :list"list" circular radius0 indicator indicatorModedot height950rpx></u-swiper><view class"btn btn2" click"saveFun">保存到相册</view><…

【MySQL】当前读和快照读

文章目录 当前读快照读 在学习 MVCC 多版本并发控制之前&#xff0c;必须先了解一下&#xff0c;什么是 MySQL InnoDB 下的 当前读和 快照读? 当前读 读取的是记录的最新版本&#xff0c;读取时还要保证其他并发事务不能修改当前记录&#xff0c;会对读取的记录进行加锁。对…

Rocky(centos) jar 注册成服务,能开机自启动

概述 涉及&#xff1a;1&#xff09;sh 无法直接运行java命令&#xff0c;可以软连&#xff0c;此处是直接路径 2&#xff09;sh脚本报一堆空格换行错误&#xff1a;需将转成unix标准格式&#xff1b; #切换到上传的脚本路径 dos2unix 脚本文件名.sh 2&#xff09;SELINUX …

Ubuntu18.04安装ROS

ROS 安装前的准备 &#xff08;1&#xff09;为了安装顺利使用国内下载源&#xff0c;&#xff08;我个人linux使用了代理&#xff09; 清华大学源 sudo sh -c ‘. /etc/lsb-release && echo “deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENA…

第四讲:利用ADO方式连接Access数据库

【分享成果&#xff0c;随喜正能量】最值得信赖的&#xff0c;其实是自己从孤独中得来的东西&#xff0c;而不是别人给予自己的东西。每个人都是一座孤岛&#xff0c;有些人一生都在想要逃离这座岛&#xff0c;有些人一生都在创造并丰富自己这座岛。。 《VBA数据库解决方案》教…

水环境地质3D可视化综合管理软件提高运维效率

谈起数字孪生技术&#xff0c;总让人兴奋不已&#xff0c;这种将物理实体的数字化模型与实际物理实体相结合、以虚控实的技术&#xff0c;是数字化转型和第四次工业革命的重要载体&#xff0c;那么在地质行业中&#xff0c;数字孪生有哪些应用场景? 在地质勘探中&#xff0c; …

潜在客户生成最实用指南,你还在等什么?

潜在客户是指对您的产品或服务表现出兴趣的人&#xff0c;它们提供个人识别信息&#xff0c;您的团队可以使用这些信息来跟进他们。随着越来越多的营销渠道涌现&#xff0c;接触新客户和开展有效的潜在客户生成活动变得越来越困难。赢得新的潜在客户听起来很困难&#xff0c;但…

【B/S手术麻醉系统源码】手术麻醉管理系统在临床中的应用

手术麻醉管理系统是临床麻醉工作中一个不容忽视的环节&#xff0c;麻醉医生必须对病人在麻醉手术过程中的情况与体征变化&#xff0c;采取的处理措施及术后随访等全过程作出及时、真实、确切的记录。麻醉记录不仅有助于确保临床麻醉准确&#xff0c;总结经验教训&#xff0c;提…

kcc呼叫中心语音转写功能

呼叫中心是客户和企业之间沟通的一个桥梁&#xff0c;也是客户服务和客户关系的一个重要组成部分。通过呼叫中心&#xff0c;企业可以建立起一个以客户为中心的服务模式&#xff0c;为客户提供高质量、高效率的服务&#xff0c;对于塑造企业形象&#xff0c;提高客户满意度&…

txt替换字符为换行

txt替换字符为换行 txt如何批量将同一个符号替换成换行符 2023-01-26 03:16:03 有时候看到网页有些排列的很整齐的文本想复制使用&#xff0c;可是复制下来放到txt后不分行&#xff0c;要么就是中间隔着一些公用的符号。那么我们怎么才能快速的让文本按原来的形式分行显示在…

一百三十九、Kettle——Linux安装Kettle8.2

一、目的 为了方便海豚调度kettle任务&#xff0c;在Linux上安装kettle 二、kettle版本与前提 版本&#xff1a;kettle8.2 pdi-ce-8.2.0.0-342 前提&#xff1a;Linux已经安装好jdk 三、安装步骤 &#xff08;一&#xff09;打开安装包所在地 [roothurys22 ~]# cd …

让SpringBoot不再需要Controller、Service、DAO、Mapper,卧槽!这款工具绝了

Dataway 是基于 DataQL 服务聚合能力&#xff0c;为应用提供的一个接口配置工具&#xff0c;使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布&#xff0c;一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中…

小鹏遭遇“动荡”,自动驾驶副总裁吴新宙离职,现已完成团队过渡

根据最新消息&#xff0c;小鹏汽车的自动驾驶副总裁吴新宙宣布将加入全球GPU芯片巨头英伟达。吴新宙将成为该公司全球副总裁&#xff0c;直接向英伟达全球CEO黄仁勋汇报。小鹏汽车董事长何小鹏和吴新宙本人已在微博上确认该消息&#xff0c;并解释离职原因涉及家庭和多方面因素…

拿捏--->逻辑推断问题(猜凶手+猜名次)

文章目录 猜凶手问题题目描述算法思路代码实现 猜名次问题题目描述算法思路代码实现 猜凶手问题 题目描述 算法思路 代码实现 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() {char killer 0;for (killer A; killer < D; killer){if ((killer ! …

Rpc异步日志模块

Rpc异步日志模块作用 在一个大型分布式系统中&#xff0c;任何部署的分布式节点都可能发生崩溃&#xff0c;试想如果用普通的办法&#xff0c;即先排查哪个节点down掉了&#xff0c;找到down掉的节点后采取调试工具gdb调试该节点&#xff0c;进而排查宕机的原因。这中排查方法…

Redis的缓存、消息队列、计数器应用

目录 一、redis的应用场景 二、redis如何用于缓存 三、redis如何用于消息队列 四、redis如何用于计数器 一、redis的应用场景 Redis在实际应用中有广泛的应用场景&#xff0c;以下是一些常见的Redis应用场景&#xff1a; 缓存&#xff1a;Redis可以用作缓存层&#xff0c;…

高性能远程通信框架grpc基本使用

文章目录 一、了解grpc二、关于protobuf三、试玩grpc3.1整个工程目录3.2 proto文件编写3.3 使用maven protobuf插件转换.proto文件3.4 Grpc服务端业务实现类3.5 pom参考3.6 grpc client调用 一、了解grpc 谷歌开源远程进程调用框架&#xff0c;支持多语言系统间通信&#xff0…

百分点科技跻身中国智慧应急人工智能解决方案市场前三

近日&#xff0c; 全球领先的IT市场研究和咨询公司IDC发布了《中国智慧应急解决方案市场份额&#xff0c;2022》报告&#xff0c;数据显示&#xff0c;2022年中国智慧应急整体市场为104亿元人民币。其中&#xff0c;智慧应急人工智能解决方案子市场备受关注&#xff0c;百分点科…

小主机折腾记16

7月折腾了 1.2500s&#xff0c;2550k&#xff0c;e3 1225的性能测试 结果如下图 总结如下&#xff1a; a.2500s e3 1225 2390t 差别不大 b.1333频率相对1066频率内存提升12%左右 c.为什么少了2550k&#xff0c;因为装上去风扇尬转&#xff0c;没画面&#xff0c;我猜是因为…

Shell脚本学习-Shell函数

函数的作用就是将程序里多次被调用的相同代码组合起来&#xff08;函数体&#xff09;&#xff0c;并为其取一个名字&#xff0c;即函数名。其他所有想重复调用这部分代码的地方都只需要调用这个名字就可以了。当需要修改这部分代码时候&#xff0c;只需要修改函数体内的这部分…