Lite Vision Transformer with Enhanced Self-Attention
全新轻量级ViT!LVT:具有增强自注意力的Lite视觉Transformer_Amusi(CVer)的博客-CSDN博客
目录
Abstract
Introduction
Related Work
Vision Transformer
CNN+Transformer
Recursive Convolutional Neural Networks 递归卷积神经网络
Lite Vision Transformer
Convolutional Self-Attention (CSA)
Analyzing Convolution
Analyzing Self-Attention
Convolutional Self-Attention (CSA)
Recursive Atrous Self-Attention (RASA)
Atrous Self-Attention (ASA)
Resursive Atrous Self-Attention (RASA)
Model Architecture
Experiments
ImageNet Classification
Mobile ADE20K Semantic Segmentation
Mobile COCO Panoptic Segmentation
Ablation Studies
RASA递归次数
Contributions of CSA and RASA
Conclusion
尽管视觉transformer模型具有令人印象深刻的表示能力,但当前的轻量级视觉transformer模型仍然存在局部区域的不一致和不正确的密集预测。我们怀疑他们的自我注意机制的力量在更浅和更薄的网络中是有限的。我们提出了 Lite Vision Transformer(LVT),一种新颖的轻量级变压器网络,具有两种增强的自注意机制,以提高移动部署的模型性能。对于低级特征,我们引入了卷积自注意力(CSA)。与之前合并卷积和自注意力的方法不同,CSA 将局部自注意力引入到大小为 3×3 的内核内的卷积中,以丰富 LVT 第一阶段的低级特征。对于高级特征,我们提出递归 Atrous Self-Attention (RASA),利用多尺度上下文计算相似性映射,并采用递归机制以增加额外的边际参数代价的表示能力。 LVT在ImageNet识别、ADE20K语义分割、COCO全景分割上的优越性得到验证。
基于 Transformer 的架构取得了显著的成功,它们在各种视觉任务中表现出了卓越的性能。Dosovitskiy 受到自然语言处理 (NLP) 中自注意力模块成功的启发,首次提出了一种基于 Transformer 的计算机视觉网络,其关键思想是将图像分割成小块,从而通过位置嵌入实现线性嵌入。为了降低引入的计算复杂度,Swin-Transformer 通过使用局部非重叠窗口限制自注意的计算代价来升级体系结构。此外,引入分层特征表示来利用来自不同尺度的特征以获得更好的表示能力。另一方面,PVT 提出了spatial-reduction attention (SRA) 来降低计算成本。它还通过在基本Transformer Block的自注意力层之后的前馈网络(FFN)中插入深度卷积来消除位置嵌入。Swin-Transformer 和 PVT 都证明了它们对于下游视觉任务的有效性。然而,当将模型缩小到移动友好的大小时,也会出现显著的性能下降。
本工作专注于设计一个轻量而有效的 Vision Transformer 能够在移动端应用。更具体地说,本文引入了一个 Lite Vision Transformer (LVT) backbone,它具有两个新颖的自注意力层,以追求性能和紧凑性。LVT 遵循标准的四阶段结构,但具有与现有移动网络类似的参数大小,如MobileNetV2 和 PVTv2-B0。
本文对自注意力的第一个改进是卷积自注意力 (Convolutional self-attention, CSA)。自注意力层是 vision transformer 的基本组件,因为自注意力捕获了短距离和长距离的视觉依赖。然而,识别局部性是视觉任务成功的另一个重要关键。例如,卷积层是处理底层特征的较好层。已有技术提出将卷积和自注意力与全局感受野结合起来。相反,本文将局部自注意力引入到大小为 3x3 的核内的卷积中。CSA 应用于 LVT 的第一阶段。由于 CSA 的存在,LVT 比现有的 transformer 模型更丰富了底层特征,具有更好的泛化能力。如图 1 所示,与 PVTv2-B0 相比,LVT 能够在局部区域生成更多的连贯的标签。
另一方面,lite模型的性能仍然受到参数数量和模型深度的限制。本文进一步提出通过递归Atrous自注意力(RASA)层来提高lite Transformer的表示能力。如图1所示,LVT结果的语义正确性较好,这是因为这种有效的表示方式。具体来说,RASA包含了两个具有权重共享机制的组件。第一个是Atrous自注意力(ASA)。在计算query和key之间的相似度时,它利用了具有单个卷积核的多尺度上下文。第二个是递归管道。按照标准的递归网络,将RASA形式化为一个递归模块,其中ASA作为激活函数。它在不引入额外参数的情况下增加了网络深度。
在ImageNet分类、ADE20K语义分割和COCO全景分割上进行实验,以评估LVT作为广义视觉模型Backbone的性能,主要工作总结如下:
ViT是第一个证明了Transformer结构可以以优异的性能转移到图像识别任务中的Vision Transformer。图像被分割成一系列的patches,这些patches被线性嵌入为ViT的token输入。
在ViT之后,提出了一系列的改进方法。在训练方面,DeiT介绍了Transformer知识蒸馏策略。
对于Tokenization,T2T-ViT提出了T2T模块,递归地将相邻token聚合成一个token,以丰富局部结构建模。
TNT进一步将token分解成更小的token,从它们中提取特征,以便与普通token特征集成。对于位置嵌入,CVPT提出了可推广到任意分辨率图像的动态位置编码。
在多尺度加工方面,Twins研究了局部自注意力和全局自注意力的结合。该方法在位置嵌入中引入了卷积,从不同阶段考察了不同尺度下特征间的交叉注意力。
Cross-ViT提出了处理不同尺度token的双路Transformer,并采用了基于交叉注意力的token融合模块。
在层次设计方面,Swin-Transformer和PVT都采用了四阶段设计,并逐渐下采样,这有利于下游的视觉任务。
有四种方法:
第一种是将自注意力中的位置嵌入与卷积相结合,包括CVPT和CoaT;
第二种是在自注意力前应用卷积,包括CvT、CoAtNet和BoTNet;
第三个是在自注意力后插入卷积,包括LocalViT和PVTv2;
第四种是并行的自注意力和卷积,包括AA和LESA。
与上述所有将局部卷积与全局自注意力合并的方法不同,本文提出了卷积自注意力(Convolutional self-attention, CSA),它将自注意力和卷积结合在一起,并在模型的第一阶段将3×3 kernel作为一个强大的层。
递归方法已被用于卷积神经网络(CNNs)的各种视觉任务。它包括图像识别、超分辨率、目标检测、语义分割。与这些方法不同的是,本文在轻量级Vision Transformer中研究了一种递归方法作为通用Backbone。具体而言,提出了一种具有多尺度query信息的递归自注意力层,有效地提高了移动端模型的性能。
本文提出了Lite Vision Transformer (LVT),如图 2 所示。作为多视觉任务的 backbone,本文遵循标准的四阶段设计。每个阶段执行一次下采样操作,并由一系列构建块组成。输出分辨率从 stride-4 逐步到 stride-32。与以往的 vision transformers 不同,LVT 是在参数有限的情况下提出的,它具有两个新的自注意力层。第一个是卷积自注意力层,第一阶段采用了 3x3 滑动核。第二个是递归的 Atrous 自注意力层,它有一个全局内核,在最后三个阶段被采用。
*图2:Lite Vision Transformer(LVT)。顶行表示LVT的整体结构。左下角和右下角显示了提出的卷积自我注意(CSA)和递归Atrous自我注意(RASA)。H,W表示图像的高度和宽度。C是feature map通道数。给出了各模块的输出分辨率。展开和折叠操作的步长都是2。BMM代表批处理矩阵乘法,它对应于等式1中的,batch维度为局部窗口中空间位置的个数。ASA代表被提议的Astrous自我关注。
全局感受野有利于自注意力层的特征提取。然而,在视觉模型的早期阶段,由于局域性在处理低层次特征时更为重要,因此首选卷积。与以往将卷积和大核 (全局) 自注意力相结合的方法不同,本文专注于设计一个基于窗口的自注意力层,该层具有 3 × 3 核,并包含卷积的表示。
我们将自我注意和卷积推广为统一的卷积自我注意,如图3所示。其公式如下:
*图3:3×3局部窗口中的卷积自我注意(CSA)图解:卷积和CSA的输出分别为1×1和3×3。从数学上讲,卷积包括两个过程:批处理矩阵乘法(BMM)和求和。BMM对应于等式1中的Wi→j xj。批次维度为空间位置数。CSA具有BMM运算,但具有相同的求和过程SA:它使用等式2中的权重α执行9种不同的依赖于输入的求和,彩色条带和斑块显示了这一过程。通过这种设计,CSA同时包含了可学习过滤器和动态核。
对于局部窗口,SA和CSA都有大小为k×k的输出。当αi→j=1,其中所有的权重相同时,CSA是输出中心的卷积。当,其中所有的投影矩阵相同时,CSA是自我注意。当我们使用由输入预测的动态α时,如等式3所示,Outlook attention[63]是CSA的特例。CSA具有比Outlook attention更大的能力。我们在Tab1中总结了它的性质,通过这种推广,CSA同时具有与输入相关的核和可学习的过滤器。CSA 是为增强 vision transformers 第一阶段的表现能力而设计的。
轻量化模型更高效,更适合于设备上的应用程序。然而,即使采用先进的模型体系结构,其性能也受到参数数量较少的限制。对于轻量级模型,本文将重点放在通过略微增加参数数量来增强它们的表示能力。
多尺度特征有利于检测或分割目标。Atrous 卷积提出,用与标准卷积相同数量的参数来捕获多尺度上下文。权值共享的 atrous 卷积也证明了提高模型性能。
与卷积不同,自注意力的特征响应是来自所有空间位置的投影输入向量的加权和。这些权重由query和key之间的相似度确定,并表示任何一对特征向量之间的关系强度。因此,在生成如图4所示的权重时,添加了多尺度信息。具体来说,将query的计算从1×1的卷积升级为以下操作:
首先使用 1 × 1 卷积来应用线性投影。
然后,应用三种具有不同膨胀率但共享内核的卷积来捕获多尺度上下文。通过将组数设置为特征通道数,进一步降低了参数开销。
最后,将不同尺度的并行特征加权求和。
同时本文采用了一种自校准机制,通过激活强度来确定每个尺度的weight。这可以由 SiLU 实现。通过这种设计,自我注意中任意一对空间位置之间的query和key的相似度计算利用了多尺度信息。
*图4:ASA图解:Q,K,V代表self-attention中的query、key和value。在线性投影后,ASA通过三次深度卷积来计算多尺度查询。这些卷积具有相同的核权重,但具有不同的扩张率:1、3、5。它们的输出与Sigmoid函数计算的权重相加,以用于自校准。这可以通过SiLU来实现。多尺度信息被用来计算相似度图,该相似度图对值的和进行加权。
对于轻量级模型,在不增加参数使用的情况下增加它们的深度。递归方法在卷积神经网络的许多视觉任务中被提出。与这些方法不同,本文提出了一种自注意力的递归方法。设计遵循标准循环网络的流水线,与Atrous自注意力(ASA)相结合,提出递归Atrous自注意力(RASA),其公式可以写成:
使用ASA作为非线性激活函数,初始隐藏状态,是输入状态和隐藏状态相结合的线性函数,和是投影权值,然而,经验发现,设置 提供了最好的性能,并避免引入额外的参数。本文将递归深度设置为 2,以限制计算成本。
LVT 的架构如表 2 所示。本文采用标准的四阶段设计。采用四个重叠的 Patch embedding 层。第一个将图像采样到 stride-4 分辨率。另外三个样本将特征映射为 stride-8、stride-16 和 stride-32 的分辨率。所有级均由 transformer 块组成。每个块包含自注意力层,后面跟着一个 MLP 层。CSA 嵌入在第 1 阶段,RASA 嵌入在其他阶段。它们是增强的自注意力层,用于处理 LVT 中的局部和全局特征。
数据集:ILSVRC2012
结果如表 3 所示。我们将编码器大小限制为小于 3.5M,遵循 MobileNet [45] 和 PVTv2-B0 [54]。 编码器是我们的设计重点,因为它是检测和分割等其他复杂任务使用的主干。 为了将 LVT 与其他标准模型进行比较,我们将 LVT 缩放到 ResNet50 [19] 的大小,这是视觉模型的规范骨干。 展示了 LVT 用于图像识别的高性能。
数据集:ADE20K
结果总结在表 4 中。FLOPs 是用输入分辨率 512×512 计算的。 FPS 是在单个 NVIDIA V100 GPU 上的 2000 张图像上计算的。在推理过程中,图像的大小会调整为短边为 512。我们只使用单尺度测试。 模型紧凑。 加上解码器,参数小于4M。 我们可以观察到,LVT 在所有以前的移动方法中表现出最好的语义分割性能。
数据集:COCO
结果如表 5 所示。FLOPs 是在输入分辨率 1200 × 800 上计算的。 在推理过程中,调整所有图像的大小,使得大边不大于 1333,短边小于 800。FPS 是在单个 NVIDIA V100 GPU 的 2000 个高分辨率图像上计算的。 包括解码器在内的整个模型采用的参数少于 5.5M。 与之前用于移动全景分割的最先进编码器相比,我们可以观察到 LVT 的优越性。
在这一部分中,我们研究了递归次数与模型性能之间的关系。实验是在ImageNet分类上进行的。我们将递归时间从1设置为4。结果汇总在表7种。
*表7:递归次数与IMAGENet分类性能的关系。R表示递归次数。两次迭代后,性能显著提高。考虑到效率,我们在主要实验中使用了LVT R2。
在本节中,我们研究了卷积自我注意 (CSA) 和递归 Atrous Self-Attention 的性能贡献。 为此,我们通过最近提出的 VOLO 构建了我们的模型,该模型在第一阶段采用了小内核自注意力。 由于 VOLO 被证明是图像识别和语义分割的强大主干,我们在 ImageNet 和 ADE20K 上进行了实验。 为了在移动设置中进行比较,我们将 VOLO 缩放为参数大小为 4.0M。 具体来说,我们将每个阶段的层数设置为2,并将特征维度调整为96,192,192,192。 所有其他设置保持不变。
在下表中。对于ImageNet分类,训练和测试的输入分辨率都是224 × 224。对于ADE20K语义分割,按照SegFormer框架,在MLP解码器中插入VOLO和LVT。在测试期间,图像的短边被调整为512。它被观察到CSA和RASA对性能增益有显著的贡献。
*表6:使用VOLO作为基础网络添加CSA和RASA,因为VOLO在第一阶段使用3×3kernel的self-attention。 通过这种比较,可以清楚地说明从局部自注意力到卷积自注意力(CSA)的性能增益。 事实证明,CSA 和 RASA 都对性能改进做出了重大贡献。
在这项工作中,我们提出了一种功能强大的轻型变压器主干-Lite Vision Transformer(LVT)。它由两个新的自我注意层组成:卷积自我注意(CSA)和递归Atrous自我注意(RASA)。它们用于LVT的前三个阶段和最后三个阶段,以处理低层和高层特征。在视觉识别、语义分割和全景分割等任务中,与以往的移动方法相比,该方法具有更好的性能。
limitations: LVT 是一种轻量级模型。 与具有大量参数的模型相比,其自然限制是较弱的表示能力。 这项工作的重点是移动模型。 我们未来的工作包括将 LVT 扩展到强大的大型骨干网。