Advertisement

ViT(Vision Transformer)全文精读

阅读量:

这篇论文《Vision Transformer》通过引入Vision Transformer(ViT)架构成功地将Transformer模型从自然语言处理领域迁移到计算机视觉领域,并展现了其强大的表现力和潜力。以下是对这篇论文的总结和分析:### 1. 引言与背景Transformer架构最初由Vaswani等人提出,在自然语言处理(NLP)领域取得了巨大成功后逐渐应用于其他领域。然而,在计算机视觉(CV)中,ResNet等卷积神经网络(CNN)仍然占据主导地位。近年来,在大规模数据集上的视觉任务中(如ImageNet),ResNet等网络的表现接近甚至超越了传统的CNN架构。### 2. Vision Transformer的核心思想- 图像分割与嵌入:将输入图像分割为多个patch,并将其嵌入到一个序列中。- 全局注意力机制:通过多头自注意力机制捕获图像中的全局信息。- 序列处理与分类:使用标准的分类器对序列进行处理以获得最终分类结果。### 3. 主要贡献#### 3.1 模型结构与实现- ViT采用分组划分的方式分割图像为patch,并通过线性投影将其嵌入到一个固定维数的空间。- 使用多头自注意力机制捕捉不同尺度和位置的信息。- 在预训练后进行微调以适应特定的任务。#### 3.2 实验结果- 在ImageNet、ImageNet-21k、JFT等数据集上进行评估。- ViT在ImageNet上达到81.6%的分类准确率,在ImageNet-21k上接近Res50的表现。- 在较大规模的数据集上(如JFT),ViT表现出色且计算效率高。#### 3.3 消融实验通过改变不同的超参数、调整位置编码方式、使用对比学习等方法验证了ViT的有效性和鲁棒性。#### 3.4 自监督学习提出了一种基于mask patch预测的目标函数进行自监督训练的方法,在无标签数据的情况下实现了良好的效果。### 4. 扩展与改进方向#### 4.1 多模态应用尽管主要集中在计算机视觉任务上,但作者指出ViT可以扩展到视频、音频等其他信号处理任务,并且可以与其他架构结合使用(如残差网络)以提高性能。#### 4.2 模型改进提出了池化former等

**

1. 相关连接

该研究展示了将Transformer应用于图像识别时所达到的比例。于2020年10月发布于arXiv平台上的论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》,该论文提出了一种基于Transformer的新方法,并在大规模图像分类任务中展现了显著效果。官方提供了‘Vision Transformer Research Repository’这个项目仓库(GitHub - google-research/vision_transformer),其中包含用于Python语言的实现。此外,在GitHub上还有一个名为‘lucidrains/vit-pytorch’的项目仓库(GitHub - lucidrains/vit-pytorch),该仓库提供了一种简洁的方法来实现视觉变换器,在单个编码器中实现最佳视觉分类性能。

2

2

论文精读

论文精读

2.1 Bilibili上的视频《ViT论文逐段精读》的学习笔记
2.2 Bilibili上的学习笔记

第3章 绪论 简要介绍本研究的背景及其重要性 阐述本研究的背景及其重要性为后续章节的学习与理解奠定基础

在过去的一年里,在计算机视觉领域内完成了最具有影响力的贡献

  • 替换了自2012年以来由AlexNet引领的卷积神经网络在计算机视觉领域的绝对主导地位;
  • 结论表明,在具备充足数据的情况下无需依赖传统的卷积神经网络架构即可通过标准Transformer模型有效解决视觉问题;
  • 成功打破了计算机视觉与自然语言处理之间的技术壁垒,并开创了一个全新的研究领域;
  • 目前Transformer刚起步应用于计算机视觉领域,在这一领域仍具有巨大的潜力。

该资源的名称为 paperswithcode

在当前某个领域或者某个特定的数据集中,能够获取到表现最优的具体有哪些方法?

在ImageNet数据集上的卓越表现均源于Vision Transformer架构

图像分类

在COCO数据集上进行目标检测任务时(或该资源中),现有的领先方法主要依赖于Swin Transformer模型(Swin Transformer是ICCV 21最佳论文之一);该模型可以被看作是一种多尺度Vision Transformer的变体

目标检测

该研究综述显示,在包括语义分割、实例分割、视频分析、医疗图像处理及遥感等多个领域的应用中,Vision Transformer显著地涵盖了视觉领域的各类任务。

这篇论文介绍了另一个研究方向。(Aspects of Vision Transformers that exhibit remarkable properties)如图所示:

图a体现了严重的遮挡现象,在如此强烈的遮挡环境下,无论是基于卷积神经网络的分析还是人眼观察,都无法辨识图中所示的对象是一只鸟。
图b展示了数据分布上的偏差,在这一操作下对图片进行了去噪处理后呈现出一种奇异的视觉效果。
通过向鸟类头部添加一个具有对抗性的patch来增强模型的鲁棒性。
将图像分解后进行重新排列组合以生成新的样本集。

在上述示例中,在卷积神经网络难以准确识别具体的物体类型时,Vision Transformer则能够高效地处理所有这些案例。

在这里插入图片描述

4. 标题及著者信息

4.1 一张图像代表人类知识表达中最强大的形式:

  • 一张图片相当于多个大小为16 \times 16像素的小块(例如如图所示,在图像处理中我们通常将其划分为4行5列共20个小块)。
  • 那么选择Why?因为这种方法能够有效地提取图像细节。
在这里插入图片描述

基于规模的图像识别方法

基于规模的图像识别方法

基于transformer架构进行大规模图像识别

基于

使用

去做

用于

着者:XXX

着者:XXX

该团队由谷歌研究部门和谷歌大脑团队组成

5. 摘要 Abstract

尽管如此,transformer已被广泛认为是自然语言处理领域的基准模型之一:BERT、GPT3以及T5等模型都属于此类别;然而,在计算机视觉领域应用transformer仍然受到限制

在视觉研究领域中,self-attention机制既可与传统的convolutional neural networks结合运用,并非排斥也可以将其部分卷积层替换为self-attention机制的同时不破坏整体架构

这里的整体结构指的是:例如,在ResNet-50这样的残差网络中,在其架构中包含了四个主要的模块或阶段(即res2、res3、res4和res5)。在描述这一架构时,并未改变其整体结构指的是每个阶段或模块并未被修改;这些变化主要体现在各个具体的模块或操作层面。

研究表明,在卷积神经网络的应用方面存在过度依赖的现象是完全没有必要的。纯粹的Vision Transformer在经过一系列图像块处理后,在图像分类任务中也能展现出非常优异的表现。尤其是在经过大规模数据预训练并成功应用于中小规模数据集的情况下,其性能与当前最先进的卷积神经网络不相上下。

此处分割出的ImageNet、CIFAR-100和VATB被视为中等规模的数据集。

实际上,在许多情况下ImageNet已经成为人们广泛使用的重要资源库。

Transformer的另一个优点是这种技术只需较少数量的训练资源,并且表现出色

  • 作者所指的计算资源数量级为2500天TPUv3。
  • 其中数量级仅用于与更为耗卡的模型进行对比(相当于设立一个小目标)。

6. 引言

引言部分涵盖研究背景及其意义、当前面临的挑战以及本研究的目的所在。引言的主要目的是介绍本研究的核心内容及目标。通过综述相关领域的最新研究成果和技术进展……同时突显了本研究在理论层面和应用实践方面的双重重要性。本文将深入探讨所提出的方法及其有效性验证的具体过程……最后将总结研究成果并展望未来的发展趋势。

自注意力机制的网络体系,在自然语言处理领域已成为不可或缺的主流模型之一。目前的研究倾向于通过从大规模的数据集合中进行预训练任务学习基础语义模式,并在此基础上针对特定领域的专用小样本数据集进行微调优化(这一观点源自BERT的相关研究)。

归功于transformer所具有的高效的计算能力和良好的扩展性,现在已经能够训练出拥有超过100亿参数的模型了,例如GPT-3.

在模型规模和数据量不断扩展的过程中,相关领域尚未出现明显的性能瓶颈。

  • 当前大多数情况下,并非单纯通过扩大数据集或增大模型规模就能取得更好的效果;尤其当增大模型规模时容易导致过拟合现象;但对于transformer架构而言目前尚未发现这一瓶颈
    • 最近微软与英伟达又联合推出了一个超级大的语言生成模型Megatron-Turing Megatron-Turing Megatron-Turing Megatron-Turing Megatron-Turing Megatron-Turing Megatron-Turing Megatron-T Turing Megatron-T Turing Megatron- Turing Megatron- Turing Megatron- Turing Megatron- Turing Megatron- Turing Megatron- TuringMegatron- TuringMegatr
    • 该语言生成模型拥有5300亿参数,并且在各类型任务中持续显著提升性能,在性能方面也未出现饱和现象

6.1 概述: Transformer其核心机制是什么?基于自注意力机制的设计框架如何实现序列并行处理?

transformer模型的核心操作机制在于自注意力机制的设计,在这一过程中每个输入元素都会与所有其他输入元素进行交互作用。这种双向互动关系最终会生成一个反映各元素间关联程度的attention矩阵。通过将该attention矩阵应用到输入数据上即可实现加权平均处理后获得最终输出结果。

由于在执行自注意力时涉及所有元素间的两两交互关系,其计算复杂度与序列长度呈平方增长关系。**O(n²)**这一特性表明当序列长度增加时计算开销会显著提升。

通常情况下,在自然语言处理任务中所支持的最大序列长度大致在几百到一千左右(例如BERT模型通常采用512长度)。

在这里插入图片描述

6.2 将Transformer应用于视觉问题的挑战

首要任务是如何将2D图片转换为1D序列或集合。最直接的方法是将每个像素视为独立元素,并将其拉直后输入到transformer中使用这种方法看似简单但实现起来较为复杂

通常,在视觉领域进行分类任务时,默认设置下的图片输入尺寸为标准分辨率下的宽度乘高度值即为该图像对应的像素数量。假设我们将图像中的每个像素视为独立元素,则该图像对应的序列长度为宽乘高的结果。例如,在本例中该尺寸即为W \times H = 5 \times 7的结果计算得出具体数值。这个数值相当于BERT所支持的最大序列长度(通常为512)的约193倍(上面提到BERT的最大序列长度是512)。这仅仅适用于简单的分类任务,在目标检测和分割等更复杂的任务而言,则需要更高分辨率的支持:例如W \times H = 6 \times 6甚至更高。计算量随之显著增加:相对于低分辨率场景而言。相比之下,在视觉领域中卷积神经网络仍然占据主导地位:例如AlexNet或是ResNet这样的著名架构设计。

所以,在当前的研究领域中,许多工作致力于探索如何将自注意力机制应用于机器视觉问题:其中一部分研究探讨了将卷积神经网络与自注意力机制相结合的方式;另一些研究则直接摒弃了传统的卷积神经网络架构,并全部采用自注意力机制作为基础进行构建。这些探索的核心目标在于解决传统transformer模型在处理长序列时存在的效率问题,并试图通过优化方法绕过这一限制因素来提升视觉模型的表现能力。

Wang et al., 2018 (Xiaolong Wang, Ross Girshick, Abhinav Gupta, and Kaiming He. Non-local neural networks. In
CVPR, 2018.
):基于像素点作为输入导致序列长度过长的情况下**,
我们可以将网络中间提取出的特征图作为transformer模型的输入 fed-in,
从而避免直接使用图像作为transformer模型输入所带来的计算量问题**。

  • 假设采用残差网络Res50,在其最后一个阶段时(也就是res4阶段),其特征图尺寸缩减至14×14。将这些特征图展平后仅包含196个元素。即可得到仅包含196个序列元素。这使得将特征图作为transformer输入的方法变得可行,并有效地降低了序列长度。

该研究由Prajit Ramachandran及其合著者Niki Parmar、Ashish Vaswani、Irwan Bello、Anselm Levskaya和Jon Shlens共同完成,在NeurIPS 2019上发表的论文中提出了一种完全独立的自注意力机制。

该研究由Prajit Ramachandran及其合著者Niki Parmar、Ashish Vaswani、Irwan Bello、Anselm Levskaya和Jon Shlens共同完成,在NeurIPS 2019上发表的论文中提出了一种完全独立的自注意力机制。

孤立自注意力:因为视觉计算的高度复杂性源于对整个图像的操作;因此不用对整个图像进行处理,则采用一个本地的小窗口进行分析(通过调节该窗口尺寸的方式,在保证效率的同时维持良好的性能表现)。这与卷积运算的操作机制相一致。

Wang et al., Year 2020a (Huiyu Wang et al., Year 2020a) developed the Axial-deepLab model for axis self-attention-based panoptic segmentation.

轴自注意力:由于视觉计算中序列长度N=H×W构成一个二维矩阵,在处理该矩阵时通过某种方法将其拆分为两个一维向量。为此我们首先依次进行高度维度上的自注意力运算随后在宽度维度上再执行一次自注意力操作这使得二维空间中的自注意力操作被分解为两次一维操作从而显著降低了计算复杂度

在当前的研究中发现,在理论上有很高的效率(尽管这种方法)但实际应用中却难以发挥应有的性能(然而这些特殊的自注意力机制)因此导致在现有硬件架构下加速变得困难(因此实现大规模部署仍面临诸多技术瓶颈)。到目前为止,在实际应用中实现大规模部署仍面临诸多技术瓶颈(孤立自注意力和轴自注意力)而目前仍然无法突破这一限制(与目前主流的大规模Transformer架构相比仍存在明显差距)。因此,在大规模图像识别任务中传统残差网络仍然是最优选择。

因此,在计算机视觉领域中已广泛引入了自注意力机制,并已有一系列研究致力于将自注意力机制替代传统的卷积操作。因此,在本文中我们采用了新的讲述方式。

本文受到transformer在NLP领域扩展能力的启发,并主要致力于将标准transformer用于处理图片数据。尽可能少地进行调整(不针对视觉任务的具体优化),我们希望探索该方法是否能在视觉领域展现出广泛的应用潜力。

如果直接采用transformer模型,在处理序列过长所带来的挑战时仍需采取相应措施。

  • vision transformer将一张图片打成了很多的patch,每一个patch是16*16
  • 假如图片的大小是224×224,则sequence lenth(序列长度)就是N=224×224=50176,如果换成patch,一个patch相当于一个元素的话,有效的长宽就变成了224/16=14,所以最后的序列长度就变成了N=14×14=196,所以现在图片就只有196个元素了,196对于普通的transformer来说是可以接受的。
  • 然后将每一个patch当作一个元素,通过一个fc layer(全连接层)就会得到一个linear embedding,这些就会当作输入传给transformer,这时候一张图片就变成了一个一个的图片块了,可以将这些图片块当成是NLP中的单词,一个句子中有多少单词就相当于是一张图片中有多少个patch,这就是题目中所提到的一张图片等价于很多16×16的单词。

该预训练模型在视觉变换器上的应用采用了系统的有监督学习方法进行系统性的训练。

由于大多数NLP模型基于transformer架构通常采用无监督预训练方法,包括语言建模或遮蔽语言建模这两种方式;相比之下,在视觉领域中传统的基线模型多采用有监督训练方式

经研究发现,本文实际上将视觉任务视为自然语言处理的一种实现方式,并采用了与BERT等模型如出一辙的transformer encoder架构方案.值得注意的是,在视觉领域取得了显著的效果.值得指出的是,文章的主要目的是阐述采用了一个相对简单的架构方案即可实现transformer模型在视觉任务中的良好性能.

基于这一核心思路,在现有研究的基础上已展开初步探讨,并已将该方向相关的成果进行了系统性梳理。值得注意的是,在当前领域中与我们工作最为接近的是Jean-Baptiste Cordonnier及其团队在2020年发表于ICLR期刊上的研究(Jean-Baptiste Cordonnier, Andreas Loukas, and Martin Jaggi. On the relationship between selfattention and convolutional layers. In ICLR, 2020.

该论文通过从输入图像中提取尺寸为2\times 2的小图像片段进行分析。
具体而言,选择2\times 2的原因在于研究者仅在CIFAR-10数据集上进行了实验,而该数据集中的图像均为32\times 32分辨率,因此选取小尺寸片段既保证了足够的特征提取能力又避免了过大的计算开销。
随后,在这些提取出的小块图像片段上实施自注意力机制以进一步挖掘深层特征关系。

在技术层面上讲就是Vision Transformer。然而本文的主要观点在于:本文的研究表明,在大规模数据集上的预训练实践表明(类似于自然语言处理领域中):仅通过对标准Transformer架构进行微调而不需对视觉感知层进行任何修改或特殊设计即可达到与现有最好卷积神经网络相当甚至更好的性能水平。此外研究表明:先前发表于ICLR的一篇论文采用了较小尺寸的小块划分方法(这限制了其仅适用于小尺寸图像的应用场景),而Vision Transformer则支持224×224分辨率图像的有效处理

核心内容主要在于阐述Vision领域中Transformer展现出的巨大潜力有多大。基于海量数据集以及强大的模型架构的支持下,其是否能够取代传统的CNN架构的问题值得探讨。

通常在引言部分结尾处会明确呈现研究的主要观点和预期成果。从而让读者无需深入阅读全文即可了解研究的核心价值。

本文在引言部分指出,在中等规模的数据集(例如ImageNet)进行训练时,默认情况下如果未施加较强的限制条件,则Vit模型的表现略逊一筹与同等规模的残差网络。

作者对此做出了解释:看似不理想的实验结果实则可被预期。相较于卷积神经网络而言,transformer模型因其不具备卷积神经网络所拥有的归纳偏置而呈现出这种看似不理想的结果。这里的归纳偏置实质上代表了一种预设的知识或一种预先设定的前提。

对于卷积神经网络来说,常说的有两个inductive bias(归纳偏置):

  • locality:卷积神经网络通过滑动窗口的方式逐个处理图片信息。
    该过程使得相邻区域的特征相互关联,
    从而使相近的事物表现出较强的关联性。

  • translation equivariance(平移等变性或平移同变性):对于任何函数f和g,
    满足f(g(x))=g(f(x))的关系式。
    这意味着无论是先执行g操作再执行f操作,
    还是先执行f操作再执行g操作,
    其最终结果都不会发生变化。
    在这里,
    我们可以将f视为卷积操作,
    而g则代表平移变换。
    因此,
    无论是先对图像进行平移处理,
    然后再进行卷积运算,
    还是先进行卷积运算再对图像平移处理,
    最终得到的结果是一致的。
    这种特性表明了卷积核作为模板时的不变性特点

当神经网络获得这两个归纳偏差时, 从而获得了丰富的先验知识, 因此仅需少量数据即可训练出性能较为优异的模型. 而相对于transformer而言, 其视觉感知能力完全依赖于这些数据.

为了检验这一假设,在更大的数据集(14M-300M)上进行了预训练实验。其中14M源自ImageNet 22k的数据集而300M则取自Google自研的JFT-300M数据集通过对比实验发现,在大规模预训练方面表现更为优异

Vision Transformer基于充分的数据支持下,在迁移学习任务中展现出显著的效果。具体而言,在经过ImageNet 21k或JFT 300M等大规模数据集的训练后,ViT不仅能够达到与当前最先进的残差型神经网络相当的性能水平,并且在某些情况下甚至能超越现有技术的边界。

在这里插入图片描述

由研究团队提出的VTAB是一个融合了包含19个不同数据集的数据集合,并主要旨在评估模型在复杂场景下的稳定性;此外,在一定程度上也验证了Vision Transformer在处理多样任务时展现出的卓越性能。

总体而言,引言内容简明扼要地陈述了问题。

  • 第一段先指出尽管Transformer在自然语言处理领域表现优异,在面对更大规模的数据或更为复杂的模型时仍能持续提升性能而无明显饱和现象。基于此背景提出研究兴趣:将这一成功应用延伸至视觉领域是否会取得类似成果;
    • 第二段系统回顾现有研究发现:现有工作主要采用卷积神经网络与自注意力机制结合的方式或是直接取代卷积层等方法改进神经网络架构;然而目前并未有研究真正将标准的Transformer架构应用于视觉领域且未能实现预期的理想扩展效果;

    • 第三段介绍所提出的方法——Vision Transformer(ViT):该方法采用了传统Transformer模型框架;具体而言只需对输入图像实施统一大小的块状预处理即可完成特征提取;无需额外设计其他特殊组件或架构;这种简洁的设计理念实现了视觉问题与自然语言处理任务之间的无缝融合;

    • 最后两段展示实验结果:通过充分的数据集训练后Vision Transformer展现出良好的收敛特性并且在多项基准测试中取得了令人满意的性能水平。

      本研究的主要内容是围绕多智能体协同优化展开深入探索与系统设计,并在此基础上提出了一种新的优化算法框架。
      通过提出的方法可以显著提升系统的收敛速度和计算效率,在复杂环境下的性能表现更为稳定。
      实验结果表明,在相同计算资源下所设计算法的性能指标优于现有的相关算法。
      本研究的创新点主要体现在以下几个方面:第一,在问题建模上实现了对多智能体协作机制的全面刻画;第二,在算法设计上提出了基于分布式优化的新方案;第三,在理论分析方面建立了更具普适性的收敛性证明框架。
      基于上述分析可知,在多智能体协同优化领域所提出的方法具有重要的理论价值与应用前景。

这篇论文的工作是采用NLP领域中标准的Transformer架构来解决计算机视觉任务,并与之前基于自注意力机制的方法的主要区别在于

除了在开始提取图像块的过程中,在应用位置编码时还运用了特定于图像的归纳偏置。

除此之外,并未再引入任何与图像相关的归纳偏差。这一优势在于无需深入掌握Vision领域的专业知识。可将其视为由一系列图像块组成的序列结构,并非单纯的文字描述。从而可以直接运用基于NLP的标准Transformer架构来进行图像分类工作。

通过将一种简洁且具有良好扩展能力的策略与大规模预训练模型进行融合,Vision Transformer在多个图像分类基准测试中表现出色。 Vision Transformer不仅在广泛使用的多个基准测试中超越了现有的最佳方案,在计算成本方面也表现出了显著优势。

目前仍存在未被有效解决的问题(对未来发展的展望)

以何种方式将transformer应用于实现计算机视觉任务

第一个问题:Vi不仅仅用于分类这一功能,并且还支持检测与分割操作

DETR(https://arxiv.org/abs/2005.12872):在去年的一年里发布的一项具有里程碑意义的研究成果,在目标检测领域掀起了一场革命性的研究新风潮,并实质上革新了该领域之前所采用的整体架构

考虑到ViT和DETR表现出色,因此有人认为使用Vision Transformer来处理视觉相关的问题应该不会遇到太大的困难

复制代码
不久之后,在ViT提出仅约半个月的时间里(截至2020年12月),研究人员发布了名为[ViT-FRCNN](https://arxiv.org/abs/2012.09958)的研究成果,并将其成功应用于检测领域。

同样地,在图像分割领域也出现了类似进展——同年年底发布的SETR论文实现了Vit在该领域的应用。

随后大约三个月后[Swin-Transformer](https://arxiv.org/abs/2103.14030)问世,并通过融合多尺度设计理念显著提升了性能表现;这一创新成果不仅展示了其在视觉任务中的有效性——更关键的是首次明确指出了Transformer可作为视觉领域的通用基础架构。

探索另一个未来的工作方向可能涉及自监督预训练方案的研究与实践,在NLP领域中大多数大型transformer模型均采用了自监督方式进行训练,并且Vit这篇论文进行了初步实验研究以验证其可行性;然而相较于有 supervision 的方式进行对比分析发现仍存在较大差距

作者认为,进一步扩大Vision Transformer的规模可能有助于提升性能

半年后,相同的团队又发布了一篇名为Scaling Vision Transformer的论文,其中一项成果是提出了ViT-G模型,显著提升了ImageNet图像分类的准确率至90%以上

8. 当前研究领域的工作进展

transformer在NLP领域有着广泛的应用,并且已被证明是一种非常有效的工具

自从2017年transformer模型被首次用于机器翻译任务后,这种基于transformer架构的方法就成为了众多nlp领域研究的核心技术。
在大规模nlp任务中,transformer模型通常采用先进行大规模预训练再进行特定任务微调的方式。其中最具有代表性的两种方法是BERT和GPT模型。
BERT通过去噪自监督学习实现,其基本思路是在完整且固定的语料基础上随机遮蔽部分词,然后通过语言建模任务预测这些被遮蔽的位置对应的词项。
而GPT则是基于语言建模仿拟,即给定一个完整的输入序列,模型的任务是预测下一个词项是什么。
值得注意的是,BERT和GPT等方法虽然都属于自监督学习范畴,但它们的具体实现策略存在显著差异,BERT侧重于去噪任务,GPT则更注重语言建模能力。
这些方法的成功应用充分证明了基于transformer架构的独特优势及其在nlp领域的广泛应用前景。

自注意力机制在视觉领域中进行深入探讨其应用及其效果

  • 当我们在图片中简单实现自注意力机制时,默认的做法是将每个像素视为一个独立元素进行两两之间的自注意力计算。然而由于这种做法的时间复杂度呈平方增长特性,在实际应用中难以处理高分辨率的真实图片输入。
  • 针对224×224的图像输入时(常见于分类任务中的图像),通常其像素数量达到1024或4096个级别,在这种情况下直接采用transformer架构可能会导致计算负担过重。
  • 为了缓解这一问题,在实际应用中通常会限制每个位置仅关注有限范围内的邻居(local neighborhood),从而降低计算复杂度。
  • 此外还有一种稀疏型transformer架构设计(Sparse Transformer),它通过仅在部分关键位置施加全局注意力机制来实现对复杂度的有效控制。
  • 还有一种基于块级自注意力的设计方法(block-wise attention),甚至还有轴向注意力(axis-aligned attention)等变体设计能够进一步降低计算复杂度。
  • 这些经过优化设计的特殊化自注意力机制虽然在计算机视觉领域取得了不错的效果[1] [2] [3] ,但在实际工程实现过程中仍需要付出大量复杂的算子优化工作才能满足大规模模型训练的需求。

最接近我们工作的ICLR2020论文指出,在方法上存在显著差异:Vision Transformer采用了更大的patch,并基于更大规模的数据集进行训练。

在计算机视觉领域中存在大量研究致力于将卷积神经网络与自注意力机制相结合。这些研究不仅数量丰富,并且广泛覆盖了视觉领域的多个关键任务类型(包括目标检测、分类识别、视频分析以及多模态融合等多个方面)。

另一个研究方向与本文的研究内容有相似之处,并被称为image GPT

GPT主要应用于自然语言处理领域,并具备生成能力。
image GPT同样是一个生成性模型,并采用无监督学习方法进行训练;它们之间的共同点在于都采用了transformer架构。
经过微调或作为特征提取器使用时,在ImageNet上的分类准确率最高也只能达到72%;而相比之下,在MAE(Masked Autoencoder for Visual Pretraining)等方法之前的基础上,在ImageNet-1k数据集上进行预训练的生成式模型(如Vit),其分类准确率仅为72%。
然而这一成果也是近期研究热点之一。在此之前,在视觉任务方面基于判别式的网络往往表现优于生成式网络。

除了其他一些相关工作之外,该方法还涉及采用比ImageNet更大规模的数据集进行预训练。这种方法利用了额外的数据资源,并通常能够显著提升性能。

  • 比如2017年介绍JFT 300数据集的那篇paper研究了卷积神经网络的效果是怎么随着数据集的增大而提高的
  • 还有一些论文是研究了在更大的数据集(比如说ImageNet-21k和JFT
    300M)上做预训练的时候迁移学习的效果会怎样,就是迁移到ImageNet或者CIFAR-100上的效果如何

这篇论文的重点研究了ImageNet-21k和JFT 300M,但并未以训练残差网络为目标;相反地,它无法实现transformer模型的训练。

本文的相关领域的研究极为深入,并系统性地归纳了当前领域的主要研究进展;包括但不限于ICLR 2020发表的研究、iGPT模型以及基于大规模数据集的BiT等

该章节的主要目的是向读者展示在你的研究领域内他人已有的相关工作,并明确你与他们的主要差异所在。通过清晰阐述这些内容不仅对于完善整篇论文具有重要意义,在保持其创新价值的同时也有助于使整篇论文更加简洁明了。

9. Vision Transformer 框架

遵循最原始的transformer架构进行模型设计,在这种情况下的一个优势是可以直接调用NLP领域的成功架构并将其纳入现有系统而不必进行任何改动。同时得益于transformer在NLP领域已有较长时间的发展积累,它已具备高效的实现方案;同样的情况下ViT也同样能够直接应用。

第9章 视觉变换器

本研究中的图形框图展示了模型的整体架构。对于深入理解本文的核心内容具有关键作用。关键在于其清晰度和信息传达能力可以让读者无需深入阅读即可获取整体研究框架。

在这里插入图片描述

首先提供一张图像,并将其划分为多个区域(如上图左下角所示),这相当于将图像分割为九宫格形式。
随后将这些区域转换为序列形式,在此过程中每个区域通过线性投影层(相当于全连接层)生成特征(即本文中提到的patch embedding)。
自注意力机制处理元素间的两两交互关系,在此过程中顺序问题并不重要。然而对于图像本身而言存在内部顺序关系,在九宫格划分中顺序颠倒会导致图像失真。因此类似于自然语言处理中的做法,在patch embedding基础上添加位置编码信息(position embedding),这等价于对每个区域施加位置编码。
添加完位置编码后,整体token不仅携带了原生图像信息还包含了其在九宫格中的位置信息。
在此基础上将这些token输入到类似于BERT的Transformer encoder中进行处理。
在获取大量输出后如何选择用于分类?借鉴BERT方法,在Transformer输出中加入一个可学习的位置编码(extra learnable embedding),此处使用特殊符号*表示该特殊字符,并赋予其固定的位置编码信息。
由于所有token之间都进行交互作用作者认为通过class embedding能够从其他token的信息中提取有用特征从而仅根据class embedding输出结果即可完成分类判断。
最后采用交叉熵损失函数进行模型训练优化。

模型中的Transformer encoder采用标准架构如上图右部分所示

在这里插入图片描述
  • 一个Transformer接收多个patch作为输入

  • 每个Transformer块包含L层

  • 整体上来看Vision Transformer的架构还是相当简洁的,其主要体现在如何将图像转换为一系列token上

    输入经过预处理步骤后进入编码器模块。
    编码器模块运用自注意力机制对输入信息进行特征提取。
    编码器输出经由位置编码并依次 feed 到多层前馈神经网络进行进一步处理。
    解码器部分则接收编码器生成的所有中间状态并运用解码自注意力机制逐步生成最终结果。
    该模型的整体流程旨在通过分步计算实现高效准确的文本生成任务。

    • 假如说有一个224×224×3的图片,如果使用16×16的patch size大小,就会得到196个图像块,每一个图像块的维度就是16×16×3=768,到此就把原先224×224×3的图片变成了196个patch,每个patch的维度是768

    • 接下来就要将这些patch输入一个线性投射层,这个线性投射层其实就是一个全连接层(在文章中使用E表示),这个全连接层的维度是768×768,第二个768就是文章中的D,D是可以变的,如果transformer变得更大了,D也可以相应的变得更大,第一个768是从前面图像的patch算来的(16×16×3),它是不变的。

    • 经过了线性投射就得到了patch embedding(X×E),它是一个196×768的矩阵(X是196×768,E是768×768),意思就是现在有196个token,每个token向量的维度是768

    • 到目前为止就已经成功地将一个vision的问题变成了一个NLP的问题了,输入就是一系列1d的token,而不再是一张2d的图片了

    • 除了图片本身带来的token以外,这里面加了一个额外的cls token,它是一个特殊的字符,只有一个token,它的维度也是768,这样可以方便和后面图像的信息直接进行拼接。所以最后整体进入Transformer的序列的长度是197×768(196+1:196个图像块对应的token和一个特殊字符cls token)

    • 最后还要加上图像块的位置编码信息,这里是将图片打成了九宫格,所以位置编码信息是1到9,但是这只是一个序号,并不是真正使用的位置编码,具体的做法是通过一个表(表中的每一行就代表了这些1到9的序号,每一行就是一个向量,向量的维度是768,这个向量也是可以学的)得到位置信息,然后将这些位置信息加到所有的token中(注意这里是加,而不是拼接,序号1到9也只是示意一下,实际上应该是1到196),所以加上位置编码信息之后,这个序列还是197×768

    • 到此就做完了整个图片的预处理,包括加上特殊的字符cls和位置编码信息,也就是说transformer输入的embedded
      patches就是一个197×768的tensor

    • 这个tensor先过一个layer norm,出来之后还是197×768

    • 然后做多头自注意力,这里就变成了三份:k、q、v,每一个都是197×768,这里因为做的是多头自注意力,所以其实最后的维度并不是768,假设现在使用的是VIsion Transformer的base版本,即多头使用了12个头,那么最后的维度就变成了768/12=64,也就是说这里的k、q、v变成了197×64,但是有12个头,有12个对应的k、q、v做自注意力操作,最后再将12个头的输出直接拼接起来,这样64拼接出来之后又变成了768,所以多头自注意力出来的结果经过拼接还是197×768

    • 然后再过一层layer norm,还是197×768

    • 然后再过一层MLP,这里会把维度先对应地放大,一般是放大4倍,所以就是197×3072

    • 然后再缩小投射回去,再变成197×768,就输出了

    • 以上就是一个Transformer block的前向传播的过程,进去之前是197×768,出来还是197×768,这个序列的长度和每个token对应的维度大小都是一样的,所以就可以在一个Transformer block上不停地往上叠加Transformer block,最后有L层Transformer block的模型就构成了Transformer encoder

在这里插入图片描述

在整体架构中,在整个Transformer模型的设计过程中始终采用了统一的标准来定义序列位置的信息提取方式,并且这些位置信息都被表示为D维的空间向量。
关于这一关键组件,在本文的设计方案中采用了基于可学习参数的一维投影方法来提取并表示序列位置信息(Position Embedding)。这种方法具有较高的灵活性,并且能够在模型训练过程中自动调整各个维度上的权重参数。
值得注意的是,在探索其他可能的设计方案时,
我们曾尝试过引入二维感知器的方法来提取位置信息(如2D感知器),这种方法能够有效捕捉序列空间中的多维度特征关系。
然而,在经过一系列实验验证后发现,
无论选择哪种方法,
最终模型在分类任务上的性能表现均相差不大,
未见显著差异。

在这里插入图片描述

在本节中,请深入分析与本节相关的消融实验(具体内容将在附录中详述)。请参考相关文献以获取更多关于该领域的研究进展。

考虑到特殊的class token及其位置编码特性, 研究者进一步进行了系统的消融实验分析。在Vision Transformer架构中, 如何对输入图像进行预处理以及如何对模型输出结果进行后续处理都是影响模型性能的关键因素。值得注意的是, 在整个架构中所采用的标准Transformer模块设计也是不可忽视的因素。

该模型采用了与原始Transformer架构尽可能保持一致的设计理念,在文本处理过程中引入了类元表示(class token)。类元表示不仅在NLP领域具有应用价值,在图像分类任务中同样发挥着关键作用(也可视为一种反映整个句子语义特征的独特表示形式)。通过该类元表示输出的结果进一步处理,并随后连接一个全连接层(全连接层采用tanh函数作为非线性激活函数)进行分类预测。

该类token的设计完全借鉴自自然语言处理领域,并且值得注意的是,在视觉领域的相关研究中,并未采用类似的方法。例如,在ResNet50模型中,默认情况下其输出结果形成一个14×14的空间分辨率特征图。经过全局平均池化操作后(即Global Average Pooling),这一二维特征图会被压缩成一个一维向量。这种处理方式使得我们能够将复杂的图像信息浓缩为简洁的一维表示形式,并在此基础上完成图像分类任务。

在Transformer架构中,假设有一个Transformer模型输入中有n个元素输出同样有n个元素那么为什么不可以直接对这些输出进行全局平均池化处理以获取最终特征而通常的做法是在输入序列前面添加一个类token之后再通过该类token的输出来进行分类

通过实验证明,在本研究中我们采用了class token来进行实验。研究表明这两种方法均可;也就是说可以通过全局平均池化获取一个全局特征随后用于分类;同样也可以采用一个class token来进行操作。我们的主要目标是尽量贴近原始Transformer的方法以确保一致性;为了避免误以为某些效果优异是由某些技巧或其他特定于视觉领域的改动导致的;在本研究中我们采用了class token来进行实验。

两种方法的效果比较通过下图对比显示如下:

在这里插入图片描述

green line represents global average pooling, while blue line denotes class token. It can be observed that the green and blue lines achieve comparable results. However, the authors point out that the learning rates employed by the green and blue lines are different. Simply adopting the learning rate from the blue line may result in suboptimal performance as shown by the orange line. This implies that proper tuning of hyperparameters is crucial.

位置编码

作者也进行了多样化的消融实验研究,并主要涉及以下三种类型

在这里插入图片描述

No Position编码的效果稍逊于预期但也不算糟糕程度 从Positional Encoding的角度来看 这种方法完全无法感知图像的空间信息 在完全不进行Positional Encoding的情况下 Vision Transformer依然能够取得相对不错的性能水平 这一点已经相当值得肯定

对比以上三种Positional Encoding的形式 发现它们所得的结果完全一致 没有任何差异

对此 作者给出了他的合理解释 他所采用的Vision Transformer是直接作用于图像块而不是原始像素块 因为这些图像块尺寸较小(14×14)相对于全局224×224像素来说 显然更容易处理它们之间的相对位置关系 因此 在这种情况下 使用任意一种Positional Encoding方式都无所谓

从上述消融实验结果可以看出,在图像分割任务中选择类token作为可替代方案时,并非唯一限制条件;此外,在一维位置信息编码方面也可选用二维表示或相对位置编码进行替代。然而,在尽量保持标准transformer架构的前提下,“vision transformer”模型在本研究中仍然采用了基于类token和一维位置信息编码方案的架构设计。

Encoder in the Transformer model

transformer已成为一种广泛采用的技术,在当前领域中具有重要地位。作者对transformer这一技术的详细说明可在附录部分找到。通过详细的数学公式,作者成功地将整个过程进行了系统的描述,请参考下图中的相关展示。

在这里插入图片描述

X_{p}代表图像分割中形成的每一个patch块,在本模型中一共生成了n个这样的patch块,并因此得到了从X_{p}^{1}X_{p}^{N}的一系列patch embedding。随后,在这些patch embedding的基础上附加了一个class embedding(记为X_{class}),这是因为后续的操作需要结合类别信息才能完成最终的任务目标。接下来,在获取所有的token表示后,我们对其进行了位置编码处理,并将其与位置编码矩阵E_{pos}进行融合。这一过程中的输入信号被定义为Z_0。在此基础上设计了一个嵌入层循环结构:对于每一个transformer block而言,在其内部依次执行两个操作:首先是对输入信号执行多头自注意力机制(Multi-Head Self-Attention, MSA),然后是逐元素乘法操作(Element-wise Multiplication)后的全连接层(MLP)。需要注意的是,在每一步操作之前都需要先对信号进行归一化处理(Layer Normalization, LN),并在每一步之后引入残差连接以保证梯度稳定性和网络训练效率。经过L层transformer block的整体作用后得到最终特征表示Z_L。在完成所有transformer block的操作后,我们取此特征表示序列中的第一个位置元素作为类别的表征向量,并以此为基础完成了最终的分类任务。

该模型基于数据分布显示出明显的归纳偏向

Vision Transformer相较于CNN而言,在不具备大量图像特有的归纳偏置方面要少得多;例如,在CNN架构中,locality和translate equivariance特性是其各个层级都具有的核心特性,在整个模型的发展历程中被系统性地融入。

然而对于ViT而言仅有MLP层具有局部性和平移不变性而自注意力层则是全局性的这种图像的二维信息ViT未有效利用仅在最初阶段将图像划分为patch并加入位置编码时应用过除此之外并未对视觉相关问题施加任何归纳偏置。

而位置编码最初是随机初始化的,并不携带任何二维信息。不仅包括图像块之间的距离信息以及场景相关信息在内的各种二维空间关系数据都需要重新学习。

这为后续结果奠定了基础。未显著运用归纳偏差的视觉变换器在小规模数据集上的预训练效果相对而言不及卷积神经网络。

复合型分析框架

复合型分析框架

由于transformer展现出强大的整体建模能力,并且卷积神经网络在数据效率方面表现突出(仅需较少的训练数据即可取得良好效果),因此研究人员构建了一个融合型模型,并将卷积神经网络作为基础模块放置在前面部分

该研究者对该方案进行了测试

在本研究中,在对一个图片进行处理时,在将其划分为16×16的patch之后,在这些生成的196个元素上经过一次计算过程,并最终生成了patch embedding

不再以块状形式处理图片,在这里我们采用了卷积神经网络的技术进行处理。具体而言,在整个图像输入一个如Res50这样的CNN模型之后会生成一个14×14的特征图矩阵。随后将该特征图展平后得到共计196个元素,并通过全连接层对这196个元素进行计算和融合处理从而获得新的patch embedding信息

前述内容列举了两类各自具有独特预处理方式或手段的方法

一种是将图片分割为patch块,并直接输入到全连接网络中;另一种则是直接使用一个CNN进行处理。

由于两种方式得到的结果序列长度均为196,在后续操作中两者的处理流程完全一致。具体来说,均直接输入一个变换器模型,并随后进行分类处理。

当图像呈现较大尺寸时,进行相应的微调处理。

已有研究表明,在微调过程中采用较大尺寸的图像(而不是固定使用...)将显著提升性能。

Vision Transformer在较大尺寸上的微调尝试虽可行但基于预训练的Vision Transformer对输入尺度的适应性不足。当处理较大尺寸的图像时若保持patch size不变此时图像的空间尺度增大导致序列长度随之增加因此从理论上讲Transformers能够适应任何长度的信息序列只要硬件支持即可实现

然而,在经过预训练后的位置编码可能会失去其有效性。这是因为原来的position encoding仍然具有意义。当图像尺寸扩大时(例如从224×224扩大到320×320),并且保持patch size不变的情况下,则patch的数量会增加(例如从196变为400),这会导致原有的position encoding不再具备意义

在这一时刻, 我们该如何利用位置编码呢? 实际上, 作者发现只需简单地执行二维插值操作便能解决问题(具体实现方法是通过torch官方提供的interpolate函数即可实现)。然而, 这里的二维插值并非随意进行, 当序列从较短变为较长时, 简单的线性或双线性插值可能导致最终效果下降, 因此这种处理方式仅能作为Vision Transformer在微调过程中的临时解决方案。此外, 由于采用了图像的位置信息进行插值操作, 所以尺寸变化及块抽取过程构成了Vision Transformer中唯一涉及二维信息处理的地方。

第十章 实验

第十章 实验

第十章 实验研究

第十章 实验

对残差网络、ViT及其混合模型在表征学习能力方面的系统性比较分析进行了深入探讨

为了探究训练每个模型所需数据的具体数量,在不同规模的数据集中进行预训练阶段,并在多个规模的数据集中进行测试阶段

当在考虑预训练所需时间长短的情况下,Vision Transformer表现出色,在多数数据集上取得了最佳效果,并且所需的训练时间较少。

最后作者还进行了一个自监督实验,并采用了自监督的方法进行研究。结果显示并没有达到最佳水平,并且仍然表现出了一定的效果,并显示出较大的发展潜力。

在经过一段时间的研究后,在MAE的帮助下自监督方法被成功应用于ViT的训练过程中,并取得了显著的效果

该数据集主要应用方式采用了何种方法。

ImageNet所包含的数据集:

ImageNet-1k最为常见的是由包含1\text{K}类目、共约1.3百万幅图片组成的大型数据集。* ImageNet-21k则包含了2.1千类目、约十四百万幅图片。

JFT数据集:自行开发的数据集(包含约3亿张图像)

下游任务全部属于分类任务,并且使用的数据集也比较常用。

复制代码
        该资源包括三个经典数据集:$CIFAR$ 数据集、$Oxford\ Pets$ 数据库以及 $Oxford\ Flowers$ 数据库。
        这些数据集广泛应用于计算机视觉领域的研究与开发。

该模型具备多种变形形式

一共有三种模型架构,其具体参数设置见下图

在这里插入图片描述

Base

基础

Big

Massive

层数:transformer块的数量

隐藏层大小D:向量空间维度

如何确定MLP的规模?

Multi-head attention中的数目

Params:参数个数

具体来说在Transformer模型中序列长度与Patch Size之间呈反比例关系。换句话说当Patch Size较小时(即分割成更多块)会导致序列长度增加;反之当Patch Size较大时(即分割成较少块)则会减少序列长度。因此在实际应用中选择较小的Patch Size可能会提高模型计算开销

结果显示数据如图所示表格中,在经过大规模数据预训练后左列数据集上的微调处理效果如何

在这里插入图片描述
  • 表格对了几种ViT变体及其与卷积神经网络(包括BiT和Noisy Student)的对比
  • 在与BiT进行对比时的原因是因为Bit确实在之前的卷积神经网络研究中表现较为突出,并且是本研究团队自身的工作成果
  • 在与Noisy Student进行对比时的原因是因为它是ImageNet之前的最佳方法,并采用了伪标签(伪标签)辅助自我训练的方法取得了显著效果
  • 从表格中可以看出,在所有数据集上实现对Best性能的超越

然而这些数值之间的差异微乎其微,在零点几到一点之间波动,并未展现出显著的分化。因此作者认为vision transformer的潜力尚未完全被揭示出来。于是作者转而探讨vit的优势所在:在于其训练成本相对较低。

作者所言的性价比更高体现在最大的ViT-Huge模型仅需2500天TPUv3进行训练。其中Bit和Noisy-Student同样是Google的研究方向,并采用TPUv3进行训练因此可以直接进行对比分析。BiT采用了9900天的持续训练周期而Noisy-Student则持续了1万多个工作日。从这一角度来看ViT不仅在效率上超越了之前的Bit与Noisy-Student而且在性能方面同样表现出色基于这两点可以看出ViT相较于传统的卷积神经网络确实具有显著的优势。

分析部分
Vision Transformer模型究竟需要多少数据量才能达到较好的训练效果?
在论文中,第三张图是最关键的成果展示(Take-Home Message),它几乎涵盖了所有实验结果。

在这里插入图片描述

图三主要展示了不同数据集规模下的模型性能对比。其中灰色区域代表了bit的具体数值范围,在中间的灰色区域反映了resnet能够达到的效果范围。具体来说,在最小规模的ImageNet上进行预训练时,在这种情况下Vision Transformer的表现明显不及ResNet,在这种情况下Vision Transformer的表现明显不及ResNet。然而当数据集扩大到ImageNet-21k时,Vision Transformer与ResNet的表现已经相当接近,并且在该规模下所有实验点都落在了对应的bit范围内。进一步地,在超大规模的数据集中即JFT-300M的情况下 Vision Transformer的表现甚至超越了ResNet。

综上所述这张图表旨在传达的信息包括两大核心信息

  1. 若使用Vision Transformer,则必须至少准备与ImageNet-21k相当规模的数据集;如果手头仅有小规模数据集,则建议考虑采用卷积神经网络。
  2. 当已获得比ImageNet-21k更大规模的数据集时,则可选用Vision Transformer以取得更好的效果;其扩展能力更强。

整篇论文的核心内容也就是这个关于(规模大就难以得到有效提升)的scaling问题

如图所示,为了便于对比分析,在图三中作者将Vision Transformer与ResNet进行了性能对比研究。为此,在训练过程中对模型施加了包括Dropout、权重衰减和标签平滑在内的多项强化约束条件。然而这使得对Vision Transformer模型本身特性进行深入分析变得困难。因此,在图四中采用了Linear Few-Shot Evaluation方法(即在获得预训练模型后直接将其作为特征提取器使用而不进行微调优化)。同时采用了“few-shot”策略,并在ImageNet数据集上设置了5个样本的评估指标(即在该数据集上进行线性评估)。每一种类别随机选取了5个样本用于评估。这样的评估过程非常高效快捷。通过这一方法进行了广泛的消融实验验证

在这里插入图片描述

图四中横轴表示预训练数据集的大小,在本次研究中我们基于JFT进行了实验,并未引入其他数据集;然而为了更细致地分析模型性能的变化特点,在JFT的基础上选取了其若干子集进行评估:包括1千万像素级别(10M)、3千万像素级别(30M)、1亿像素级别(100M)以及3亿像素级别(300M)的数据样本。由于所有实验均基于同一原始数据集提取而来,在保证不同规模训练数据之间的分布一致性基础上进行模型性能比较更为合理。

与图三所示的实验结果基本一致,
图四中的浅灰色曲线代表ResNet-50模型的表现,
深灰色曲线则对应ResNet-152模型的表现。
值得注意的是,
当采用的小规模预训练数据量较小时,
Vision Transformer的表现明显弱于ResNet架构,
这表明两者的性能差异在小样本条件下较为显著。

本文认为主要原因在于缺乏归纳偏差和约束机制(如权重衰减与标签平滑等技术),这导致在仅拥有1千万像素级别训练数据时,
Vision Transformer容易出现过拟合现象。
然而,
值得注意的是,
在本研究中所观察到的提升效果并不十分显著。
然而,
在最后一节中作者建议进一步探索Vision Transformer在小样本学习任务中的应用前景。

基于已有研究指出vision transformer的预训练所需资源相对较少。因此,在支持该结论时需要进行额外的实验以验证其有效性。大多数人都认为transformer模型庞大且难以训练;具体数据分布情况如图5所示。

在这里插入图片描述

左图中的五折验证结果是基于五个典型数据集(包括ImageNet real、宠物图像、花卉图像等)计算得出,并取其平均值作为评估指标。为了突出ImageNet的重要性这一核心因素的影响程度,作者特意将其单独列出了另一张表格(如右图所示)。然而从整体来看这两组实验结果并没有实质性的差异。其中蓝色圆圈代表Vision Transformer(ViT),灰色圆圈代表ResNet架构;而橙色加号则表明这些模型采用了混合架构设计——即结合了卷积神经网络与Transformer组件;此外在这张图表中大小不一的圆点则分别对应着不同变体形式:无论是Vision Transformer还是ResNet系列模型的各种改进版本都可以在此框架下得到统一展示。值得注意的是所有模型均在JFT 300M大规模语言理解任务基准测试集上进行了预训练工作——这一设计意图是为了避免模型性能受到特定数据量限制的风险

在图片中几例典型的实验结果:值得深入分析的是…

将蓝色圆圈代表的vit与灰色圆圈代表的resnet进行对比分析,在计算复杂度相当的情况下通常情况下,在计算资源投入相似的情况下一般情况下,在计算效率相近的前提下一般transformer架构通常情况下,在计算资源投入相近的前提下一般情况下,在同等计算资源投入下通常情况下,在相同计算条件下 该种架构普遍展现出更高的效率 在小型模型中 混合架构展现出极高的精度水平 其精度略高于对应的vision transformer和resnet架构 在小型规模下 混合架构在性能上具有显著优势 当模型规模逐渐扩大时 模型效率提升的空间逐渐缩减 随着模型规模逐渐扩大时 模型效率提升的空间逐渐缩减 Vision transformer的表现持续提升中没有明显的饱和现象 从整体趋势来看 Vision transformer的表现持续提升中没有明显的饱和现象 卷积神经网络提取出的特征未能显著提升vision transformer的学习能力 卷积神经网络提取出的特征未能显著提升vision transformer的学习能力

完成训练成本分析后, 作者进行了相关视觉化处理, 以深入探究vit内部的表征特征

在vision transformer的第一层(linear projection layer E)中通过下图可以看到E是如何将rgb值嵌入其中值得注意的是在此展示的主要前28个主成分实际上vision transformer所学到的内容与卷积神经网络具有相似性类似于使用gabor滤波器的效果其包含了丰富的色彩信息和纹理特征因此作者指出这些成分能够充当基函数的角色这意味着它们可用于描述图像块中最低层的特征结构

在这里插入图片描述

如何理解位置编码的工作原理?如图所示,在二维网格中用数值表示各个区域间的相似性程度。数值越大表示相似性越高(余弦相似度范围在-1到1之间),横向和纵向坐标分别代表对应的patch区域。同一坐标处的元素与自身进行比较时会获得最高相似度值。此外所学的位置编码能够反映不同区域之间的距离信息,并且通过这种方式也隐式地学习到了图像的空间布局规律。值得注意的是尽管采用的是1维形式 但这种编码方式已经能够反映出图像中行和列之间的距离关系。

在这里插入图片描述

最后作者希望考察自注意力机制是否发挥作用,并探讨其实现原理。具体选择使用transformer架构的原因在于其自注意力机制能够模拟长距离的关联性。该模型架构包含24个层,在每一层内部均部署了多个多头自注意力模块(attention head)。其中 vit large 16模型总计设置了16个独立的注意力头,在每一层中这些头能够并行处理不同位置之间的相关性计算问题。图中展示的是 vit large 16模型的整体架构图,在该架构中每一层都配置了一个多头自注意力模块组(multi-head attention block)。值得注意的是,在vit大模型中每个像素点都会与其他所有像素点进行交互计算,并通过self-attention权重矩阵来表征这种空间关系特征。纵轴所表示的是mean attention distance(平均关注距离),这一指标用于衡量不同位置之间的关注程度差异性:具体而言,在图像空间中两个像素点之间的关注距离等于它们的空间间距乘以对应位置的关注权重值;而由于self-attention机制是全局性的计算过程,在此过程中每一个像素点都会与图像中的所有其他像素点建立联系,并根据其重要性赋予不同的关注权重值。从实验结果来看,在前几层中存在两种类型的多头self-attention模块:其中一部分模块表现出较近的距离特征(如20px),而另一部分则能捕捉到远至120px的空间关系特征;这表明即使在最初的网络层次中也能捕捉到全局信息的能力远超卷积神经网络(CNN)的第一层receptive field(感受野),即CNN最初只能观察邻近区域的局部特征;随着网络深度逐渐增加(如第24层),各关注头所提取的空间关系范围也在不断扩展,并最终展现出高度特化的语义理解能力

在这里插入图片描述

为了验证上述所得结论, 作者进一步绘制了另一幅示意图, 如下所示. 该示意图基于网络最后一层out token生成, 通过这一示意图可以看出, 输出token通过反向传播自注意力机制至原始输入图像后仍可体现出这些关键特征. 就整体而言, 每个输出token都整合了全局特征的信息, 因此能够聚焦于与分类任务相关的图像区域.

在这里插入图片描述

文章末尾部分进一步探讨了利用自监督学习的方法进行vision transformer模型的实验结果分析。

这篇论文共计附录部分占据了22页的篇幅,在众多研究结果中作者将其他相关研究内容集中放置于附录中,并特意将基于监督学习方法的核心内容安排在主文部分。这种安排充分体现了其重要性。从自然语言处理领域的角度来看,该模型确实在该领域发挥了巨大的推动作用,然而真正推动该模型取得突破的是大规模自监督预训练任务的成功实施。值得注意的是,在NLP领域中,无非就是完形填空或者是预测下一个词两种形式,但因为本文的研究思路深受BERT的影响,所以作者尝试能否借鉴BERT所采用的目标函数构建一种独立于文本域的独特视觉任务目标函数。具体而言,BERT采用了mask语言建模(Masked Language Modeling)的方式,即给定一段文本后随机遮蔽若干词语并以此作为训练信号;本文则在此基础上模仿BERT所采用的目标函数构建了一种独立于文本域的独特视觉任务目标函数:模仿BERT所采用的目标函数构建了一种独立于文本域的独特视觉任务目标函数:模仿BERT所采用的目标函数构建了一种独立于文本域的独特视觉任务目标函数

然而,在ImageNet上仅获得80%左右的准确率。尽管相比直接从头训练Vision Transformer提升了约2个百分点,但相较于最先进的监督学习方法仍低4个百分点。因此،作者认为对比学习的表现值得进一步探索。(对比学习作为21世纪最热门的话题之一, 在自监督学习中取得了显著成效)

11. 对...的技术方案进行详细分析和判断.

这篇论文写作依然保持了高度的清晰易懂性,在面对丰富的内容与研究成果时展现出了卓越的能力,在处理重点与次要内容方面把握得恰到好处,并成功地将核心发现系统地呈现给读者;通过图表的形式进行清晰呈现。

就内容而言,在各个层面都可以进行分析、优化和推广vision transformer技术

从任务角度来看, vision transformer主要被用作分类工具.然而,在应用层面,它不仅能够用于检测和分割工作,还可以扩展至多个领域.

从结构重组的角度来看,在构建语言模型时可以选择性地调整初始阶段的语言分割方式(tokenization),也可以优化中间层的transformer模块设计,在这一基础上还出现了将自注意力机制直接替换为多层前馈网络(MLP)的做法(相关研究如mataformer论文所示)。值得注意的是,在这一领域内研究者们已经证明即使采用简单的池化操作也能取得显著效果(文中提出的pool former模型正是基于一个无法学习复杂模式的操作实现)。由此可见,在模型优化方面仍具有广阔的发展空间。

从目标函数的角度来看,除了继续采用有监督的方法外,还可以探索多种自监督训练的方式。

vit架起了NLP与CV之间的桥梁,并开发了一个跨模态领域的更大空间。它能够被用来进行视频、音频以及基于触觉的信号处理,从而使得各种模态的数据都可以被有效利用。

全部评论 (0)

还没有任何评论哟~