1.背景与动机
- NLP 与 Transformer 的成功
自从 Transformer 架构在自然语言处理(NLP)中获得巨大成功,预训练——微调的模式已成为处理文本任务的标准策略。大规模预训练使得 Transformer 能够扩展到超大模型(如 GPT-3、BERT 等),不断刷新各项指标。
- 计算机视觉中的传统模式
相较于 NLP,计算机视觉领域长期以来主要依赖卷积神经网络(CNN),其具有局部感知、平移不变性等归纳偏置,但这些 CNN 模型在大规模预训练和高效扩展方面存在瓶颈。
- ViT 的提出
为了借鉴 NLP 中 Transformer 的可扩展性与高效性,ViT 提出了一个大胆的思路:将图像直接划分为一系列固定大小的 patch,然后将这些 patch 的线性嵌入序列作为 Transformer 的输入,从而完全抛弃传统 CNN 的结构。
2.摘要和结论部分
2.1 摘要部分及其翻译
虽然 Transformer 架构已成为自然语言处理任务的事实标准,但它在计算机视觉领域的应用仍然相对有限。
在视觉任务中,注意力机制通常是与卷积网络结合使用,或者用于替换卷积网络的部分组件,同时保持整体网络结构不变。
我们展示了其实并不需要依赖 CNN,而是可以将纯 Transformer 直接应用于图像块(patch)序列,并在图像分类任务上取得非常好的表现。
经过在大量数据上预训练后,再迁移到多个中小规模的图像识别基准(如 ImageNet、CIFAR-100、VTAB 等),Vision Transformer (ViT) 与当前最先进的卷积网络相比,取得了卓越的结果,同时训练所需的计算资源也大大降低。
2.2结论部分及其翻译
我们探索了 Transformer 在图像识别任务中的直接应用。与先前在计算机视觉中使用自注意力(self-attention)的方法不同,我们在 ViT 结构中没有引入除初始图像分块(patch extraction)之外的图像特定归纳偏置。相反,我们将一张图像视为一系列不重叠的图像块(patches),并将这些块的线性嵌入(linear embeddings)输入标准 Transformer 编码器(encoder),其工作方式与自然语言处理(NLP)中的 Transformer 相同。这种简单但具有高度可扩展性的策略在与大规模数据集预训练结合时,表现出令人惊讶的有效性。因此,Vision Transformer(ViT)在多个图像分类基准数据集(如 ImageNet、CIFAR-100、VTAB 等)上匹配甚至超越了当前最先进的卷积神经网络(CNN),同时其预训练成本相对较低。
尽管初步结果令人鼓舞,但仍然存在诸多挑战。首先,需要将 ViT 拓展到其他计算机视觉任务,如目标检测(object detection)和语义分割(segmentation)。我们的研究结果,加上 Carion 等人(2020)的相关工作,表明这一方法在更广泛的视觉任务中具有巨大潜力。其次,需要继续探索自监督学习(self-supervised learning)在 ViT 预训练中的应用。尽管初步实验表明自监督预训练可以带来一定的性能提升,但与大规模监督学习(supervised learning)相比仍然存在显著差距。最后,进一步扩展 ViT 的规模(即增大模型参数量和训练数据集规模)可能会带来更好的性能提升。
2.3 详解
- 视觉领域中对 CNN 的依赖
在计算机视觉领域,传统上主流的方法依赖于卷积神经网络(CNN)。CNN 利用局部感受野、权重共享等归纳偏置,能有效捕捉图像的局部特征。然而,这些归纳偏置也限制了 CNN 捕捉全局信息的能力。为了解决这个问题,许多研究尝试在 CNN 中加入注意力模块,或者用注意力机制替换部分卷积操作,但总体上依然保留了 CNN 的基本结构。
- 大规模预训练的重要性
实验表明,当 ViT 在大规模数据集(如 ImageNet-21K 或 JFT-300M)上进行预训练后,它能够充分学习到图像的全局和局部特征,即使在后续迁移到中小规模数据集(如 ImageNet、CIFAR-100、VTAB 等)时,也能取得与甚至超越当前最先进的 CNN 模型的性能。一个关键发现是,大规模训练的数据量能够弥补 Transformer 在视觉任务中缺乏固有归纳偏置的问题。
- ViT 的核心思想:纯 Transformer 的图像处理
与以往的方法不同,ViT 的创新点在于直接将图像视为一系列 patch(图像块)的序列,这些 patch 被看作是“词语”,并通过线性映射获得固定维度的向量表示。这样,图像处理过程可以直接使用与 NLP 完全相同的 Transformer 编码器,不再依赖于 CNN 的局部归纳偏置。这种方法简化了模型设计,并使得模型在足够大数据集预训练时能够自动学习全局特征。
- CNN 的局部归纳偏置
CNN 的“局部归纳偏置”(local inductive bias)主要指的是卷积神经网络在设计上内置了一个假设:图像中局部区域的信息更为重要,且相邻像素之间往往具有相关性。这种偏置主要来源于以下两个方面:
- 局部感受野(Local Receptive Field):卷积核(filter)在滑动过程中只关注输入图像的一个小区域。这意味着每个卷积操作只处理局部的信息,而不是整个图像。这样的设计利用了图像中局部特征(如边缘、纹理和简单形状)通常具有高度相关性的特性,从而使网络在学习过程中能够有效地提取和利用这些局部特征。
- 权重共享(Weight Sharing):同一卷积核在整个图像上重复使用,这种共享参数的机制假设图像中相似的局部模式在不同位置是相同的。这不仅减少了模型参数的数量,还使得模型具有平移不变性(translation invariance),即当图像发生平移时,卷积层仍能检测到相同的特征。
因此,正是由于卷积核只采样局部区域的信息,并且在全图范围内共享相同的参数,CNN 天然具备了局部归纳偏置。这种偏置帮助 CNN 快速有效地捕捉图像中的局部模式,但同时也可能限制模型捕获全局关系的能力,这也是 Vision Transformer 等模型试图克服的一个方向。
3.Intro部分翻译以及解析
3.1翻译
基于自注意力(Self-Attention)的架构,尤其是 Transformer(Vaswani et al., 2017),已经成为自然语言处理(NLP)任务的首选模型。当前主流的方法是在大规模文本数据集上进行预训练,然后在较小的任务特定数据集上进行微调(fine-tuning)(Devlin et al., 2019)。
由于 Transformer 具有高效的计算能力和卓越的可扩展性,如今已经可以训练出参数规模超过 1000 亿(100B)的超大模型(Brown et al., 2020; Lepikhin et al., 2020)。随着模型和数据集规模的不断增长,Transformer 仍然没有出现性能饱和的迹象。
然而,在计算机视觉(CV)领域,卷积神经网络(CNN)仍然是主流方法(LeCun et al., 1989; Krizhevsky et al., 2012; He et al., 2016)。受到 NLP 领域成功经验的启发,研究人员尝试将自注意力机制与 CNN 结合(Wang et al., 2018; Carion et al., 2020),甚至完全用自注意力替代卷积操作(Ramachandran et al., 2019; Wang et al., 2020a)。然而,尽管后者在理论上是高效的,但由于这些方法依赖于特定的注意力模式(specialized attention patterns),目前在现代硬件加速器(如 GPU、TPU)上还无法很好地扩展(scaling)。因此,在大规模图像识别任务中,ResNet 类架构仍然是当前最先进(state-of-the-art, SOTA)的方法(Mahajan et al., 2018; Xie et al., 2020; Kolesnikov et al., 2020)。
受到 NLP 领域 Transformer 规模化(scaling)成功的启发,我们尝试将标准 Transformer 直接应用于图像,并尽可能减少结构上的修改。
具体方法是:将输入图像划分为一系列固定大小的不重叠图像块(patches),并将这些块的线性嵌入(linear embeddings)作为 Transformer 的输入。这种方式与 NLP 任务类似,图像块(patches)被视为 NLP 中的 token(单词或子词),然后输入 Transformer 进行处理。我们采用**监督学习(supervised learning)**的方式在图像分类任务上训练模型。
然而,在 中等规模数据集(如 ImageNet) 上训练时,如果没有强正则化(strong regularization),ViT 的性能相比于相同规模的 ResNet 低几个百分点。这一结果可能会让人感到失望,但实际上是符合预期的。
原因是:Transformer 缺乏 CNN 内在的归纳偏置(inductive bias),例如:
- 平移等变性(Translation Equivariance):CNN 通过权重共享确保相同特征在不同位置都能被识别,而 ViT 没有这样的机制。
- 局部感受野(Locality):CNN 的卷积核天生关注局部信息,而 ViT 依赖自注意力计算全局信息,可能导致对局部特征的建模不足。
由于这些特性,ViT 在小规模数据集上泛化能力较差,难以像 CNN 那样高效地学习特征。
然而,当训练数据规模足够大时,情况发生了变化(即 1400 万到 3 亿张图像,14M-300M images)。研究发现,大规模数据训练可以弥补 CNN 归纳偏置的缺失。Vision Transformer(ViT)在大规模数据集上进行预训练后,再迁移到较小数据集任务时,能够取得卓越的性能。
在 ImageNet-21k(1400 万张图片)或 JFT-300M(3 亿张图片)的预训练后,ViT 在多个图像识别任务上接近或超越了 SOTA 的 CNN 模型。
3.2解析
1. Transformer vs. CNN:局部归纳偏置的取舍
CNN 通过卷积操作确保了模型具有平移等变性(Translation Equivariance)和局部感受野(Locality),这使得它在较小规模数据集上表现出色。然而,这些归纳偏置在大规模数据集下可能不是必须的:
- CNN 强调局部特征,适用于小数据集的高效学习,但可能限制了全局特征建模能力。
- ViT 采用全局自注意力,理论上能学习到更全面的特征,但如果数据不够多,缺乏 inductive bias 会导致性能下降。
- 研究表明,在超大规模数据集上训练时,数据本身可以替代归纳偏置,让 ViT 通过学习获得更优的特征表示。
2. 为什么 ViT 在大规模数据上更有效?
CNN 的 inductive bias 是一种捷径(shortcut),它通过结构设计让模型在有限数据上快速收敛,但在大数据上可能会限制泛化能力。
ViT 没有 inductive bias,因此需要更多数据来学习全局特征,一旦数据足够多,它可以获得比 CNN 更好的泛化能力。
这类似于 NLP 领域的 BERT、GPT-4,大模型+大数据=更强的性能,而 CNN 由于架构上的先验,可能在大数据下反而表现受限。
3. ViT 的未来挑战
在小规模数据集上的性能优化:ViT 需要新的正则化策略或混合架构(如 CNN+ViT)来提升小数据集上的泛化能力。
适用于目标检测、分割等任务的 ViT 变体:目前的 ViT 主要用于分类任务,而 CNN 在检测和分割上仍占主导地位,如何优化 ViT 以适应这些任务仍是开放问题。
自监督学习(Self-Supervised Learning, SSL):当前 ViT 依赖大规模有监督学习(supervised learning),但自监督方法(如 MAE, DINO)可能进一步提升其效果,减少对标注数据的依赖
4.方法部分
4.1翻译
在模型设计上,我们尽可能严格地遵循原始 Transformer 结构(Vaswani 等人,2017)。这种有意保持简单的设计的一个优势在于,可以几乎直接使用可扩展的 NLP Transformer 架构及其高效实现。
VISION TRANSFORMER (VIT)
模型的概览如图所示。标准 Transformer 以 1D 令牌(token)嵌入序列 作为输入。为了处理 2D 图像,我们将输入图像重塑为一组展平的 2D 图像块,记作
,其中:
- (H,W) 是原始图像的分辨率,
- C 是通道数,
- (P,P) 是每个图像块(patch)的分辨率,
是最终的图像块(patch)数量,也是 Transformer 的 输入序列长度。
在 Transformer 中,所有层的 潜在向量维度𝐷 皆保持恒定,因此我们首先将 图像块展平,然后通过一个可训练的线性投影映射到𝐷 维度。这个投影的输出称为 patch embedding(图像块嵌入)。
类似于 BERT 中的 [class] 令牌,我们在嵌入的图像块序列前 添加一个可学习的嵌入向量()。Transformer 编码器的最终输出状态(
)作为整幅图像的表示向量。
在预训练和微调(fine-tuning) 过程中,都会在上附加一个分类头:
- 在预训练阶段,分类头是一个带有单隐层的 MLP。
- 在微调阶段,分类头是单层线性变换。
为了保留位置信息,我们在图像块嵌入上添加位置嵌入(position embedding)。实验表明 标准的 1D 可学习位置嵌入 效果良好,使用更复杂的 2D 位置嵌入并未带来显著性能提升。
最终的嵌入向量序列作为 Transformer 编码器的输入。该编码器(Vaswani 等,2017)由交替的多头自注意力和 MLP 块组成。此外,每个块之前都会进行 LayerNorm(LN)归一化,每个块之后都带有残差连接(Wang 等,2019;Baevski & Auli,2019)。
归纳偏置Inductive bias
我们注意到,Vision Transformer (ViT) 相较于 CNN 具有更少的图像特定归纳偏置。在 CNN 中,局部性(locality)、二维邻域结构(2D neighborhood structure)以及平移等变性(translation equivariance)被内置到整个模型的各个层中。而在 ViT 中,只有 MLP 层具备局部性和平移等变性,而自注意力(self-attention)层则是全局的(global)。二维邻域结构的使用非常有限,仅在模型的起始阶段通过将图像划分为 patch 以及在微调(fine-tuning)过程中调整不同分辨率图像的位置编码时被用到。除此之外,在初始化时,位置编码(position embeddings)并不包含任何关于 patch 的二维位置信息,所有 patch 之间的空间关系必须从零开始学习。
混合架构(Hybrid Architecture)
作为原始图像 patch 的替代方案,输入序列可以由 CNN 提取的特征图(feature map)构成(LeCun et al., 1989)。在这种混合模型(hybrid model)中,patch 嵌入投影𝐸被应用于 CNN 特征图中提取的 patch。作为一种特殊情况,patch 的空间尺寸可以设为1×1,此时,输入序列可以通过简单地展平(flattening)特征图的空间维度并投影到 Transformer 维度来获得。分类输入嵌入(classification input embedding)和位置嵌入(position embeddings)的添加方式与上述方法相同。
微调与更高分辨率的处理 FINE-TUNING AND HIGHER RESOLUTION
通常,我们会在大型数据集上对 ViT 进行预训练,并在较小的下游任务上进行微调。为了实现这一点,我们移除预训练的预测头,并附加一个 零初始化 的𝐷×𝐾 前馈层(其中𝐾是下游任务的类别数)。
在微调时,使用比预训练更高的图像分辨率通常是有利的(Touvron et al., 2019; Kolesnikov et al., 2020)。当输入更高分辨率的图像时,我们保持 patch 大小不变,这会导致更长的有效输入序列。
虽然 Vision Transformer 可以处理任意长度的序列(只要内存允许),但预训练时的位置编码可能不再适用。因此,我们对预训练的位置编码进行 二维插值,以适应它们在原始图像中的相对位置。
需要注意的是,这种分辨率调整和 patch 提取过程,是 Vision Transformer 仅有的两个手动注入 2D 归纳偏置(inductive bias)的地方。
4.2解析
VISION TRANSFORMER (VIT)
1. 采用图像块(Patch)拆分图像的原因
ViT 直接将 2D 图像拆分为 Patch 并展平成 1D 序列,使其能与 NLP Transformer 结构保持一致。这种设计的核心动机在于:
- 兼容 NLP Transformer 现有架构:避免大幅修改 Transformer 结构,使其可以直接受益于 NLP 领域成熟的实现和优化技术。
- 减少计算复杂度:传统 CNN 通过局部卷积核捕捉特征,而 Transformer 的自注意力计算量为𝑂(𝑁2),如果直接作用于像素级别(𝑁=𝐻×𝑊),计算成本过高。因此,将图像划分为 Patch 并降低序列长度(𝑁=𝐻𝑊/𝑃2)可以缓解这一问题。
2. 为什么需要 Patch Embedding?
原始 Transformer 处理的是 嵌入向量(embedding),但图像数据是原始像素值,因此需要将图像块映射到与 Transformer 兼容的嵌入空间。
- 线性投影的作用:
- 降维:原始图像块维度𝑃2⋅𝐶可能较高,直接输入 Transformer 不利于优化。
- 特征转换:允许模型学习从原始像素到高维特征空间的映射,以适应 Transformer 结构。
3.为什么添加 Class Token?
ViT 参考了 BERT 的 [CLS] 令牌设计,添加了一个可训练的 class token(𝑥class
),并用其在 Transformer 编码器最后一层的表示作为整张图像的全局特征:
- 优势:全局特征直接用于分类,无需在所有 Patch 之间进行池化(如 CNN 中的全局平均池化)。
- 局限性:相较 CNN 具有归纳偏置,ViT 需要更大数据量才能学到合理的全局特征。
4. 为什么采用 1D 位置嵌入?
- Transformer 不具备 CNN 天然的局部归纳偏置(Local Inductive Bias),因此需要显式编码位置信息。
- 标准 1D 位置编码 已被证明在 NLP 任务中效果良好,而 2D 位置编码(如二维相对位置编码)尽管更符合图像结构,但实验未显示明显提升,因此研究者选择了更简单的 1D 可学习位置编码。
5. 为什么 LayerNorm(LN)放在块前,而不是块后?
早期 Transformer 采用 “Post-LN” 结构(LN 在残差连接后),但后续研究发现 “Pre-LN” 结构(LN 在残差连接前):
- 优化更稳定:避免深层模型训练时的梯度消失问题。
- 梯度传播更有效:能更快收敛,提高训练效率。
- 这一修改已在 Transformer 变体(如 BERT、GPT-3)中得到广泛验证,因此 ViT 也采用了 Pre-LN 结构。
6. 为什么使用 MLP 作为分类头?
- 预训练阶段使用 MLP(带隐层):
- MLP 具有更强的非线性表达能力,有助于学习更丰富的特征表示。
- 微调阶段使用单层线性变换:
- 线性分类头能让模型在小数据集微调时更稳定,并减少过拟合。
Inductive bias
1. 归纳偏置的定义及其作用
归纳偏置(Inductive Bias)指的是学习算法在训练数据有限时,倾向于学习某些模式的固有假设。传统的 CNN 由于其架构特性,在整个模型中引入了强烈的归纳偏置。例如:
- 局部性(Locality):CNN 的卷积操作限制了感受野(receptive field),使得模型主要关注局部区域的信息。
- 平移等变性(Translation Equivariance):由于权重共享,CNN 无论在图像的哪个位置检测到相同的特征,都会做出相同的响应,从而提高了泛化能力。
- 二维邻域结构(2D Neighborhood Structure):卷积核(kernel)处理的是相邻像素的局部特征,捕获了自然图像的结构特性。
这些归纳偏置帮助 CNN 在小规模数据集上有效学习,并提高泛化能力。然而,它们也限制了 CNN 的灵活性,使其难以建模全局信息,特别是在数据规模增大时。
2. ViT 的归纳偏置较弱,学习更加自由
相比之下,ViT 几乎不依赖 这些先验假设,仅在以下两种情况下涉及二维结构:
- 初始阶段:ViT 将输入图像划分为多个 patch,每个 patch 作为 Transformer 的 token 进行处理。这一过程类似于 NLP 任务中的单词嵌入。
- 微调阶段:当输入图像分辨率发生变化时,ViT 需要调整位置编码(position embeddings)。
除此之外,ViT 在初始化时并不具备 CNN 先天的归纳偏置,patch 之间的所有空间关系都需要从零开始学习。这意味着 ViT 需要大量数据来弥补归纳偏置的缺失,否则容易过拟合。
3. ViT 归纳偏置弱带来的优缺点
- 优点:ViT 在大规模数据集(如 JFT-300M)上训练时,其全局注意力机制可以充分发挥作用,建模更复杂的长距离依赖关系,从而达到甚至超越 CNN 的性能。
- 缺点:ViT 缺乏归纳偏置,在数据量较小时泛化能力较弱,容易过拟合。此外,ViT 需要更长的训练时间和更大的计算资源,因为它必须学习 CNN 直接内置的归纳偏置。
-
小数据集(如 CIFAR-10, CIFAR-100):CNN 更具优势,因为其归纳偏置允许其快速学习图像的重要特征,即使数据有限也能泛化良好。
-
大数据集(如 ImageNet-21K, JFT-300M):ViT 更具优势,数据规模足够大时,它可以利用全局注意力更有效地学习图像中的长程依赖关系。
混合架构(Hybrid Architecture)
1. 为什么需要混合架构?
ViT 直接使用原始图像 patch 作为输入,并通过 Transformer 进行建模,但这一策略带来了一些问题:
- 计算量大:直接处理原始图像 patch 需要较高的计算资源,尤其是在高分辨率图像上。
- 缺乏局部归纳偏置:CNN 具有强烈的局部归纳偏置(locality),可以高效提取边缘、纹理等低级特征,而 ViT 需要依赖数据驱动的方法来学习这些特征,这使得 ViT 在小数据集上表现不佳。
混合架构(Hybrid Architecture) 试图结合 CNN 与 ViT 的优势,通过 CNN 先提取特征,再输入 Transformer,形成更高效的架构。
2. 混合架构如何工作?
- CNN 作为特征提取器:首先,使用 CNN 处理输入图像,并提取出一组特征图(feature maps)。
- 将 CNN 特征图转换为 Transformer 输入:将 CNN 生成的特征图划分为小 patch,并进行嵌入投影(embedding projection),以匹配 Transformer 的输入维度。
- 特殊情况:1×1patch 处理方式
- 如果 patch 设为1×1,则相当于直接展平 CNN 特征图的空间维度,使得 Transformer 以逐个特征点的方式处理信息,而不是像 ViT 那样按块(patch)处理。
这意味着,混合架构在保持 Transformer 全局建模能力的同时,利用 CNN 提取局部特征,从而提升计算效率和泛化能力。
4. 混合架构的应用场景
- 小数据集任务(如医学影像分类、遥感图像分析):CNN 先提取关键特征,再由 Transformer 建模全局信息,可以减少对大规模数据的依赖。
- 高分辨率图像任务(如目标检测、语义分割):直接使用 ViT 计算成本高昂,而 CNN 预处理可以显著降低计算复杂度。
- 实时任务(如自动驾驶、工业检测):混合架构可以在保持较高精度的同时,提高推理速度。
微调与更高分辨率的处理 FINE-TUNING AND HIGHER RESOLUTION
这段内容主要讨论了 ViT 微调(fine-tuning)时的策略,尤其是 分辨率调整对模型的影响。以下是关键分析点:
1. ViT 预训练和微调的核心机制
- ViT 依赖大规模预训练,因为它没有 CNN 那样的归纳偏置,在小数据集上表现较差。
- 微调时需要适配不同任务的分类头,通常将原来的预测头替换为新的全连接层,并进行 零初始化,以确保新任务的学习不会受预训练任务的影响。
2. 为什么微调时使用更高的分辨率?
- 预训练时通常使用 较低分辨率(如 224×224),以降低计算成本。
- 微调时,更高的分辨率能提供更丰富的细节,提升下游任务的分类性能。
- 由于 Transformer 不受固定感受野限制,它可以在更高分辨率下学习更丰富的全局特征,而 CNN 在较高分辨率下可能更难训练(需要扩大感受野)。
3. 位置编码的二维插值
- Transformer 本身不具备空间归纳偏置,而 CNN 通过卷积自然地编码了局部位置信息。
- 预训练时的位置编码是基于固定分辨率的,而在更高分辨率下,这些编码可能不再适用。
- 解决方案:通过二维插值重新调整位置编码,让高分辨率图像的 patch 仍然保持相对位置关系。
- 关键点:ViT 仅在这一点上引入了 2D 空间归纳偏置,其余部分仍然是纯 Transformer 计算。
Vision Transformer(ViT)的位置编码(Position Embedding)
1. 为什么 ViT 需要位置编码?
Transformer 结构本身不包含空间关系:
- CNN 通过**卷积核(local receptive fields)和池化层(downsampling)**天然感知局部结构与空间关系。
- 但 Transformer 直接对所有 Patch 进行全局自注意力计算(Self-Attention),缺乏 CNN 的这种归纳偏置(Inductive Bias)。
解决方案:在输入的 Patch 线性投影后,额外加上位置编码,以显式提供空间信息。
2. ViT 位置编码的实现方法
ViT 采用 可学习的位置编码(Learnable Position Embedding),其实现方式如下:
(1)输入 Patch 处理流程
假设输入图像大小为𝐻×𝑊(高 × 宽),每个 Patch 大小为𝑃×𝑃,则:总 Patch 数量:𝑁=
𝐻/𝑃×𝑊/𝑃
每个 Patch 展平后维度:𝐷=𝑃×𝑃×𝐶(C 是通道数,如 RGB 为 3)
然后,每个 Patch 通过一个**线性投影层(Linear Projection)**映射到固定维度的特征空间,记作:,其中𝑑是 Transformer 模型的隐藏层维度。
(2)位置编码的计算
ViT 直接学习一个与 Patch 数量相同的可训练位置编码矩阵:
PosEmb
其中,每个 Patch 位置都对应一个可训练的向量,在训练过程中不断优化。
最终,输入到 Transformer 的序列向量为:
𝑍=𝑋+PosEmb
这样,模型在处理不同 Patch 时,不仅考虑其特征𝑋,也能感知其空间位置信息。
3. 位置编码的性质分析
- 每个 Patch 都有独立的编码,不依赖于图像尺寸(即 ViT 的位置编码与 CNN 的固定感受野不同,更具灵活性)。
- 编码是可训练的,因此可以自动适配任务和数据集。
- 相比于固定的 Sinusoidal 位置编码(如 Transformer 在 NLP 任务中的编码),可学习的编码更适合视觉任务。
4. 位置编码的影响
- 位置编码的设计影响 ViT 在小数据集上的表现。
- 大规模数据集(如 JFT-300M):可学习的位置编码足够强大,可以通过数据自动优化。
- 小数据集(如 ImageNet):局部结构归纳偏置较弱,可能不如 CNN 直接学习到空间结构。
- ViT 在小数据集上可能过拟合到具体的位置编码,导致泛化能力下降。
- 解决方案:可以使用数据增强(如 CutMix、Random Erasing)或改进位置编码方法(如相对位置编码)。
5.实验部分
5.1翻译
我们对 ResNet、Vision Transformer(ViT)及其混合模型 的表征学习能力进行了评估。
- 为了了解每种模型对数据规模的需求,我们在 不同大小的数据集 上进行预训练,并在多个基准任务(benchmark tasks)上进行评测。
- 在考虑预训练的计算成本时,ViT 表现出色 —— 在大多数图像识别基准上达到当前最优(state of the art),同时预训练成本低于传统方法。
- 最后,我们进行了一项小规模自监督学习实验,结果表明 自监督 ViT 具有很大的潜力,值得进一步研究。
1 .研究设置(Setup)
数据集(Datasets)
为了研究模型的可扩展性(scalability),我们使用了多个数据集进行实验:
- ImageNet (ILSVRC-2012):包含 1,000 个类别,共 130 万张图像。
- ImageNet-21k(ImageNet 的超集):包含 21,000 个类别,共 1,400 万张图像 (Deng et al., 2009)。
- JFT:包含 18,000 个类别,共 3.03 亿张高分辨率图像 (Sun et al., 2017)。
在预训练过程中,我们遵循 Kolesnikov et al. (2020) 的方法,去除与下游任务测试集重复的样本,以避免数据泄漏。
我们将这些数据集上训练的模型迁移到多个基准测试任务(benchmark tasks),包括:
- ImageNet(使用原始验证集标签和经过清理的 ReaL 标签集 (Beyer et al., 2020))。
- CIFAR-10/100 (Krizhevsky, 2009)。
- Oxford-IIIT Pets (Parkhi et al., 2012)。
- Oxford Flowers-102 (Nilsback & Zisserman, 2008)。
数据预处理方式与 Kolesnikov et al. (2020) 保持一致。
此外,我们还在 VTAB(Visual Task Adaptation Benchmark) 进行评估,该基准包含 19 个迁移学习任务 (Zhai et al., 2019b)。VTAB 主要用于评估低数据量情况下的模型泛化能力,每个任务仅使用 1,000 个训练样本,并划分为三大类:
- 自然类(Natural):如 ImageNet、CIFAR、Pets 等。
- 专门类(Specialized):如医学影像、卫星图像。
- 结构类(Structured):需要几何理解的任务,如目标定位(localization)。
模型变体(Model Variants)
ViT 配置借鉴了 BERT (Devlin et al., 2019),具体参见表 1。包括:
- ViT-Base(BERT Base 版)
- ViT-Large(BERT Large 版)
- ViT-Huge(更大版本)
我们使用简写表示模型大小和输入 Patch 大小,例如 ViT-L/16 代表 Large 版本,Patch 大小为 16×16。需要注意的是:Transformer 处理序列的长度与 Patch 大小的平方成反比,即较小的 Patch 会导致更长的序列,计算成本更高。
基准 CNN
- 采用 ResNet (He et al., 2016),但进行了优化:
- Batch Normalization(BN)→ Group Normalization(GN) (Wu & He, 2018)。
- 标准化卷积(Standardized Convolutions) (Qiao et al., 2019)。
- 这些改进提高了模型的迁移能力 (Kolesnikov et al., 2020)。
- 这种改进版本称为 ResNet (BiT)。
混合模型(Hybrid Models)
- 使用 CNN 提取的中间特征图作为 ViT 输入,Patch 大小设为 1×1(单像素)。
- 变体实验:
- 从标准 ResNet-50 第 4 个 stage 提取特征作为 ViT 输入。
- 修改 ResNet 结构:移除第 4 个 stage,将其层数并入第 3 个 stage,确保总层数不变。这一方案会导致序列长度增加 4 倍,计算成本更高
训练与微调(Training & Fine-tuning)
- 所有模型(包括 ResNet)均采用 Adam 优化器 (Kingma & Ba, 2015):
- β₁ = 0.9, β₂ = 0.999
- 批量大小 = 4096
- 高权重衰减(weight decay)= 0.1(实验发现对迁移学习有帮助)。
- 微调(fine-tuning):使用带动量的 SGD,批量大小 = 512。
- 高分辨率微调(High-Resolution Fine-tuning):
- ViT-L/16 采用 512 分辨率
- ViT-H/14 采用 518 分辨率
- 采用 Polyak 平均(动量因子 0.9999)(Polyak & Juditsky, 1992; Ramachandran et al., 2019; Wang et al., 2020b)。
评价指标(Metrics)
- Fine-tuning Accuracy(微调准确率):表示模型在微调后,在目标数据集上的最终性能。
- Few-shot Accuracy(少样本学习准确率):
- 通过正则化最小二乘回归(regularized least-squares regression) 计算。
- 该方法将 冻结的特征表示映射到 {−1,1}K 目标向量,可以得到封闭解(closed-form solution)。
- 由于 Fine-tuning 计算开销较大,在某些情况下使用 Few-shot 评价模型性能。
2 .与当前最先进方法(State of the Art, SOTA)的比较
我们首先将最大的 ViT 模型(ViT-H/14 和 ViT-L/16)与当前最先进的 CNN(SOTA CNN) 进行比较。这些 SOTA CNN 包括:
1.Big Transfer (BiT) (Kolesnikov et al., 2020):
- 采用大规模 ResNet 进行监督式迁移学习(supervised transfer learning)。
2.Noisy Student (Xie et al., 2020):
- 采用大规模 EfficientNet,并使用**半监督学习(semi-supervised learning)**在 ImageNet 和 JFT-300M(去除标签)上进行训练。
- 目前 Noisy Student 在 ImageNet 任务上是 SOTA,而 BiT-L 在其他数据集上的表现最好。
所有模型均在 TPUv3 硬件 上训练。我们报告了训练所需的 TPUv3-core-days,即 TPU v3 核心数(每个 TPU 芯片 2 个核心)× 训练天数。表 2 显示了实验结果:
1.ViT-L/16(JFT-300M 预训练):
- 在所有任务上均优于 BiT-L(两者使用相同数据集 JFT-300M 进行预训练)。
- 所需计算资源明显少于 BiT-L。
2.ViT-H/14(更大模型):
- 在更具挑战性的任务(ImageNet、CIFAR-100 和 VTAB)上进一步提升了性能。
- 尽管性能更强,但其预训练计算量仍然小于之前的 SOTA 方法。
值得注意的是,预训练效率不仅取决于模型架构,还受到训练策略、优化器、权重衰减等因素的影响。我们在4.4 节提供了不同架构的计算成本与性能对比的控制实验。
此外,ViT-L/16(ImageNet-21k 预训练) 在大多数数据集上表现良好,计算需求更低。
- 使用 8 核心标准 TPUv3,仅需约 30 天即可完成训练。
VTAB 任务细分(见图 2):
- ViT-H/14 在 Natural(自然图像)和 Structured(结构化任务)上超越了 BiT-R152x4 及其他 SOTA 方法。
- 在 Specialized(专业任务,如医学和卫星图像)上,ViT-H/14 和 BiT-R152x4 的性能相当。
3.预训练数据需求分析(Pre-Training Data Requirements)
Vision Transformer(ViT)在 JFT-300M 预训练时表现出色。相比 ResNet,ViT 在视觉任务上的归纳偏置(Inductive Bias)较少,因此数据集的规模是否至关重要?
我们进行了两组实验:
1.不同数据集规模的影响
- 在**不同大小的数据集(ImageNet、ImageNet-21k、JFT-300M)**上预训练 ViT。
- 在小数据集上,我们优化了三种正则化参数(权重衰减、dropout、标签平滑)。
- 结果(图 3):
- 在 ImageNet(最小数据集)预训练时,ViT-Large 比 ViT-Base 还要差,即使使用了适度正则化。
- 在 ImageNet-21k 上预训练时,两者性能相当。
- 只有在 JFT-300M 预训练时,大模型 ViT-L 才能充分发挥优势。
- BiT CNN 的表现:
- 在 ImageNet 预训练时,BiT CNN 优于 ViT。
- 随着数据集规模增大,ViT 逐渐超越 BiT。
2.不同子集大小的影响(9M、30M、90M、完整 JFT-300M)
- 在不同大小的 JFT-300M 随机子集(9M、30M、90M、完整 300M)上训练 ViT。
- 不对小数据集进行额外正则化,所有设置使用相同超参数,以评估ViT 的固有特性,而非正则化的影响。
- 结果(图 4):
- ViT 在小数据集上容易过拟合,比 ResNet 适应性更差。
- 例如,ViT-B/32 计算量略低于 ResNet-50,但在 9M 训练集上表现远不如 ResNet-50,但在 90M+ 训练集上超越 ResNet-50。
- ResNet-152x2 和 ViT-L/16 也表现出相同趋势。
- 结论:
- CNN 的归纳偏置(如局部感受野、平移不变性)在小数据集上是有帮助的。
- ViT 在大规模数据上可以直接从数据中学习到模式,甚至更有优势。
总体来看:
- ImageNet(图 4)的 few-shot 结果,以及 VTAB 低数据迁移(表 2),都表明 ViT 在极少数据情况下仍有潜力。
- 进一步研究 ViT 在 few-shot 学习方面的能力,是未来研究的有趣方向。
4. 模型扩展性研究(Scaling Study)
我们进行了一项受控的模型扩展性研究,评估不同模型在 JFT-300M 预训练后的迁移性能。在本实验设定下,数据规模不会限制模型的表现,因此我们可以评估性能与预训练成本之间的权衡。
实验模型集:
1.ResNet(CNN)系列(共 7 个):
- 7 个 epoch 预训练:R50x1、R50x2、R101x1、R152x1、R152x2
- 14 个 epoch 预训练:R152x2、R200x3
2.Vision Transformer(ViT)系列(共 6 个):
- 7 个 epoch 预训练:ViT-B/32、ViT-B/16、ViT-L/32、ViT-L/16
- 14 个 epoch 预训练:ViT-L/16、ViT-H/14
3.Hybrid(ResNet+ViT)混合模型(共 5 个):
- 7 个 epoch 预训练:R50+ViT-B/32、R50+ViT-B/16、R50+ViT-L/32、R50+ViT-L/16
- 14 个 epoch 预训练:R50+ViT-L/16
- 注意:混合模型名称后缀(如 L/16)表示 ResNet 主干网络的总下采样倍率,而非 ViT 的 patch 大小。
实验结果(图 5,详情见附录 D.5 和表 6):
- ViT 在性能/计算成本比上明显优于 ResNet。
- ViT 仅需约 2~4 倍更少的计算量,即可达到与 ResNet 相同的性能(基于 5 个数据集的平均结果)。
- Hybrid(ResNet+ViT)在低计算预算时略优于 ViT,但这种优势在大模型上消失。这有些出乎意料,因为本来预期局部卷积特征处理(ResNet)在任何模型大小下都会帮助 ViT。
- ViT 在当前实验范围内未达到性能饱和,这表明 ViT 仍有继续扩展的潜力,未来可探索更大规模的模型。
5. 视觉Transformer的内部机制分析(Inspecting Vision Transformer)
为了理解 Vision Transformer(ViT)如何处理图像数据,我们分析了其内部表征(internal representations)。
1.第一层的线性投影:
- ViT 首先将输入图像划分为固定大小的 patch,然后通过线性投影将展平的 patch 映射到低维特征空间(公式 1)。
- 主成分分析(PCA)显示,这些投影滤波器学到了对 patch 细节结构的低维表示(图 7 左)。这些特征类似于用于捕捉局部结构的基底函数。
2.位置编码(Positional Embedding)学习了图像的 2D 结构:
- 在 patch 投影后,ViT 添加可学习的位置编码,使得模型能区分不同位置的 patch。
- 图 7(中)显示,ViT 位置编码的相似性与像素距离相关,即相邻的 patch 具有更相似的位置编码。
- 此外,ViT 还能学习到行列结构,即同一行或同一列的 patch 具有相似的编码。
- 当 patch 数较多时,编码还会呈现出类似正弦波的结构(详见附录 D)。
- 这解释了为何手工设计的 2D-aware 位置编码并未带来额外增益(详见附录 D.4)。
3.自注意力(Self-Attention)机制的作用:
ViT 在最底层就能够整合整个图像的信息,类似 CNN 的感受野(Receptive Field)。
我们通过注意力权重计算“注意力距离”(attention distance),衡量信息在图像空间上的融合范围(图 7 右)。
发现:
- 部分注意力头(attention heads)在最低层就已经关注整个图像,说明 ViT 确实利用了全局信息整合能力。
- 另一些注意力头始终保持较小的注意力范围,专注于局部特征。
- Hybrid 模型(ResNet+ViT)中局部注意力较弱,说明早期的 CNN 结构可能在 ViT 中扮演类似作用,即提取局部特征。
- 随着网络深度增加,注意力范围逐渐扩大,最终ViT 关注的区域与图像语义信息高度相关(图 6)。
6 自监督学习(Self-Supervision)
Transformer 在 NLP 任务上展现了卓越的性能。然而,它们的成功不仅仅来自于良好的可扩展性,还得益于大规模自监督预训练(Devlin et al., 2019; Radford et al., 2018)。
我们对 Masked Patch Prediction(掩码 Patch 预测) 进行了初步探索,这种方法类似于 BERT 在 NLP 任务中的掩码语言模型(Masked Language Modeling, MLM)。
实验表明,通过自监督预训练,ViT-B/16 在 ImageNet 数据集上达到了 79.9% 的准确率,相较于从零开始训练提高了 2%,但仍然比有监督预训练低 4%。
有关实验的更多细节,请参见附录 B.1.2。我们将 对比学习(Contrastive Learning)预训练(Chen et al., 2020b; He et al., 2020; Bachman et al., 2019; Hénaff et al., 2020)留待未来研究。
5.2 解析
1. ResNet、ViT 和 Hybrid 模型的对比
从模型设计角度来看,ResNet 和 ViT 具有本质上的不同:
-
ResNet(CNN 结构):
- 通过卷积操作进行局部特征提取,依赖 空间归纳偏置(spatial inductive bias),如平移不变性(translation invariance)和局部相关性(local connectivity)。
- 适用于小规模数据集,因为 CNN 的结构先验有助于快速学习关键特征。
-
ViT(Transformer 结构):
- 采用 自注意力(self-attention) 机制,能够建模全局信息,但不具备 CNN 的局部归纳偏置。
- 需要 大规模数据 进行预训练,否则泛化能力较差。
- 当数据规模足够大时,ViT 的表现优于 CNN,因为它可以学习到更丰富的全局表示。
-
Hybrid(CNN + Transformer 结合):
- 结合 CNN 的局部特征提取能力和 Transformer 的全局信息建模能力,可能是更好的折中方案。
- 适用于中等规模数据集,可以减少 ViT 纯注意力计算的开销。
2. 数据规模对 ViT 影响更大
文章强调了不同模型对数据的需求,其中 ViT 比 ResNet 需要更多的数据 才能达到最佳效果:
- CNN 由于具有先验结构(如局部连接),即使在小数据集上也能很好地学习到局部模式。
- ViT 缺乏这些先验,需要依靠大规模数据学习空间关系。
- 当数据量足够大时,ViT 由于其全局注意力机制,最终能超越 CNN。
这也符合 "数据规模战胜归纳偏置"(Large-scale data trumps inductive bias) 的观点。
3. 预训练成本对比:ViT 竟然更有优势?
一个重要的发现是,在预训练计算成本方面,ViT 竟然比 CNN 更有优势! 这一点可能出乎意料,因为 Transformer 计算复杂度通常比 CNN 高。
可能的原因:
-
ViT 适用于大规模并行计算
- 计算主要由 自注意力机制(Self-Attention)+ MLP 组成,适合 GPU/TPU 并行计算。
- CNN 的卷积操作在某些情况下可能受限于存储带宽,难以并行优化。
-
更高效的特征学习
- ViT 的全局建模能力可能导致更好的特征提取,从而需要的训练轮数(epochs)减少,最终降低计算成本。
- CNN 可能需要更多的层数来扩大感受野,而 ViT 通过全局注意力机制直接捕获远程依赖关系。
4. 自监督 ViT 的潜力
自监督学习(Self-Supervised Learning, SSL) 是当前机器学习的重要方向,它的核心思想是不依赖人工标注数据,而是让模型自己从数据中学习特征。
文章中提到:
"ViT 在自监督学习中表现出很大的潜力"
可能的原因:
- CNN 在自监督学习中通常依赖对比学习(contrastive learning),但它仍然局限于局部特征。
- ViT 由于自注意力机制,能够更自然地进行上下文建模,特别是在掩码建模(Masked Modeling) 任务上,如 MAE(Masked Autoencoder)。
- 未来,ViT + 自监督学习(例如 MAE、DINO)可能会成为新的表征学习范式,减少对大规模标注数据的依赖。
5. 数据集选择与可扩展性
本研究使用了从 中等规模(ImageNet)到超大规模(JFT) 的多种数据集,充分考虑了模型的可扩展性(scalability),并在 VTAB 上测试了低数据量任务的迁移能力。这种全面性使得结论更加稳健。
- ViT 需要大规模数据进行预训练,否则难以超越 ResNet。
- ResNet 由于其归纳偏置(inductive bias),在小数据集上表现更好。
- Hybrid 模型可能兼顾两者优点,但计算复杂度更高。
6. ViT Patch 设计与计算复杂度
- Patch 大小与计算成本呈二次关系(小 Patch → 更长的序列 → 计算更贵)。
- 这解释了为何许多 ViT 变体(如 Swin Transformer)尝试用层次化结构减少计算负担。
7. Hybrid 结构的实验设计
- 通过调整 ResNet 特征提取阶段 影响 ViT 计算量,提供了一种权衡计算效率的方法。
- 移除 ResNet Stage 4 并加深 Stage 3,使序列长度变 4 倍,这相当于用更细粒度的局部特征输入 Transformer,可能能提高精度,但计算成本会显著增加。
8. 优化策略:Adam vs. SGD
- 研究发现,Adam 比 SGD 更适合 ResNet 预训练(这与常规认知不同)。
- 高权重衰减(0.1)有助于提高迁移能力,这与 CNN 训练中的 L2 正则化类似。
9. 微调策略:高分辨率微调的优势
- ViT 在高分辨率下微调效果更好,这符合 Transformer 需要更细粒度信息的特点。
- 采用 Polyak 平均 进一步提高稳定性,表明该方法在大型模型上是有效的。
10. ViT 训练效率更高,计算资源占优
实验结果表明,ViT 相较于 CNN 具有更高的训练效率:
- ViT-L/16 在相同数据(JFT-300M)上超越了 BiT-L,并且计算成本更低。
- ViT-H/14 进一步提升了性能,仍然比 BiT-L 计算量小。
- ViT-L/16(ImageNet-21k 预训练)可以在标准 TPUv3(8 核)上训练,仅需 30 天。
CNN(如 BiT 和 EfficientNet)通常需要更多计算资源才能达到类似性能。这说明ViT 的计算效率更高,更适合大规模模型训练。
11. ViT 适用于复杂任务,尤其是 Natural 和 Structured 任务
ViT 在复杂任务(如 ImageNet、CIFAR-100、VTAB) 上具有明显优势:
- ViT-H/14 在 Natural(自然图像,如 ImageNet、CIFAR-100)和 Structured(几何理解任务)上优于 BiT-R152x4。
- 在 Specialized(专业任务,如医学、卫星图像)上,ViT-H/14 和 BiT-R152x4 表现接近。
原因分析:
- ViT 的全局自注意力机制(Self-Attention)比 CNN 更适合建模长距离依赖关系,因此在复杂视觉任务上更具优势。
- Structured 任务(如目标定位)需要更强的几何理解能力,而 ViT 由于 Transformer 结构,可能对空间关系的建模更自然。
- 但 Specialized 任务(如医学图像)可能仍然依赖 CNN 的局部特征提取能力,因此 ViT 和 CNN 之间的差距较小。
12. ViT vs. Noisy Student (EfficientNet)
- Noisy Student 目前在 ImageNet 上是 SOTA,但 ViT-H/14 训练成本更低,表现更优。
- ViT-L/16(JFT-300M 预训练)计算成本低于 BiT-L,但性能更好。
结论:
- ViT 在大规模数据集(如 JFT-300M)上比 CNN 更高效,并能在计算资源相对较少的情况下超越 CNN。
- Noisy Student 依赖半监督学习,ViT 依靠更高效的架构,在同等数据下表现更优。
13. ViT 需要大数据才能超越 CNN
ViT 在小数据集上表现较差(如 ImageNet、9M 子集),但随着数据集增大,ViT 逐渐超过 CNN(如 BiT 和 ResNet)。
这表明,CNN 在小数据集上的归纳偏置(如平移不变性、局部特征提取)有助于泛化,而 ViT 在小数据上容易过拟合。
只有当数据量足够大(90M+),ViT 才能充分学习到有效特征并超越 CNN。
✅ 应用建议:
- 如果数据集较小(如 10M 级别),CNN(ResNet、BiT)可能是更好的选择。
- 如果数据集足够大(90M 以上),ViT 可以超越 CNN,且计算效率更高。
14. ViT 对正则化高度敏感
- 在小数据集上,ViT 需要额外的正则化(如权重衰减、dropout、标签平滑)才能稳定训练。
- 而 ResNet 由于内在的归纳偏置,即使没有这些正则化,也能更稳定地训练。
- 对于小规模预训练,ViT 需要精细调整超参数,否则容易过拟合。
✅ 优化建议:
- 小数据集训练 ViT 时,必须增加正则化(权重衰减、dropout、数据增强等),否则容易过拟合。
- 如果数据集小于 90M,可能需要结合 CNN 结构(如 Hybrid ViT)来增强归纳能力。
15. ViT 适合 few-shot 任务
- 在 ImageNet 和 VTAB 低数据任务上,ViT 的 few-shot 结果有希望。
- 尽管 ViT 需要大规模数据进行预训练,但在 few-shot 任务(小样本迁移)上仍然表现不错。
- 可能是因为 ViT 训练出的特征更具泛化性,可以更好地适应新任务。
✅ 研究方向:
- 探索ViT 在 few-shot 任务中的泛化能力(如 meta-learning、self-supervised learning)。
- 结合对比学习(contrastive learning)或自监督方法(如 MAE, DINO),提升 ViT 在低数据环境下的表现。
16. ViT 在计算效率上明显优于 CNN
实验结果表明,在相同迁移性能下,ViT 需要的计算量比 ResNet 低 2~4 倍,这对于实际应用具有重要意义:
- CNN(如 ResNet)由于卷积操作的计算密集性,在扩展到更大模型时,计算成本增长更快。
- ViT 采用全局注意力机制(Self-Attention),计算量增长更平缓,在相同计算预算下,能训练出更大的模型。
✅ 应用建议:
- 如果计算资源有限(如 TPU/GPU 预算受限),ViT 更具优势。
- 如果数据规模较小,CNN 仍然是不错的选择,因为 CNN 对小数据集的泛化性较好(归纳偏置)。
17. Hybrid 仅在小模型上略优,但大模型时无优势
混合模型(ResNet+ViT)在小计算预算时略胜 ViT,但随着模型变大,这种优势逐渐消失。
这表明,局部卷积特征提取(ResNet)在 ViT 小模型上可能有助于稳定训练,但对于大模型而言,ViT 自身的全局特征学习能力已经足够强大。
因此,在大模型上,ResNet 主干网络的额外计算量可能没有带来足够的收益。
✅ 研究方向:
- 未来可以研究是否能通过优化 Hybrid 结构,让 ResNet 的局部特征提取在大模型上仍然带来增益。
- 是否可以在 ViT 结构中引入更轻量的 CNN 归纳偏置,使其在小数据集上的泛化能力更强?
18. ViT 仍未达到性能上限,未来可以继续扩展
实验范围内,ViT 的性能曲线尚未出现饱和,说明:
- ViT 可能仍有扩展空间,未来可以探索更大模型(如 ViT-G 甚至 ViT-Mega)。
- 这也表明 ViT 的计算效率较高,可能比 CNN 更容易扩展到千亿级参数规模。
✅ 未来优化方向:
- 探索更大规模的 ViT(如 500B+ 参数量级),观察其性能是否仍然持续提升。
- 研究更高效的 Transformer 变体(如 Linformer、Performer)以进一步优化计算效率。
19. ViT 的线性投影与 CNN 的卷积滤波器类似
- ViT 的第一层投影滤波器学习到了低维表征,相当于 CNN 中的卷积核。
- 不同的是,CNN 具有固定的局部感受野,而 ViT 可以通过自注意力灵活整合信息。
- 这表明,ViT 即使不使用卷积结构,也能通过投影和后续层的自注意力捕捉局部和全局特征。
✅ 优化方向:
- 是否可以结合 CNN 的局部卷积和 ViT 的全局信息整合,进一步提升特征表达能力?
- ViT 的 patch 处理方式丢失了一些局部纹理细节,能否引入更精细的投影操作?
20. ViT 能够自主学习 2D 位置关系
- CNN 依靠固定的卷积操作隐式地编码了空间信息,而 ViT 依靠可学习的位置编码来补偿缺失的空间归纳偏置。
- ViT 学习到的位置编码能自适应地表示 2D 结构,这解释了为何手工设计的 2D-aware 位置编码无法带来提升。
✅ 研究方向:
- 能否进一步优化 ViT 的位置编码,使其在小数据集或低计算预算下表现更优?
- 能否结合 CNN 归纳偏置,使位置编码更具稳健性?
21. 自注意力使 ViT 具备全局特征融合能力
- CNN 的感受野受限于网络深度,较浅的层只能捕捉局部信息,而 ViT 在最底层就能关注全局信息。
- 但 ViT 并非所有注意力头都采用全局关注,而是部分注意力头会专注于局部特征。
- Hybrid(ResNet+ViT)中的局部注意力较弱,说明 ResNet 在早期已经完成了局部特征提取。
✅ 优化方向:
- 是否可以专门设计注意力机制,使不同注意力头分工明确?例如,部分注意力头专注局部,部分关注全局?
- 能否借鉴 CNN 的多尺度特性,在 ViT 结构中引入层级化的特征提取方式?
22. ViT 受益于 NLP 的自监督学习思想
Transformer 在 NLP 领域的成功,很大程度上归功于大规模自监督预训练,例如 BERT 和 GPT。
ViT 也尝试采用类似的自监督方法(Masked Patch Prediction),在没有人工标签的情况下进行特征学习。
实验表明,这种方式可以提升 ViT 的性能,但仍未完全超越有监督学习。
✅ 研究方向:
- 如何改进自监督学习,使其在 ViT 任务上的效果进一步接近甚至超越有监督学习?
- 是否可以结合多种自监督方法,如 Masked Patch Prediction + 对比学习?
23. 自监督学习仍落后于有监督学习
虽然自监督学习提升了 2% 的准确率,但仍比有监督学习低 4%。
可能的原因:
- ViT 依赖大规模数据进行学习,自监督学习的训练目标是否不足以学习到最优特征?
- 相比 NLP,计算机视觉任务中的语义信息更复杂,单纯的 Masked Patch Prediction 是否足够?
✅ 优化方向:
- 探索更适合视觉任务的自监督目标,如对比学习、图像重构、特征变换预测等。
- 研究 ViT 结构是否需要调整,以更好地适应自监督学习?(如引入更多层级信息)。
24. 对比学习可能是 ViT 未来自监督学习的关键
- 目前 ViT 仅使用了 Masked Patch Prediction,但 NLP 中的 BERT 还结合了 Next Sentence Prediction,进一步提升了学习效果。
- 对比学习(Contrastive Learning)已在视觉任务中取得成功,未来可探索其在 ViT 自监督学习中的作用。
- 对比学习可帮助 ViT 学习更具判别性的表征,可能比简单的 Masked Patch Prediction 更有效。
✅ 研究方向:
- 结合 Masked Patch Prediction + 对比学习,提升 ViT 的自监督学习能力。
- 优化 ViT 的预训练策略,减少对大规模标注数据的依赖。