欢迎光临
我们一直在努力

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

标记说明

名词解释背景关键过程结论

一幅图像相当于16×16个词汇:大规模图像识别中的Transformer应用

1 引入

Patch(图像块): 是ViT模型中最基本、最核心的处理单元。将一张完整的图片,规则地切成一个个小方块,每个小方块就是一个Patch。

背景:基于自注意力机制的架构,特别是Transformer模型,已成为自然语言处理领域的首选模型。主流方法是在大规模文本语料库上进行预训练,随后在特定任务的较小数据集上进行微调。然而在计算机视觉领域,卷积架构仍占据主导地位。受自然语言处理领域成功的启发,多项研究尝试将类CNN架构与自注意力机制相结合,部分研究甚至完全替代了卷积操作。尽管这些替代模型在理论上具有高效性,但由于采用了特殊的注意力模式,尚未在现代硬件加速器上实现有效的规模化扩展。因此,在大规模图像识别任务中,经典的类ResNet架构仍保持着最先进的性能水平。

硬件友好性 > 理论复杂度:ViT 证明了,一个理论上计算量更大,但结构极度规整的模型,在现代硬件上的实际运行速度和扩展性,远胜于一个理论计算量小,但结构不规则的模型。大规模矩阵乘法是硬件加速器的“拿手好戏”。

ViT:我们将图像分割为若干图块(16×16的patch,从而减少元素数量,不然像素224×224序列太长了),并将这些图块的线性嵌入序列作为Transformer的输入。图像块的处理方式与自然语言应用中的词元(单词)相同。我们以监督学习方式(视觉一般都用有监督)训练模型进行图像分类任务。

中等规模数据集上取得的准确率比同等规模的ResNets模型低,原因是Transformer缺乏卷积神经网络固有的归纳偏置特性(例如平移等变性和局部性),因此在数据量不足时泛化能力较弱

当模型在更大规模数据集(1400万至3亿张图像)上训练时,情况发生了转变。我们发现大规模训练能够超越归纳偏置的局限。当视觉Transformer(ViT)经过充分规模的预训练后迁移至数据量较少的任务时,取得了优异的表现。

归纳偏置:是指学习算法中,那些超越当前训练数据、引导模型朝着某一类解决方案进行泛化的任何一组假设。作用:引导学习,提高数据效率,增强泛化能力(在假设正确的前提下)。卷积中常见的有两种:局部性(相邻区域有相邻特征,靠得很近的区域相关性会更强。比如桌子和椅子经常同时出现)、平移等变性

线性嵌入序列

“序列”:Transformer是为一维序列(如句子)设计的。ViT把2D图像切割成固定大小的图像块,并按顺序(如从左到右、从上到下)排列,从而得到一个块序列。

“嵌入”:每个图像块本身只是一组RGB像素值,是“低级”数据。“嵌入”指将这些数值映射到一个高维向量空间,这个向量可以携带更丰富、更抽象的语义信息。

“线性”:这个映射过程通过一个简单的线性变换(即一个全连接层)完成。公式为:向量 = 图像块像素矩阵 × 权重矩阵。

假设一个图像块为16x16x3(共768个像素值)。ViT 会用一个可训练的权重矩阵,将这个768维的像素向量,一次性投影到一个更高的维度(例如768维或1024维),生成一个嵌入向量。所有图像块依次处理后,就得到了一个“线性嵌入序列”。

监督学习方式

核心定义:指模型通过大量 “输入-输出”配对数据进行训练。其中“输入”是原始数据(如图片),“输出”是已知的、正确的标签(如“猫”、“狗”)。依赖人工标注的标签。

在ViT中的体现:在预训练阶段,模型输入是数百万张图像,每个输入都有一个真实的类别标签。模型的任务是预测这个标签。通过计算预测结果与真实标签之间的误差(损失),并反向传播更新权重,模型逐步学会从图像中提取与类别相关的特征。

泛化能力:指训练好的模型在从未见过的、新的数据上依然能做出准确预测或决策的能力。论文明确指出,因为Transformer缺乏CNN的归纳偏置(局部性、平移等变性),在数据不足时,它更容易过拟合,表现为泛化能力显著弱于ResNet。然而,当在极大规模数据上预训练后,ViT 学到了更通用、更本质的规律,从而在众多新任务上表现出极强的泛化能力

泛化能力差是过拟合的直接表现。

2 相关工作

大型语料库:BERT:完形填空、GPT:预测下一个词

视觉

【1】直接在像素层面应用transformer,把每一个像素点作为一个元素——序列过长。

降低序列:尽管这些专用注意力架构在计算机视觉任务中展现出潜力,但其在硬件加速器上的高效实现仍需复杂的工程优化。

【2】将自注意力机制限制在每个查询像素的局部邻域内而非全局范围。此类局部多头点积自注意力模块可完全替代卷积操作。

【3】稀疏Transformer:只对稀疏的点做transformer,只是全局注意力的近似。

【4】用到不同的块上/轴注意力

与我们的研究最为相关的是Cordonnier等人(2020)提出的模型,该模型从输入图像中提取大小为2×2的图像块,并在其基础上应用完整的自注意力机制。该模型与ViT极为相似,但我们的研究进一步证明,大规模预训练能使原始Transformer模型与当前最先进的卷积神经网络(CNN)相竞争(甚至表现更优)。此外,Cordonnier 等人(2020)使用了2×2像素的小尺寸图像块,这导致其模型仅适用于低分辨率图像,而我们的方法还能处理中等分辨率图像。

image GPT(iGPT)

3 方法

3.1 ViT

【1】给定一张图,打成很多patch(例如16×16),接着把patch变成一个序列。每个patch通过线性投射层得到特征。同时给patch embedding加上position embedding位置编码,让每个token包括图像和位置信息。对这些token放入transformer encoder,将class分类字符拿去作为最后的输出,进入MLP分类头进行判断。(cls 在自注意力的时候学到其余所有字符的信息)

模型概览如图1所示。标准Transformer接收一维词符嵌入序列作为输入。为处理二维图像,我们将图像x ∈ ℝ^(H×W×C)【224*224*3】重塑为展平的二维图像块序列x_p ∈ ℝ^(N×(P²·C)),【每个图像块的维度(P²·C):16×16×3=768,矩阵为196×768】其中(H, W)为原始图像分辨率,C为通道数,(P, P)为每个图像块的分辨率,N = HW/P²【224×224/16^2=196】为处理后得到的图像块数量,该数值同时作为Transformer的有效输入序列长度。Transformer在所有层中均使用恒定潜在向量维度D,因此我们将图像块展平后通过可训练的线性投影映射(全连接层)至D维空间(公式1)。该投影输出结果称为图像块嵌入。

类似于BERT的[class]词符,我们在嵌入图像块序列前添加一个可学习的嵌入向量(z₀⁰ = x_class),该向量在Transformer编码器输出端的状态(z_L⁰)作为图像表征y(公式4)。在预训练与微调阶段,均将分类头连接至z_L⁰。分类头在预训练阶段采用带单隐藏层的多层感知机实现,微调阶段则使用单一线性层实现。

【2】patch先和全连接层做转换的到patch embedding。“E” 指的是将图像块投影到嵌入空间的“块嵌入矩阵”。全连接层的维度为E:【768×768(D)】,patch embedding :X*D矩阵相乘,196×768。即有196个token,每个token向量的维度是768,又因为最开头有一个cls token【1×768】,最后在所有token上加上位置信息(维度也是768(D))。那么最后进入transformer的序列长度是197×768。

【3】patch先进入LayerNorm,再进多头自注意力,若有12个头,kqv 则都是768/12=64的维度,即197×64,最后将输出拼接,又得回768。然后进LayerNorm,再过一层MLP(先升维,再投射回去),最后出来还是197×768。

前归一化的优势:梯度传播路径更平滑

在 Post-LN 中,最后一个层归一化位于整个块的末端。这意味着梯度必须先通过这个归一化层,才能传回更早的层。在深层网络中,这会加剧梯度消失或爆炸问题。

在 Pre-LN 中,任何子层(自注意力或MLP)的输入都先被归一化。梯度可以直接通过残差路径(图中的“捷径”)无阻碍地回流,而主干路径上的操作(LN、MSA、MLP)则提供了可学习的变换。这有效缓解了深度网络的梯度问题。

ViT 仅在模型开始时将图像切割成小块,以及在微调时调整不同分辨率图像的位置嵌入的时候运用了CV的技术。

3.2 微调与更高分辨率

通常,我们在大型数据集上对ViT进行预训练,然后针对(规模较小的)下游任务进行微调。在此过程中,我们会移除预训练的预测头,并附加一个零初始化的D×K前馈层,其中K代表下游任务的类别数量。相较于预训练阶段,采用更高分辨率进行微调往往能带来更好的效果。

当输入更高分辨率的图像时,我们保持图像块尺寸不变,这将导致有效序列长度增加。虽然Vision Transformer能够处理任意长度的序列(受内存限制),但预训练得到的位置嵌入可能不再具有实际意义。因此,我们根据原始图像中的位置信息,对预训练的位置嵌入进行二维插值处理。需要注意的是,这种分辨率调整与图像块提取是唯一需要手动向Vision Transformer注入关于图像二维结构归纳偏置的环节。

预测头

位置:位于整个Transformer编码器栈的最后、最外层。它处理的是[class] token的最终输出向量。是由全连接层组成的。

作用:将[class] token所承载的、经过编码器充分提炼的全局图像特征,映射到具体的任务输出空间(如ImageNet的1000个类别)。预测头是任务特定的。换任务就必须更换或重新初始化它。

零初始化:是绝大多数情况下的默认之选,特别是下游任务和预训练任务本质相似时。对应的是随机初始化(预训练的时候用。初始化策略的目标,是在训练开始时,为网络提供一组能够有效打破对称性并允许梯度稳定传播的起点参数。在预训练时必须用随机初始化来打破对称性)将新分类头的权重全部设为0,避免初始扰动,实现温和学习。微调阶段时,保护主干网络的已有知识(避免初始噪声扰动)比打破新头的对称性更重要。

前馈层(就是全连接层):在编码器内部、用于特征变换的前馈层,我们叫它 MLP 模块;在模型最末端、用于产生任务输出的前馈层,我们叫它预测头。

二维插值:核心是将位置编码从预训练时的小图网格坐标,按比例、平滑地转换到微调时的大图网格坐标。坐标网格的按比例缩放 + 位置编码向量的平滑重采样

4 实验

我们评估了ResNet、视觉变换器(ViT)以及混合模型在表征学习方面的能力。为了解各模型对数据量的需求,我们在不同规模的数据集上进行预训练,并在多个基准任务上进行评估。当考虑模型预训练的计算成本时,ViT表现尤为出色,以较低的预训练成本在多数识别基准测试中达到了最先进的水平。最后,我们进行了一项小规模的自监督学习实验,结果表明自监督ViT在未来具有广阔的应用前景。

4.1

模型变体,Transformer的序列长度与图像块大小的平方成反比,因此图像块尺寸较小的模型在计算上更为昂贵。

4.3 数据集规模

图三当在最小的数据集ImageNet上进行预训练时,尽管进行了(适度)正则化,ViT-Large 模型的表现仍不及ViT-Base模型。而在ImageNet-21k预训练后,两者的性能相近。只有在JFT-300M上,我们才能看到更大模型的全部优势。图3还展示了不同尺寸的BiT模型所覆盖的性能区域。在ImageNet上,BiT 卷积神经网络的表现优于ViT(原因就是没有用那些归纳偏置),但在更大的数据集上,ViT 实现了反超

图四(linear evaluation线性评估,衡量模型学的特征表示质量的标准方法):在计算成本相当的情况下,视觉变换器在较小数据集上的过拟合程度高于残差网络。卷积归纳偏置在较小数据集上具有优势,而对于更大规模的数据集,直接从数据中学习相关模式不仅足够,甚至更为有益。

图五:首先,在性能与计算量的权衡中,视觉变换器明显优于ResNet。ViT达到相同性能(在5个数据集上的平均值)所需的计算量大约减少2至4倍。其次,在计算预算较小的情况下,混合模型略优于ViT,但对于更大的模型,这种差异逐渐消失。这一结果有些出乎意料,因为人们可能预期卷积局部特征处理在任何规模的ViT中都能提供帮助。第三,ViT 在尝试的规模范围内似乎未达到饱和,这为未来的规模扩展研究提供了动力。

4.5

图7左:尽管ViT没有任何卷积归纳偏置,但它通过纯粹的数据驱动,在训练的第一层就自动学习到了与CNN相似的、具有局部性和方向性的基础特征。

图7中(位置编码相似性 ):这是一个热力图,展示了[CLS]标记之外的所有位置嵌入向量之间的余弦相似度。

2D结构:热力图中出现了明显的网格状和带状模式。这表明,在向量空间中,相邻行、相邻列的位置嵌入彼此最相似。

核心结论:模型学习到的1D位置编码,并非任意的顺序,而是隐式地编码了图像块的2D空间邻接关系。这从经验上解释了为什么简单的1D位置编码足够有效,以及为什么在微调时进行2D插值是合理且有效的——因为位置嵌入本身就构成了一个2D结构的知识表示

图7右:纵轴:平均注意力距离=两点实际距离×注意力权重,自注意力在最底层就已经有了全局性,有的注意力头就能注意到全局信息,而越来越深,网络学习到的东西越来越具有语义信息。最后注意力距离都很远,说明学到了语义性信息,而不是靠邻近的像素点去判断。

图6:模型已经能关注到和分类有关的区域。

4.6 自监督

监督学习:数据有人工标注的、明确的标签,数据有人工标注的、明确的标签。

无监督学习:数据没有任何标签。模型的目标是发现数据中潜在的结构、模式或分布。模型自行寻找数据点之间的相似性、聚类或如何进行有效压缩。

自监督学习:没有人工标签,但利用数据自身的信息,构造出一个“伪标签”或“预测任务”。这是一种特殊的无监督学习,但它巧妙地为自己创造了“监督信号”。它包含两个阶段:

前置任务:通过算法设计,从原始数据中生成“题目”和“答案”。例如,把图片的一部分遮住(题目),让模型预测被遮住的部分(答案)。

主干学习:模型通过完成这个前置任务,被迫学习到对数据有用的通用表征(例如,为了预测被遮的猫耳朵,它必须理解猫的整体结构)。

在ViT中的应用:论文最后探索的 “掩码图像块预测” 就是典型的自监督。它没有用“猫”这个标签,而是把图像块遮住,让模型去猜原始像素。通过完成这个任务,模型也能学到有用的特征

优点:能利用海量无标签数据,学习到的表征往往非常通用、鲁棒。

缺点:前置任务的设计需要巧思,且学习到的表征迁移到具体下游任务(如分类)时,可能不如直接的有监督学习精准高效(这也解释了为什么ViT的自监督结果比有监督低4%)。

5 结论

我们探索了将Transformer直接应用于图像识别的方法。与先前在计算机视觉中使用自注意力机制的研究不同,除了初始的图像块提取步骤外,我们并未在架构中引入任何图像特定的归纳偏置。相反,我们将图像解释为一系列图像块,并通过自然语言处理中使用的标准Transformer编码器进行处理。这种简单而可扩展的策略,在结合大规模数据集预训练时,表现出惊人的效果。因此,视觉Transformer在许多图像分类数据集上达到或超越了现有技术水平,同时预训练成本相对较低

论文中“训练成本低”:不是指数据需求低,而是指在达到相同或更高性能时,所消耗的计算资源更少。对于谷歌这样的大公司获取数据的成本很低,而计算资源和电力才是巨大开销。

当我们讨论AI模型的“训练成本”时,通常具体指以下几个可量化的维度:

计算量(核心指标)、内存占用、实际训练时间、数据需求。

ViT 应用于其他领域的挑战:

【1】应用于其他CV:检测和分割

【2】继续探索自监督预训练方法。

【3】进一步扩展ViT的规模可能会带来性能的提升。

附录A

附录B

附录C

附录D

D.3

用全局平均池化和cls标记其实效果差不多,但是要进行调参。

D.4 位置编码

【1】1D:1 2 3……

【2】2D:

11 12 13

21 22 23,【类似于矩阵】分别用D/2的长度去表示横纵坐标,最后依然合为D

【3】相对位置编码。结果发现3种差不多

赞(0)
未经允许不得转载:171主机测评 » ViT:AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE 论文精读
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址