互联网资讯 / 人工智能 · 2023年11月10日 0

视觉Transformer:NLP/CV模型的新宠?

在计算机视觉领域中,卷积神经网络(CNN)一直占据主流地位。不过,不断有研究者尝试将 NLP 领域的 TRansfoRMeR 进行跨界研究,有的还实现了相当不错的结果。近日,一篇匿名的 ICLR 2021 投稿论文将标准 TRansfoRMeR 直接应用于图像,提出了一个新的 Vision TRansfoRMeR 模型,并在多个图像识别基准上实现了接近甚至优于当前 SOTA 方法的性能。

10 月 2 日,深度学习领域顶级会议 ICLR 2021 论文投稿结束,一篇将 TRansfoRMeR 应用于图像识别的论文引起了广泛关注。

特斯拉 AI 负责人 AndRej KaRpathy 转发了该论文,并表示「乐见计算机视觉和 NLP 领域日益融合」。

视觉Transformer:NLP/CV模型的新宠?

前有 FACEbook将 TRansfoRMeR 应用于目标检测任务、OpenAI 用 GPT-2 做图像分类的尝试,这篇「跨界」论文又有哪些新尝试呢?

TRansfoRMeR 架构早已在自然语言处理任务中得到广泛应用,但在计算机视觉领域中仍然受到限制。在计算机视觉领域,注意力要么与卷积网络结合使用,要么用来代替卷积网络的某些组件,同时保持其整体架构不变。

该研究表明,对 CNN 的依赖不是必需的,当直接应用于图像块序列时,tRansfoRMeR 也能很好地执行图像分类任务。该研究基于大量数据进行模型预训练,并迁移至多个图像识别基准数据集(imageNet、CIFAR-100、VTAB 等),结果表明 Vision TRansfoRMeR(VIT)模型可以获得与当前最优卷积网络相媲美的结果,而其训练所需的计算资源大大减少。

NLP 领域中的 TRansfoRMeR VS 计算机视觉领域中的 CNN

基于自注意力的架构,尤其 TRansfoRMeR,已经成为 NLP 领域的首选模型。该主流方法基于大型文本语料库进行预训练,然后针对较小的任务特定数据集进行微调。由于 TRansfoRMeR 的计算效率和可扩展性,基于它甚至可以训练出参数超过 100B 的模型。随着模型和数据集的增长,性能仍然没有饱和的迹象。

然而,在计算机视觉中,卷积架构仍然占主导地位。受 NLP 成功的启发,多项计算机视觉研究尝试将类 CNN 架构与自注意力相结合,有的甚至完全代替了卷积。后者虽然在理论上有效,但由于其使用了专门的注意力模式,因此尚未在现代硬件加速器上有效地扩展。因此,在大规模图像识别任务中,经典的类 ResNet 架构仍然是最先进的。

TRansfoRMeR 向视觉领域的跨界融合

受到 NLP 领域中 TRansfoRMeR 缩放成功的启发,这项研究尝试将标准 TRansfoRMeR 直接应用于图像,并尽可能减少修改。为此,该研究将图像分割成多个图像块(patch),并将这些图像块的线性嵌入序列作为 TRansfoRMeR 的输入。然后用 NLP 领域中处理 Token 的方式处理图像块,并以监督的方式训练图像分类模型。

在中等规模的数据集(如 imageNet)上训练时,这样的模型产生的结果并不理想,准确率比同等大小的 ResNet 低几个百分点。这个看似令人沮丧的结果是可以预料的:TRansfoRMeR 缺少一些 CNN 固有的归纳偏置,例如平移同变性和局部性,因此在数据量不足的情况下进行训练后,TRansfoRMeR 不能很好地泛化。

但是,如果在大型数据集(14M-300M 张图像)上训练模型,则情况大为不同。该研究发现大规模训练胜过归纳偏置。在足够大的数据规模上进行预训练并迁移到数据点较少的任务时,TRansfoRMeR 可以获得出色的结果。

该研究提出的 Vision TRansfoRMeR 在 JFT-300M 数据集上进行预训练,在多个图像识别基准上接近或超过了 SOTA 水平,在 imageNet 上达到了 88.36% 的准确率,在 imageNet ReaL 上达到了 90.77% 的准确率,在 CIFAR-100 上达到了 94.55% 的准确率,在 VTAB 基准 19 个任务中达到了 77.16% 的准确率。

模型和方法

研究者尽可能地遵循原始 TRansfoRMeR 的设计。这种故意为之的简单设置具有以下优势,即可扩展 NLP TRansfoRMeR 架构和相应的高效实现几乎可以实现开箱即用。研究者想要证明,当进行适当地扩展时,该方法足以超越当前最优的卷积神经网络。

Vision TRansfoRMeR(VIT)

该研究提出的 Vision TRansfoRMeR 架构遵循原版 TRansfoRMeR 架构。下图 1 为模型架构图。

标准 TRansfoRMeR 接收 1D 序列的 Token 嵌入为输入。为了处理 2D 图像,研究者将图像 x ∈ R^H&tiMes;W&tiMes;C 变形为一系列的扁平化 2D patch x_p ∈ R^N&tiMes;(P^2 &Middot;C),其中 (H, W) 表示原始图像的分辨率,(P, P) 表示每个图像 patch 的分辨率。然后,N = HW/P^2 成为 Vision TRansfoRMeR 的有效序列长度。

Vision TRansfoRMeR 在所有层使用相同的宽度,所以一个可训练的线性投影将每个向量化 patch 映射到模型维度 D 上(公式 1),相应的输出被称为 patch 嵌入。

视觉Transformer:NLP/CV模型的新宠?

与 BERT 的 [claSS] Token 类似,研究者在一系列嵌入 patch (z_0^0 = x_claSS)之前预先添加了一个可学习嵌入,它在 TRansfoRMeR 编码器(z_0^L )输出中的状态可以作为图像表示 y(公式 4)。在预训练和微调阶段,分类头(head)依附于 z_L^0。

位置嵌入被添加到 patch 嵌入中以保留位置信息。研究者尝试了位置嵌入的不同 2D 感知变体,但与标准 1D 位置嵌入相比并没有显著的增益。所以,编码器以联合嵌入为输入。

TRansfoRMeR 编码器由多个交互层的多头自注意力(MSA)和 MLP 块组成(公式 2、3)。每个块之前应用 LayeRnoRM(LN),而残差连接在每个块之后应用。MLP 包含两个呈现 GELU 非线性的层。

视觉Transformer:NLP/CV模型的新宠?

作为将图像分割成 patch 的一种替代方案,输出序列可以通过 ResNet 的中间特征图来形成。在这个混合模型中,patch 嵌入投影(公式 1)被早期阶段的 ResNet 取代。ResNet 的其中一个中间 2D 特征图被扁平化处理成一个序列,映射到 TRansfoRMeR 维度,然后馈入并作为 TRansfoRMeR 的输入序列。最后,如上文所述,将分类输入嵌入和位置嵌入添加到 TRansfoRMeR 输入中。

微调和更高分辨率

研究者在大型数据集上预训练 VIT 模型,并针对更小规模的下游任务对模型进行微调。为此,研究者移除了预训练预测头,并添加了一个零初始化的 D &tiMes; K 前馈层,其中 K 表示下游类的数量。与预训练相比,在更高分辨率时进行微调通常更有益处。当馈入更高分辨率的图像时,研究者保持 patch 大小不变,从而得到更大的有效序列长度。

VIT 模型可以处理任意序列长度(取决于内存约束),但预训练位置嵌入或许不再具有意义。所以,研究者根据预训练位置嵌入在原始图像中的位置,对它们进行 2D 插值操作。需要注意的是,只有在分辨率调整和 patch 提取中,才能将 2D 图像的归纳偏置手动注入到 VIT 模型中。

实验

该研究进行了大量实验,并使用了多个 VIT 模型变体,参见下表 1:

视觉Transformer:NLP/CV模型的新宠?

与 SOTA 模型的性能对比

研究者首先将最大的 VIT 模型(在 JFT-300M 数据集上预训练的 VIT-H/14 和 VIT-L/16)与 SOTA CNN 模型进行对比,结果参见下表 2。

视觉Transformer:NLP/CV模型的新宠?

表 2:VIT 模型与 SOTA 模型在流行图像分类基准数据集上的性能对比。

从上表中可以看出,规模较小的 VIT-L/16 模型在所有数据集上的性能堪比或者超过 BIT-L,同时它需要的算力也少得多。较大的 VITH-14 模型进一步提升了性能,尤其在更具挑战性的数据集上,如 imageNet、CIFAR-100 和 VTAB。VITH-14 模型在所有数据集上的性能匹配或超过 SOTA,甚至在某些情况下大幅超过 SOTA 模型(如在 CIFAR-100 数据集上的性能高出 1%)。在 imageNet 数据集上,VIT 模型的性能比 Noisy Student 低了大约 0.1%,不过在具备更干净 ReaL 标签的 imageNet 数据集上,VIT 的性能超过 SOTA 模型。

下图 2 将 VTAB 任务分解为多个组,并对比了 VIT 与 SOTA 方法的性能,这些方法包括 BIT、VIVI 和 S4L。

在 NatuRal 任务中,VIT-H/14 的性能略低于 BIT-R152x4;在 Specialized 任务中,VIT 的性能超过 BIT 等方法;而在 structured 任务中,VIT 显著优于其他方法。

视觉Transformer:NLP/CV模型的新宠?

预训练数据要求

Vision TRansfoRMeR 在大型 JFT-300M 数据集上进行预训练后表现出了优秀的性能。在 VIT 的归纳偏置少于 ResNet 的情况下,数据集规模的重要性几何呢?该研究进行了一些实验。

首先,在规模逐渐增加的数据集(imageNet、imageNet-21k 和 JFT300M)上预训练 VIT 模型。下图 3 展示了模型在 imageNet 数据集上的性能:

视觉Transformer:NLP/CV模型的新宠?

下表 3 展示了模型在 imageNet、imageNet-21k 和 JFT300M 数据集上的性能对比情况。在前两个规模较小的数据集上,VIT-LaRge 模型的性能不如 VIT-Base,但在规模较大的 JFT300M 数据集上,大模型展现出了优势。这说明,随着数据集规模的增大,较大的 VIT 模型变体优于较小的模型。

视觉Transformer:NLP/CV模型的新宠?