南洋理工提出 Nested-TNT,提升 Transformer 效率,在视觉识别任务中的性能飞跃 !

2024-08-08 11:26:48 浏览数 (2)

Transformer因其在大规模自然语言处理中的卓越性能而被应用于计算机视觉领域,超越了传统的卷积神经网络,取得了新的领先水平。ViT将图像划分为几个局部块,称为“视觉句子”。 然而,图像中包含的信息量庞大且复杂,仅关注“视觉句子” Level 的特征是不够的。还应该考虑局部块之间的特征。 为了进一步改进,提出了TNT模型,该算法进一步将图像划分为更小的块,即“视觉词汇”,实现了更准确的结果。 Transformer的核心是多头注意力机制,而传统的注意力机制忽略了不同注意力头之间的交互。为了减少冗余并提高利用率,作者引入了嵌套算法,并将Nested-TNT应用于图像分类任务。 实验证实,所提出的模型在ViT和TNT上的分类性能有所提高,分别超过CIFAR10数据集的2.25%,1.1%,以及FLOWERS102数据集的2.78%,0.25%。

Introduction

Transformer的诞生[23]开启了大型模型的时代,并加速了自然语言处理领域的发展。Transformer的提出解决了传统卷积神经网络(CNNs)[1]在捕捉全局特征方面的不足,并提高了模型的泛化能力。与传统的循环神经网络相比,Transformer允许并行计算,提高了计算效率。Transformer网络的核心是自注意力机制,它关注每个元素对全局的依赖关系,即模型可以关注上下文信息,并允许双向推理。

受到Transformer在自然语言处理领域巨大成功的启发,Vision Transformer (ViT) [22]应运而生。顾名思义,ViT通过将图像分割成“视觉句子”并输入到Transformer网络中,将Transformer的思想转移到计算机视觉领域。

ViT广泛应用于图像分类、图像分割、目标检测和图像生成等领域。例如,在自动驾驶领域[1],ViT已被应用于检测道路上的障碍物和交通标志。ViT还应用于图像恢复和分辨率增强[11],即生成低像素图像的高分辨率版本。ViT还常用于医疗领域[1]、生物特征领域[20]和视频处理领域[1]的目标检测和目标识别。

如前所述,ViT只将图像分割到视觉句子 Level ,这仍然是一种粗粒度方法。因此,ViT在处理图像时的准确度有限,可能导致丢失详细特征。为了解决这个问题,尽可能保留图像中的信息,提出了Transformer iN Transformer (TNT) [1]。在TNT中,图像块进一步被划分为“视觉单词”,为特征提取提供了一种细粒度方法。

另一方面,Transformer架构的核心是多头注意力(MHA)机制,其中每个头用于捕捉图像特征。为了捕捉尽可能多的特征,在现有的TNT框架下产生了一系列复杂的注意力模式。为了提高参数利用效率以降低模型复杂性,提出了Nested Vision Transformer (Nested ViT) [24]。Nested ViT通过连接相邻层Transformers的注意力逻辑,最大化参数利用效率,使每个头关注互补信息。

TNT和Nested ViT分别优化了ViT的一些缺点。为了结合两者的优点,作者设计了一种新方法,能够同时提高任务准确性和减少参数冗余,称为Nested-TNT。Nested-TNT借鉴了TNT的思想,在ViT的基础上增加了一层细粒度的Transformer Block来完成图像特征的更细致提取。在原始的粗粒度Transformer Block中,不同层之间的连接是通过MHA机制建立的,实现了提高参数利用效率和减少冗余的目的。作者将Nested-TNT应用于图像分类任务,并通过实验证明了其有效性。

与 Transformer 类似,视觉 Transformer (ViT)将输入图像等分为大小相等的图像块,如16x16像素,这些块类似于文本序列中的“序列”。每个图像块通过线性投影转换成特定维度的向量,从而为每个图像块有效地创建嵌入。在序列的开始,引入一个“分类 Token ”,随后的向量序列通过典型的 Transformer 编码器进行处理。然而,由于 Transformer 架构本质上缺乏处理顺序数据的能力,因此在这些图像块嵌入中加入了位置嵌入。这一步至关重要,因为它向模型中注入了关于每个图像块在图像中位置的信息。接下来,组合嵌入(图像块和位置)被送入多个 Transformer 编码层中。在每个层中,使用了多头自注意力机制和多层感知机。来自最终 Transformer 编码层的输出代表了整个ViT模型的聚合输出。它优于卷积神经网络(CNNs)在下游任务上的表现。

有很多工作致力于提高ViT的性能和效率。例如,一个团队结合了卷积和视觉 Transformer 生成了一个新的网络CvT [21],它相比于基于CNN的模型(如ResNet)和先前的基于 Transformer 的模型(如ViT、DeiT),在利用更少的FLOPS和参数的同时,提高了性能。另一个例子是LeViT [17],它为小型和中等大小的架构提供了在准确性和推理时间之间更好的折衷。还有团队提出了多尺度视觉 Transformer (MViT)[13]的设计,它在 Transformer 中引入了多尺度特征层次。它使用多头池化注意力(MHPA)机制,以允许在 Transformer 块中进行灵活的分辨率建模。还有更多相关研究,如Mvitv2 [15],YO-LOS [10],金字塔视觉 Transformer [20],可逆视觉 Transformer [21],缩放视觉 Transformer [22],Segmenter [23]等,在此空间限制内不再展开。

此外,在相关研究中,Transformer iN Transformer和Nested Vision Transformer吸引了作者的注意。

在ViT中,图像被划分为16x16像素的局部块,这种粗粒度的划分忽略了许多特征和细节。为了获得更准确的结果,提出了Transformer iN Transformer(TNT)架构。TNT进一步将每个局部块划分为更小的块(4x4像素),即每个视觉句子被划分为视觉单词。在视觉单词内的视觉句子,然后在下一维度进行特征提取和训练。该算法实现了超越ViT的结果。

多头注意力(MHA)机制是Transformer和Vision Transformer的基础。随着网络结构的不断重构和叠加,头参数的数量变得越来越大。然而,并非总是需要如此多的头参数。Peng团队[14]注意到,如果能让每个头尽可能关注更多互补信息,作者可以最大化参数利用效率并减少冗余。基于“解释消除”效应,他们找到了一种使每个头的特征互补的方法,称为嵌套视觉Transformer(Nested ViT)。他们在Transformer的层之间建立联系,使网络能够捕捉到细节和全局特征,并通过实验证明这种方法有效地减少了参数冗余。

Methodology

首先,作者将概述多头注意力结构下的基本结构。多头注意力算法为每个单独的头设置独立的 Query 、键和值矩阵,并在这些头之间同时执行注意力过程。随后,它通过连接每个头的输出值,并通过线性投影生成最终的输出。如果作者用、、和表示单个头中的 Query 、键、值和输出,那么计算过程如下公式所示:

通过线性投影,作者可以得到多头注意力的最终输出:,其中是可学习的权重。

作者模型的概述如图1所示。作者对 Transformer (transformer)的使用部分基于TNT [13]。总共有L层。每一层包含多个内部 Transformer ,以单词为基本单位,以及一个外部 Transformer ,以句子为基本单位。在单词嵌入和句子嵌入中应用了标准的可学习1D位置编码,以保持空间信息。句子位置编码可以维持全局空间信息,而单词位置编码用于保持局部相对位置,且单词位置编码在句子之间共享。

更具体地说,输入图片最初被划分为n个 Patch ,如ViT [12]所做,每个 Patch 被视为一个视觉句子。然后将每个视觉句子分割成一系列视觉单词。在单词嵌入后,这些向量被发送到内部 Transformer 块,其目的是学习视觉单词之间的关系。对于一个嵌入的视觉句子,是块的索引,其中是视觉句子的索引,句子中有个视觉单词。内部 Transformer 的计算过程可以用以下公式表示,其中是多头注意力过程,是层归一化过程,表示自注意力层之间用于特征转换和非线性的层。

在内部 Transformer 转换之后,作者得到了所有词嵌入的表达式:。

在句子层面,作者进行句子嵌入,其过程可以描述为 ,其中 是类别标记。在进入外部 Transformer 之前,句子嵌入应该通过内部 Transformer 学习到的词级特征进行增强:

表示全连接层, 是向量化的操作。然后作者使用外部 Transformer 块处理句子嵌入:

其中 表示嵌套的多头注意力机制。该机制创建了一个新的数据路径,使得相邻层的注意力得分可以直接通信。这种机制的增加受到了Peng团队[14]的启发,他们还指出了堆叠 Transformer 块时解释性效应的影响。具体来说,当一个注意力头聚焦于输入中与输出高度相关的部分时,它会阻止其他头做同样的事情。相反,它鼓励它们关注补充信息。这意味着,适当的头之间的连接将有助于减少冗余并提高模型参数的效率。多头注意力机制为每一层内的不同注意力头提供了通信方法,但不同层之间的头之间的连接仍然较弱。数据路径使用多层感知机层融合相邻层的注意力得分:

其中 表示第l层外部 Transformer 的注意力得分, 是第l层外部 Transformer 的注意力权重。在训练期间,应用softmax交叉熵损失函数和梯度下降优化器来更新参数。

总结一下,根据图1所示的架构和上述公式,Nested TNT的输入和输出可以表示为

Datasets

CIFAR100和CIFAR10 [12]是两个图像分类基准,分别包含50000张训练图像和10000张测试图像,分别属于100个类别和10个类别。这两个数据集中的图像大小相同,都是32x32像素,包含3个颜色通道。所有类别都有相同数量的图像,这有助于避免训练过程中的偏差。CIFAR100用作预训练数据集,而CIFAR10用作微调数据集。

除了CIFAR10之外,Flowers102 [11]是另一个微调数据集,其中一些花卉类别在外观上非常相似。这对于分类算法来说是一个挑战,需要能够捕捉和学习细微特征差异的模型。

采用的数据增强策略与Nested-Attention ViT [22]实现中的策略类似,例如,随机裁剪、随机翻转、mixup和双三次训练插值[20]。视觉数据集的详细信息显示在表1中。

Experimental Settings

在作者的实验中选择的3个模型分别是ViT-S、TNT-S和作者提出结构的小尺寸版本,这些模型都处理224x224像素分辨率的图像。此外,表2和表3分别展示了预训练和微调过程中的主要超参数设置。

Results

表4展示了三个模型的参数复杂性。嵌套-TNT模型的参数复杂性最高,但仅比TNT稍高一点。并且它明显比VIT复杂,这是作者模型为了以下优点所做出的牺牲之一。

表5展示了分类准确性的结果。准确值均以top-1准确度形式给出。在最终准确度方面,嵌套-TNT优于其他两种视觉 Transformer 模型,尽管这是以每秒处理的图像数量为代价的。对于CIFAR100和CIFAR10,嵌套-注意力TNT更好的性能来自于引入的嵌套-注意力,它增强了全局模块之间的联系。然后,更好的联系创造了更好的识别。

对于Flowers102,更高的准确度意味着嵌套-注意力TNT在细粒度分析方面具有更好的性能。这来自于在TNT中添加的内部块,它有助于捕捉图像的局部细节。因此,它得到了与TNT相似且比ViT高3%的结果。

Conclusion

作者提出了一种新的视觉 Transformer 模型——嵌套TNT(Nested-TNT),该模型基于嵌套的多头注意力机制和Transformer iN Transformer(TNT)模型的原则。嵌套的多头注意力机制提高了不同注意力头之间的独立性,而TNT模型将图像块切割成更小的块。然后,实验结果表明,Nested-TNT在图像分类任务上表现更佳。它同时增强了细节和全局特征,这符合作者的基本目标。

Limitation and Future Work

尽管作者提出的模型在图像分类准确度上表现更好,但图像处理速度和参数复杂性并不那么乐观。此外,由于时间和计算资源的限制,预训练的数量不足。

因此,在将来,首先可以关注Nested-TNT的扩展,简化算法并优化连接层。之后,作者可以应用更多的预训练以获得更好的性能。预训练数据集可以切换到更大的数据集,例如ImageNet。此外,实验仅限于分类任务,可以扩展到目标检测和语义分割领域。还可以考虑进行消融研究,以检查每个部分的能力。

参考

[1].Nested-TNT: Hierarchical Vision Transformers with Multi-Scale Feature Processing.

0 人点赞