NLP/CV模型跨界,视觉Transformer赶超CNN?

人工智能 深度学习
近日,一篇匿名的 ICLR 2021 投稿论文将标准 Transformer 直接应用于图像,提出了一个新的 Vision Transformer 模型,并在多个图像识别基准上实现了接近甚至优于当前 SOTA 方法的性能。

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

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

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

前有 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×W×C 变形为一系列的扁平化 2D patch x_p ∈ R^N×(P^2 ·C),其中 (H, W) 表示原始图像的分辨率,(P, P) 表示每个图像 patch 的分辨率。然后,N = HW/P^2 成为 Vision Transformer 的有效序列长度。

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

与 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 非线性的层。

NLP/CV模型跨界,视觉Transformer赶超CNN?

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

微调和更高分辨率

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

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

实验

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

与 SOTA 模型的性能对比

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

表 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 显著优于其他方法。

NLP/CV模型跨界,视觉Transformer赶超CNN?

预训练数据要求

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

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

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

NLP/CV模型跨界,视觉Transformer赶超CNN?

其次,研究者在 JFT300M 数据集的 9M、30M 和 90M 随机子集以及完整数据集上进行了模型训练。结果参见下图 4:

NLP/CV模型跨界,视觉Transformer赶超CNN?

从图中可以看到,在较小的数据集和相同的计算成本下,Vision Transformer 比 ResNet 更加过拟合。该结果强化了这一认知:卷积归纳偏置对于规模较小的数据集较为有用,但对于较大的数据集而言,学习相关模式就足够了,甚至更加有效。

可扩展性研究

研究人员对不同模型执行了受控可扩展性研究(scaling study)。下图 5 展示了模型在不同预训练计算成本情况下的迁移性能:

NLP/CV模型跨界,视觉Transformer赶超CNN?

实验结果表明:

Vision Transformer 在性能 / 算力权衡中显著优于 ResNet。

混合模型在较小计算成本的情况下略优于 ViT,但在计算成本较高时,这一现象消失。该结果令人吃惊。

Vision Transformer 在实验尝试的算力范围内似乎并未饱和,未来可以进行更多可扩展性研究。

ViT 如何处理图像数据?

为了了解 ViT 处理图像数据的过程,研究者分析了其内部表示。

ViT 的第一层将扁平化后的图像块线性投影至低维空间(公式 1),下图(左)展示了学得嵌入滤波器的主要组件。投影后,将学得的位置嵌入添加至图像块表示。下图(中)展示了模型学习编码图像内的距离,表明距离越近的图像块更有可能具备更相似的位置嵌入。自注意力允许 ViT 集成整个图像的信息,即使最低层也不例外。研究者调查了 ViT 网络利用这一能力的程度。具体而言,该研究计算图像空间中的平均距离(基于注意力权重)参见下图右。「注意力距离」类似于 CNN 中的感受野大小。

NLP/CV模型跨界,视觉Transformer赶超CNN?

ViT 模型关注与分类具备语义相关性的图像区域,参见图 6:

NLP/CV模型跨界,视觉Transformer赶超CNN?

在知乎问题「ICLR 2021 有什么值得关注的投稿?」下,多个回答提及了这篇论文,有解读也有吐槽。更有网友表示:「我们正站在模型大变革的前夜,神经网络的潜力还远远没到尽头。一种崭新的强大的,足以颠覆整个 CV 和 AI 界的新模型才露出冰山一角,即将全面来袭。

NLP/CV模型跨界,视觉Transformer赶超CNN?

参考链接:

https://openreview.net/pdf?id=YicbFdNTTy

https://www.zhihu.com/question/423975807

如何根据任务需求搭配恰当类型的数据库?

在AWS推出的白皮书《进入专用数据库时代》中,介绍了8种数据库类型:关系、键值、文档、内存中、关系图、时间序列、分类账、领域宽列,并逐一分析了每种类型的优势、挑战与主要使用案例。

 

责任编辑:张燕妮 来源: 机器之心Pro
相关推荐

2021-03-30 11:40:48

计算数据 技术

2022-03-25 10:22:48

TransformeAI机器学习

2024-09-19 13:40:00

2021-07-13 17:59:13

人工智能机器学习技术

2023-12-06 09:37:55

模型视觉

2023-05-18 14:03:00

Transforme模型

2021-09-28 14:14:13

人工智能机器学习技术

2021-03-01 10:01:22

开发技能编码

2023-11-22 09:00:00

NLP语言模型LSTM

2022-12-16 15:46:09

机器人模型

2021-05-21 10:06:01

人工智能神经网络技术

2022-03-08 09:06:33

模型文本抠图

2022-07-22 07:25:12

模型人工智能

2020-04-26 11:40:18

工具开源腾讯

2021-10-13 17:28:33

AI 数据人工智能

2020-10-23 07:32:28

计算机视觉CV

2021-02-20 21:04:53

人工智能机器学习技术

2024-08-01 08:40:00

2022-03-04 19:07:03

模型视觉人工智能

2018-11-07 09:25:07

自然语言处理计算机视觉深度学习
点赞
收藏

51CTO技术栈公众号