机器之心报道

机器之心编辑部

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

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

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

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

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

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

NLP领域中的TransformerVS计算机视觉领域中的CNN

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

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

Transformer向视觉领域的跨界融合

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

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

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

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

模型和方法

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

VisionTransformer(ViT)

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

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

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

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

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

微调和更高分辨率

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

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

实验

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

与SOTA模型的性能对比

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

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

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

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

在Natural任务中,ViT-H/14的性能略低于BiT-R152x4;在Specialized任务中,ViT的性能超过BiT等方法;而在Structured任务中,ViT显著优于其他方法。

预训练数据要求

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

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

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

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

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

可扩展性研究

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

实验结果表明:

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

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

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

ViT如何处理图像数据?

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

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

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

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

参考链接:

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

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

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

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

点击阅读原文或识别二维码,申请免费获取白皮书。

THEEND

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]

相关文章