即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

563次阅读
没有评论

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

卷积神经网络(CNNs)在局部空间模式识别方面表现出色。对于许多视觉任务,如物体识别和分割,显著信息也存在于CNN核边界之外。然而,由于CNN的受限制的感受野,它们在捕获这种相关信息时感到力不从心。

自注意力机制可以提高模型获取全局信息的能力,但同时也增加了计算开销。作者提出了一种快速简单的全卷积方法DAS,它有助于将注意力集中在相关信息上。该方法使用了可变形卷积来表示相关图像区域的位置,并使用了可分卷积来实现效率。

DAS可以插入到现有的CNN中,并使用通道注意力机制传播相关信息。与Transformer风格注意力所需的O(n^2)计算复杂度相比,DAS的计算复杂度为O(n)。

作者的主张是,DAS将注意力集中在相关特征的能力,在添加到流行的CNN(卷积神经网络)用于图像分类和目标检测时,可以带来性能提升。例如,DAS在Stanford Dogs(4.47%的改进)、ImageNet(1.91%的改进)和COCO AP(3.3%的改进)上,与基于ResNet50 Backbone网络的原始模型相比。

这种方法在使用了相似或更少的FLOPs的同时,超越了其他CNN注意力机制。作者的代码将公开发布。

1 Introduction

卷积神经网络(CNNs)在结构上设计用于通过应用卷积核实现的卷积滤波器来利用局部空间层次。尽管这使得它们在涉及局部空间模式的任务上既高效又有效,但其固有的设计限制了它们的感受野,可能会阻碍不在内核边界内的相关信息的全面集成。

视觉Transformer(ViT)支持在图像中捕获全局依赖关系和上下文理解,并在许多计算机视觉任务中显示出改进性能。ViT将图像分解为一系列扁平化的Patch,并随后将它们映射到Transformer编码器的嵌入向量序列中。

这种基于Patch的方法采用是由于注意力机制固有的计算复杂度与输入向量的数量有关。通过将图像转换为较粗的Patch,ViTs有效地减少了输入Patch的数量,即。然而,在像素级别的密集注意力方面仍然存在计算上的挑战。此外,ViTs通常需要更大的模型大小、更高的内存需求和广泛的预训练,与CNNs相比,而且它们的计算需求限制了在实时嵌入式应用中的实用性。

尽管继续努力将Transformer的二次复杂度控制在使用卷积对长序列进行密集注意力,但已有很多研究直接将自注意力机制集成到CNN中,以实现密集显著特征注意力。这项工作的主要动机是后者。

CNN中的注意力机制可以广泛地分为_通道注意力、空间注意力_和_混合域注意力_。这些方法提出了一些策略来包含特定计算的注意力,例如使用聚合、子采样、池化等技术,这反过来又使得提供密集注意力变得困难。

例如,大多数遵循堆叠注意力模块的工作的论文在计算注意力权重之前使用平均池化操作在注意力感知的特征图上。一种流行的策略是计算每个通道的一个权重[15, 33]。这可能导致忽视了重要的空间上下文信息。

一些方法已经提出,通过混合通道和空间注意力来扩展上述方法,从而获得更鲁棒的注意力模块。另一种扩展方法使用输入的两个旋转的全局池化以及原始张量与全局池化相结合,将来自特征的三维信息进行组合。

然而,它们仍然面临着有效地为显著特征提供注意力的问题。它们将通道和空间注意力视为独立的过程,因此它们没有全面地考虑特征中的信息,这可能导致潜在信息损失。

增加对图像相关区域的关注的一个有前途的方法是使用变形网格而不是标准卷积滤波器中使用的常规网格。DCN v2已经显示了在关注相关图像区域方面的改进能力。

这些方法[35, 39]已经被用于为ViTs中的细粒度语义分割和图像分类任务提供变形注意力,通过在ViTs中找到更好的键和查询。然而,作者的主要兴趣在于在最小化对原始网络或其训练的更改的情况下,直接在CNNs中提供一个注意力机制。因此,本文其余部分的重点将是卷积注意力方法。

作者的方法部分受到DCN的成功的启发,部分受到在各种视觉任务(如光学流和立体视觉)中,使用Raft架构设计的主导地位,如传播图像/特征图使用门控循环单元(GRU)进行递归。

作者的主要贡献是一种高效的门控注意力机制DAS,它可以聚焦并增加对显著图像区域的注意力。它可以非常容易地集成到任何现有的CNN中,以提高CNN的性能,同时增加的FLOPs最小,并且最重要的是,不会改变Backbone结构。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

作者的注意力门结合了层特征提供的上下文和变形卷积的能力,以优雅地增加对显著特征的关注(见图1)。DAS只添加了一个单个的超参数,也很容易进行调整。

作者展示了将作者的门控添加到标准CNN(如ResNet和MobileNetV2)中的方法,并通过大量的实验结果,展示了在各种任务中性能的提高。为了支持作者的主张,即带有作者注意力门控的CNN确实会聚焦并增加对任务相关特征的关注,作者展示了梯度卷积Heatmap,突出显示重要像素。作者还定义并计算了一个简单的指标,称为_显著特征检测_(_sfd_)分数,用于定量化比较作者注意力门控的有效性。

2 Related Work

CNN注意力机制已经发展起来,旨在消除通过神经网络流动的冗余信息,同时解决计算负载问题。目标是增加对显著特征的关注,并减少/不关注无关特征。

通道注意力。 压缩与激励网络(SENet)引入了一种使用全局池化和全连接层的高效的通道注意力机制。SENet为每个通道计算一个注意力权重,导致与基础架构相比显著的性能改进。与此同时,全局二阶池化网络(GSoP-Net)方法采用二阶池化来计算注意力权重向量。有效的通道注意力(ECA-Net)[33]通过全局平均池化和一维卷积为每个通道计算注意力权重。上述通道注意力方法忽略了大量的空间上下文信息。

空间注意力。 GE-Net 通过深度卷积对信息进行空间编码,然后将输入和编码的信息整合到后续层。

双注意力网络。 双重注意力网络(A2-Nets)方法引入了新的关系函数用于非局部(NL)块,依次使用两个连续的注意力块。全局上下文网络(GC-Net)方法使用复杂的基于置换的操作将NL-块和SE块集成,以捕捉长期依赖关系。

交叉路径结合上下文信息。 CC-Net 结合了交点轨迹上的像素的上下文信息。并行处理子特征。 SA-Net 利用通道拆分并行处理子特征。

在上述所有空间注意力方法中,尽管目标更多是捕捉长程依赖关系,但计算开销可能较高,正如作者在实验结果中所看到的。

通道-空间注意力。 卷积块注意力模块(CBAM)和瓶颈注意力模块(BAM)将通道和空间注意力分开,并在最后一步将它们结合,以获得比SENet更好的性能。CBAM的注意力模块包括多层感知机(MLP)和卷积层,采用全局平均和最大池化的融合。SPNet [13]中引入了一种称为条带池化的池化技术,利用一个长而窄的核有效地捕获涉及像素级预测的任务的广泛上下文细节。

GALA 也分别找到局部和全局信息,使用两个2D张量并将其集成以获得通道-空间注意力。Triplet注意力[26]通过交换输入张量和池化来捕获跨维度的交互,从而提高性能。

DRA-Net 也采用两个独立的FC层来捕获通道和空间关系。OFDet 使用所有三种注意力(通道、空间和通道-空间注意力)同时。

在上述所有方法中,这些单独处理的关注度需要谨慎地结合以提供更全面地表示特征依赖性。由于使用了平均和/或池化,提供密集关注也很难。再者,计算开销很高。

针对CNN中的注意力机制,一项调查将其分为6个类别:

  1. 通道注意力
  2. 空间注意力
  3. 时间注意力
  4. 分支注意力
  5. 通道与空间注意力
  6. 空间与时间注意力

作者提出的注意力模块没有像上述方法那样分离注意力,而是同时考虑整个特征并采用非常简单的方法返回像素级注意力权重。总之,现有方法尚未完全解决以全面方式捕获通道、空间和相关信息,这对于理解上下文信息至关重要。在大多数情况下,密集注意力和/或计算开销也可能是一个问题。

相比之下,作者提出的注意力门控结合了深度可分卷积和变形卷积的优势,以全面方式为像素级提供注意力。它使得作者的模型能够有效地将注意力集中在相关信息上,同时保持CNNs的架构简单性。

3 Methodology

在本节中,作者提出了一种名为DAS的注意力机制,以一种计算高效的方式增强CNN的能力,提供对相关信息的有焦点关注。作者通过在ResNet和MobileNetV2模型的每个主要块的跳过连接后使用作者的DAS注意力门控来说明其使用。作者的方法的关键步骤和组成部分如下所述。

Bottleneck Layer

作者使用一个深度可分卷积操作作为瓶颈层。这个操作减少了特征图中的通道数量,将它们从通道减少到通道,其中。这个大小减少参数的选择是为了平衡计算效率与准确性。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

通过作者 presented 的 ablation study 中的实验,作者确定的最优值(见图3)。这也表明,作者的模型中添加的唯一超参数对于来说并不敏感。在瓶颈层之后,作者应用一个归一化层,具体为实例归一化,然后是一个GELU非线性激活。这些操作增强了特征的表达能力,并有助于注意力机制的有效性。

Instance和Layer Normalization的选择得到了表5中的实验结果的支持。等式1展示了压缩过程,其中X表示输入特征,表示深度可分卷积。

在表5中,作者展示了在变形卷积操作之前使用InstanceNorm作为归一化技术的的重要性。直观上,实例归一化过程允许从图像中移除实例特定的对比信息,从而在训练过程中提高变形卷积注意力模型的鲁棒性。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

Deformable Attention Gate

上一步骤(等式1)得到的压缩特征数据代表的是特征上下文,然后通过一个使用在[5, 38]中引入的动态网格(通过偏移)的变形卷积进行处理。作者知道这种网格有助于关注相关的图像区域。

的值取决于核函数应用在哪些特征上。

DCN之后,作者应用Layer Normalization,然后是一个Sigmoid激活函数(等式3)。这个卷积操作将特征图的通道数从更改为原始输入

等式3的输出代表注意力门。这个门控制着从特征图的信息流,每个门张量中的元素值在0和1之间。这些值决定了哪些特征图部分被强调或过滤掉。最后,为了将DAS注意力机制集成到CNN模型中,作者在原始输入张量与前一步得到的注意力张量之间进行点乘。

方程4的乘法结果是CNN模型下一层的输入,无缝地将注意力机制集成到模型中,无需更改Backbone结构。与先前的变形注意力机制相比,DAS注意力机制主要应用于CNN。它采用了一个3×3内核,更适合CNN。

尽管[39]将变形注意力专门应用于查询特征,但DAS注意力机制则从整体上考虑图像特征。作者的注意力机制作为一个独立的模块运行,不需要对主要架构进行更改,从而增强了在基于变形的Transformer注意力方法上的可插拔能力。

4 Experiments

4.1 训练设置

对于图像分类,作者使用了CIFAR100,Stanford Dogs,和ImageNet1k数据集,对于目标检测,作者使用了MS COCO数据集。作者采用了与 [26]中提到的一致的ResNet和MobileNetV2架构。

对于ImageNet实验,作者采用了与 [26]中提到的一致的设置:ResNet训练,批量大小为256,初始学习率0.1,权重衰减为1e-4,共进行100个epoch。学习率在30,60和90 epochs时,通过0.1的因子进行调整。

MobileNetV2: 批量大小为96,初始学习率0.045,权重衰减为4e-5,学习率在每个epoch中通过0.98倍进行调整。

对于CIFAR100和Stanford Dogs数据集,作者与Triplet注意力[26]和Vanilla ResNet进行了比较。作者对ResNet-18进行了超参数搜索,并为所有Baseline设置相同的设置:300个epoch,批量大小为128,初始学习率0.1,权重衰减为5e-4,学习率在70,130,200,260时,通过0.2的倍数进行衰减。

对于Stanford Dogs数据集,作者采用了以下设置:批量大小为32,学习率为0.1,权重衰减为1e-4,CosineAnnealing学习率调度器,随机翻转和裁剪用于图像预处理。

对于目标检测,作者使用Faster R-CNN在MS COCO上进行,使用MMdetection工具箱,批量大小为16,初始学习率为0.02,权重衰减为0.0001,并使用ImageNet-1k预训练的Backbone。作者通过先训练Backbone来减轻噪声,然后训练Backbone和其余部分模型进行几轮训练。从这次初始训练中获得的权重被用作作者后续训练过程的初始化点。作者一直使用SGD优化器。

Image Classification

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

表3表明,添加Triplet注意力略微提高了ResNet-18在CIFAR100上的准确率(0.3%),但在Stanford Dogs数据集上降低了1.36%。然而,DAS在CIFAR100和Stanford Dogs上的ResNet-18准确率分别提高了0.79%和4.91%。

与ResNet-18类似,将Triplet注意力添加到ResNet-50对Stanford Dogs的Backbone模型产生了负面影响,而DAS在CIFAR100和Stanford Dogs上分别增强了Backbone模型的2.8%和4.47%,显示出DAS在小型和大型模型上的性能一致性。有趣的是,作者在CIFAR100和Stanford Dogs数据集上观察到,作者的提出的DAS-18方法不仅超过了基础的ResNet-18模型,而且超过了包括ResNet-50在内的更深架构,同时使用了2.26G更少的FLOPs。这使得DAS-18成为移动应用的有力选项。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

图像Net分类的结果在表1中给出。当将DAS注意力门控应用于ResNet-18时,分类精度得到了显著的改进。DAS在Top-1精度上达到了72.03%,在Top-5精度上达到了90.70%。这超过了其他现有方法,如SENet ,BAM,CBAM,Triplet Attention,和EMCA,展示了DAS在提高模型性能方面的有效性。

DAS深度为50时,在Top-1精度上达到78.04%,在Top-5精度上达到94.00%。它以使用32%更少的FLOPs和1.39M更少的参数的最佳性能实现了最佳性能,超过了GSoP-Net等排名第二的性能。ResNet-50 + DAS注意力在Top-1精度上超过了ResNet-101,在约60%的FLOPs和参数数量上提高了0.69%的准确性。ResNet-101 + DAS注意力在与其他具有较少参数的注意力模块(与SENet和CBAM相比)中获得了最佳的Top-1精度(78.62%)。

在轻量级的MobileNetV2上,DAS仍然有效。它在Top-1精度上达到了72.79%,在Top-5精度上达到了90.87%,超过了SENet,CBAM,和Triplet Attention,同时具有计算效率,FLOP计数低至0.35G。

Object Detection

表2显示了作者在使用Faster R-CNN模型在具有挑战性的MS COCO数据集上的目标检测实验结果。用于评估的指标包括平均精确度(AP),在不同IoU阈值下的AP(AP,AP),以及针对小型(AP),中型(AP)和大型(AP)对象的特定AP。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

Backbone架构的选择对目标检测性能有显著影响。在作者的评估中,ResNet-50,ResNet-101,SENet-50,CBAM-50和Triplet Attention-50被用作强大的Baseline。作者的DAS-50模型在AP,AP,AP,AP和AP得分上超过了所有Backbone架构,同时参数数量比ResNet-101,SENet-50和CBAM-50都更少。

Design Evolution and Ablation Studies

在确定DAS设计之前,作者探索了两种像素级注意力的概念。这些概念在图2(a)和(b)中展示,并在Stanford Dogs数据集的表4中对应的结果。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

**(a)**:作者将输入与自身的一个GridSample进行拼接,然后使用一个卷积层将输入和来自遥远像素的信息融合在一起。尽管这种方法显示出潜力,但在Stanford Dogs数据集上的准确率仅为65.00%。GridSample是PyTorch的一个可微分特征,它根据给定的网格张量在空间上插值相邻像素。

**(b)**:作者通过使用压缩输入和GridSample输出来计算特征中的冗余信息权重,对初始概念进行了扩展。这种改进使得准确率从65.00%提高到65.21%,同时降低了计算开销。为了评估作者的设计决策 **(c)**,作者进行了各种 ablation 研究。

**(d)**:去掉初始部分并仅依赖变形卷积导致准确性降低(65.338%),这强调了第一卷积层的重要性。

**(e)**:去掉变形卷积但保留初始部分增加了计算量和降低了准确性(65.291%),这表明需要多个层进行精确的注意力建模。

**(f)**:用深度可分卷积替换变形卷积提高了准确率(66.107%),但仍然被作者的方法超过,这突显了变形卷积在关注相关信息方面的优势。

**(g)**:去掉注意力模块并只使用变形卷积大幅度降低了准确率,这强调了注意力行为的重要性。

**(h)**:类似地,去掉注意力模块并使用额外的层也显示了低准确率,这强调了使用这些层作为注意力模块的偏好。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

作者提出的注意力方法 (c) 在所有配置上超过了其他方法,实现了最佳准确率(66.410%)。这强调了作者的上下文感知注意力机制在关注相关信息(即使不在内核边界外)方面的有效性,并增强了模型性能。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

表5展示了不同归一化层对注意力模块的影响。总之,作者的实验结果表明,与其它想法和配置相比,作者的方法在准确率和计算效率方面具有优势,为像素级注意模型提供了有价值的补充。

作者研究了参数从0.01到1的变化对计算量的影响。增加会增加计算量和参数数量。作者的发现如图3所示,大于0.1的值可以获得更好的结果。通常,存在FLOPs和准确率之间的权衡。因此,在大多数研究中,作者选择了

作者研究了注意力层数的影响。在所有跳过连接之后添加注意力层可以稍微提高性能,但会显著增加计算量和参数,尤其是在较大的模型中。经验上,作者观察到四个注意力门层在计算成本和准确性之间达到了良好的平衡。作者还研究了注意力门的位置,最终选择了对于小和大数据集都简单、高效且准确的注意力模型。

Salient Feature Detection Effectiveness

任何任务中应用注意力机制的目标是增加对相关特征的关注度,同时减少或避免对无关特征的关注度。作者认为早期部分性能改进的主要原因是作者的门控在图像中突出并增加对显著特征的关注度。在本节中,作者将可视化作者的注意力机制在多大程度上达到了上述目标。

为此,作者使用gradCAM,这是一个函数,可以生成显示输入图像中哪些部分对于由训练好的网络做出的分类决策具有重要性的Heatmap。在Heatmap中使用的颜色方案是红到蓝,其中蓝色表示较低的重要性。

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

图4显示了使用ResNet-50和注意力门前后,对多个样本的block 3和block 4的Heatmap。这些案例清楚地表明,作者的注意力门在图像中更好地关注相关特征。作者在ResNet的每个block的末尾应用了作者的注意力门,这样网络可以在早期阶段也开始关注图像中的相关特征。观察图4中block 3到block 4的Heatmap变化,作者可以看到使用DAS注意力时,注意力确实转向了相关的特征。

最后,作者定义了一个简单的指标,用于衡量训练好的网络在关注相关特征方面的有效性。作者基于gradCAM输出的权重。由于作者观察到gradCAM权重被压缩在0到1的范围内,作者在以下中使用gradCAM权重的反对数缩放。显著特征检测分数是。

提供了衡量图像中相关特征所受到的注意力的强度的度量。它的值越高,表示对相关特征的关注度越高。另一方面,的值较高时,意味着对无关特征的注意力也在增加。的值在0到1之间变化。一个接近1的分数意味着对相关特征有集中的注意力,而一个接近0的分数意味着完全错误的注意力。中间值表示注意力在相关和无关特征之间分布。作者使用以下过程来检测R和B。

作者首先使用Grounding-DINO+SAM在图像中识别要分类的对象。为了避免手动检查,作者接受这个操作中的可能错误,这给了作者相关的特征区域R。在R之外,作者选择根据gradCAM包含显著像素的区域。这与R一起给出了B。图4的最后一行显示了ResNet-50和DAS的值。作者还计算了来自ImageNet的100张图像的值。ResNet和DAS的值分别为0.59和0.72,这分别说明了作者的方法在实现针对性的特征注意力方面的强度。

5 Conclusion, Limitations and Extensions

在本文中,作者提出了DAS注意力门,一种新的自注意力机制,适用于CNN。DAS没有使用Transformer。与CNN内较早的方法相比,DAS提供密集注意力,并全面地考虑特征上下文。

DAS非常简单 – 它结合了深度可分卷积(用于高效表示全局上下文)和变形卷积(用于增加对相关图像区域的关注度)。实现结果确实表明,尽管DAS很简单,但它可以在图像中实现对任务相关特征的聚焦注意力。

一种局限性是,当网络具有大的深度特征时,计算开销可能会显著增加。因此,的值必须谨慎选择。如果的值太小,会导致上下文信息的损失;如果的值太大,会增加计算量。

虽然作者已经在图像分类和目标检测中展示了DAS的性能,但在未来,作者希望将其应用于更密集的视觉任务,如语义分割和立体匹配,在这些任务中,DAS的密集注意力能力可以提供显著的优势。

参考

[1]. DAS: A Deformable Attention to Capture Salient Information in CNNs.

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!

即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!即插即用注意力机制 | ResNet50+DSA注意力还可以再挣扎挣扎!!!想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy