[机器视觉][VIT]AN IMAGE IS WORTH 16X16 WORDS TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE

下图简要描述了 ViT 的工作流程:

  • 背景:本文发于2020年,彼时Transformer已经成为自然语言处理中的主流架构,而在计算机视觉中,CNN仍然占主导地位。作者提出纯Transformer可以替代CNN,用于图像识别任务。利用transformer的全局联系特性,可以有效的将图片作为一个整体进行判断,更好的进行推理判断。

    • 相关研究的发展进程

      Naive application of self-attention to images would require that each pixel attends to every other pixel. With quadratic cost in the number of pixels, this does not scale to realistic input sizes. Thus, to apply Transformers in the context of image processing, several approximations have been tried in the past. Parmar et al. (2018) applied the self-attention only in local neighborhoods for each query pixel instead of globally. Such local multi-head dot-product self attention blocks can completely replace convolutions (Hu et al., 2019; Ramachandran et al., 2019; Zhao et al., 2020). In a different line of work, Sparse Transformers (Child et al., 2019) employ scalable approximations to global selfattention in order to be applicable to images. An alternative way to scale attention is to apply it in blocks of varying sizes (Weissenborn et al., 2019), in the extreme case only along individual axes (Hoet al., 2019; Wang et al., 2020a). Many of these specialized attention architectures demonstrate promising results on computer vision tasks, but require complex engineering to be implemented efficiently on hardware accelerators.

      1.自注意力机制的计算复杂度问题

      自注意力机制最初是为自然语言处理(NLP)任务设计的,用于处理一维的序列数据(如句子中的词)。在图像处理中,图像是二维的,每个像素都可以看作是一个特征点。如果将原始的自注意力机制直接应用到图像上,每个像素 都需要和 图像中的每个其他像素 进行交互。由于图像通常包含成千上万的像素,这会导致 计算量呈二次增长(O(N²)),其中 NNN 是图像中的像素数。这种二次增长的计算量使得自注意力机制难以扩展到现实中高分辨率的大型图像处理任务,因为计算资源和时间的需求会非常高。

      2. 已有的近似方法

      为了应对上述问题,研究者们提出了一些近似方法,以降低自注意力机制的计算成本,使其能够更高效地应用于图像处理。

      局部自注意力(Local Self-Attention)

      方法:Parmar 等人(2018年)的工作提出,将自注意力机制只应用于每个查询像素的 局部邻域,而不是让每个像素与所有像素进行全局交互。

      优点:通过限制每个像素只能与邻近像素交互,极大地减少了计算复杂度,同时保留了局部图像特征的捕捉能力。

      类似于卷积:这种方式类似于卷积操作,因为卷积核只在局部区域内滑动。这种局部自注意力机制甚至可以完全替代卷积(如 Hu 等人,2019年,Ramachandran 等人,2019年,Zhao 等人,2020年提出的工作),实现类似卷积的特性。

      稀疏自注意力

      方法:Child 等人(2019年)的 稀疏自注意力 通过引入稀疏矩阵,只计算部分像素之间的注意力,减少了需要计算的交互对数。

      优点:稀疏化的自注意力机制能够在减少计算成本的同时,仍能保持良好的全局特征捕捉能力。

      适用于图像:这种方法可以应用于图像,因为图像中的远距离像素并不总是需要频繁交互,稀疏机制可以有效减少不必要的计算。

      分块注意力(Block-wise Attention)

      方法:Weissenborn 等人(2019年)提出了一种 分块注意力机制,将图像分成大小不同的块,并对这些块分别进行自注意力计算。这种方法有时仅沿着某个轴(如行或列)应用自注意力机制,极端情况下甚至只沿单个轴计算注意力(Ho 等人,2019年;Wang 等人,2020年)。

      优点:通过在不同大小的块上应用自注意力机制,这种方法减少了需要全局交互的计算量,同时仍然能够捕捉到图像中的全局和局部特征,但其只在块内部进行运算,与VIT有本质差别。

      3. 工程实现的复杂性

      尽管这些方法在降低计算复杂度的同时,仍能够取得令人印象深刻的视觉任务效果,但它们通常需要复杂的工程设计才能在现代硬件加速器(如 GPU 或 TPU)上高效运行。

      例如,局部自注意力、稀疏自注意力或分块注意力的实现都涉及对注意力计算模式的高度定制化,需要在硬件加速器上进行有效部署,增加了实现的难度。

  • 模型架构

  • 图像分割为块:首先,将输入的二维图像划分为固定大小的图像块(patches),每个块的尺寸为 16×1616 \times 1616×16 像素(该尺寸在不同变体中可调整,例如 14×1414 \times 1414×14 或 32×3232 \times 3232×32 )。每个块都被展平为一个一维向量,这样原始图像就可以被表示为一系列图像块。

  • 线性嵌入(Linear Embedding):将每个展平的图像块通过一个线性投影层嵌入到固定维度的向量空间(例如 768 维度),这些嵌入向量会被当作 Transformer 的输入序列。该过程类似于在 NLP 中将词嵌入(word embedding)输入到 Transformer。

  • 位置嵌入(Position Embedding):由于图像块的顺序是任意的,需要添加位置嵌入来保留图像中各块的相对位置信息。位置嵌入会被添加到每个图像块的线性嵌入上,帮助模型理解图像的空间结构。

  • 分类标记(Class Token):与 BERT 模型类似,ViT 在输入序列的开头引入了一个额外的可训练的分类标记 [class] token。这一标记通过自注意力机制参与整个图像的处理,最后它的输出向量将被用作图像的全局表示,用于分类任务。

  • Transformer 编码器

    • 多头自注意力(Multi-Head Self-Attention, MSA):每个图像块都会通过多头自注意力机制与其他图像块进行信息交互。自注意力机制能够帮助模型聚合全局图像信息,而不是像 CNN 那样局限于局部区域。
    • 层归一化(Layer Normalization, LN):在每个注意力和 MLP 模块之前进行归一化。
    • 前馈网络(MLP Block):在每个自注意力模块之后跟随一个前馈神经网络,通常包含两个全连接层和 GELU 激活函数。整个过程重复多层(比如 12 层或 24 层)。
  • 分类头(Classification Head):在图像经过多层 Transformer 编码器处理后,分类标记的输出会被送入一个简单的多层感知机(MLP)进行图像分类。

  • 图像被分割为多个固定大小的图像块。
  • 每个图像块被线性嵌入成向量,并添加位置信息。
  • 整个序列输入到多层 Transformer 编码器中,进行全局的信息聚合。
  • 最终通过分类标记得到图像的全局表示并进行分类。
  • 实验结果

  • 在大型数据集(如ImageNet-21k和JFT-300M)上预训练后,ViT在多个图像识别基准上达到了与最先进CNN相当甚至更好的性能,并且在计算资源方面具有更高的效率。

  • 结论

  • 论文证明了在大规模数据集上训练时,ViT能够超越传统的CNN架构,成为图像识别的有效工具。这种方法减少了对CNN固有归纳偏差(如平移等变性和局部性)的依赖,更依赖于大规模数据的训练。为后续的论文打下了基础,mobileVIT就是基于VIT发展而来.

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值