摘要
深度神经网络的最新进展是通过架构搜索来获得更强的表征能力。
瓶颈注意模块(BAM):
本研究关注深度神经网络中注意力机制的影响,提出了一个简单而有效的注意力模块,即瓶颈注意模块(BAM),可以与任何前馈卷积神经网络集成,沿着两个不同的路径(通道和空间)推断注意力映射。 将模块放在模型的每个瓶颈处(特征映射产生降采样),构建一个具有多个参数的分层注意,可以与任何前馈模型以端到端方式进行训练。
实验结果:
在CIFAR-100、ImageNet-1K、VOC 2007和MS COCO基准上的大量实验验证BAM,实验表明在不同的模型下,分类和检测性能不断提高,证明了BAM的广泛适用性。
1 介绍
深度学习:
已经成为一系列模式识别应用的强大工具,包括分类、检测、分割和控制问题。由于其数据驱动的特性和大规模并行计算的可用性,深度神经网络在大多数领域都取得了最先进的结果。
提高深度学习性能的方法:
研究人员已经做了很多努力来提高深度学习的性能,如设计优化器、提出对抗性训练方案,或特定于任务的元架构,如两阶段架构的检测。
(1)提高性能的一个基本方法是设计一个良好的主干体系结构:从第一个大规模的深度神经网络AlexNet开始,各种骨干架构如VGGNet、GoogLeNet、ResNet、DenseNet等已经被提出。所有的主干网架构都有自己的设计选择,与以往的架构相比,表现出了显著的性能提升。
(2)提高网络性能最直观的方法是堆叠更多的层:深度神经网络能够使用其深层近似高维函数。
VGGNet和ResNet:VGGNet的层数比AlexNet多两倍。此外ResNet比VGGNet多出22倍的层数,通过采用剩余连接改进了梯度流动;
GoogLeNet:也非常深,它在每个卷积块上将使用不同大小卷积核处理的特征进行串联,在同一层上使用不同的特性可以提高性能,从而产生强大的表示;
DenseNet:也使用了不同特征映射的连接,但是这些特征来自不同的层。换句话说,卷积层的输出迭代地连接到输入的特征映射上。
WideResNet:表明使用更多的通道,更宽的卷积,可以获得比单纯深度网络更高的性能。
PyramidNet:表明在更深的层中增加通道可以有效地提高性能。
ResNeXt或Xception:最近使用分组卷积的方法,显示了作为骨干架构的最先进性能。ResNeXt和Xception的成功来自于具有更高基数的卷积,可以有效地实现高性能。
MobileNet:一个实际的研究方向是寻找面向移动的、计算效率高的架构,MobileNet与ResNeXt和Xception共享类似的原理,使用具有高基数的深度卷积。
(3)提高深度神经网络的最新思路——注意力机制:注意力机制模块通常为简单、轻量级的通用深度卷积网络模块,易于与现有CNN架构集成,并且深已经在以往的许多研究中得到了研究。
本文注意力机制BAM:
之前的大多数作品都是将注意力用于特定的任务,本文明确地将注意力作为一种有效提高网络表征能力的方式,提出“瓶颈注意模块”(BAM),一个简单而有效的注意模块,可用于任何CNN。对于3D特征图,BAM会生成3D注意力图来强调重要元素,推断3D注意图的过程分解为两个分支流程(图2),可以大大减少计算开销和参数开销。特征图的通道可以看作特征检测器,两个分支(spatial和channel)明确地学习应该关注“什么”和“哪里”。
我们在各种任务上使用各种基线架构测试BAM的有效性。在CIFAR-100和ImageNet分类任务中,我们通过放置BAM观察到相对于基线网络的性能改进。有趣的是,我们观察到位于不同瓶颈的多个bam构建了一个分层注意力,如图1所示。最后,我们在VOC 2007和MS COCO数据集上验证了目标检测的性能改进,证明了BAM的广泛适用性。由于我们精心设计了轻量化的模块,参数和计算开销可以忽略不计。
本文贡献:
(1)提出了一个简单而有效的注意力模块BAM,可以与任何没有附加功能的CNN集成。
(2)通过广泛的消融研究来验证BAM的设计。
(3)通过在多个基准(CIFAR-100, ImageNet-1K, VOC 2007和MS COCO)上使用各种基线架构进行大量实验,验证BAM的有效性。
2 相关工作
注意力:
许多研究表明,注意在人类感知中起着重要作用。例如人眼中央凹处的分辨率高于周围区域。为了高效、自适应地处理视觉信息,人类视觉系统对空间瞥见进行迭代处理,并聚焦于显著区域
跨通道的注意(Cross-modal attention):
注意机制是多模态环境中广泛使用的一种技术,特别是当某些模态需要在其他模态上处理时。
视觉问答(VQA)任务:是多模态任务的一个著名示例,给定一个图像和自然语言问题,任务是预测答案,比如计算数量,推断目标位置或属性,VQA任务可以看作是一组动态更改的任务,其中提供的图像应该根据给定的问题进行处理。
注意机制在图像特征中选择任务(问题)相关的方面:图像特征的注意图是由给定的问题生成的,它作为查询来检索与问题相关的特征,最后的答案是分类堆叠的图像特征。另一种方法是使用双向推断,生成文本和图像的注意力映射。
注意力映射被用作一种有条件的解决任务的有效方法,但为了特定任务的目的,它们是在单独的阶段进行训练。
自注意力(Self-attention):
目前已有多种方法将注意力集成到DNN中,以端到端的方式联合训练特征提取和注意力生成。
一些尝试认为注意力是一般分类任务的有效解决方案:
Wang等人提出了剩余注意网络(Residual Attention Networks ):该网络使用沙漏模块生成中间特征的3D注意力映射,尽管该体系结构能够抵抗由于生成注意映射而产生的噪声标签,由于3D映射生成过程繁重,导致计算/参数开销大;
Hu等人提出了一个紧凑的“挤压和激励”(Squeeze-and-Excitation)模块:利用通道间的关系,虽然没有明确说明,但可以认为是一种应用于通道轴上的注意机制,然而忽略了空间轴,而空间轴也是推断准确注意图的重要因素。
自适应模块(Adaptive modules):
以前的一些作品使用自适应模块,根据输入动态改变它们的输出。
(1)动态滤波器网络(Dynamic Filter Network):提出基于输入特征生成卷积特征的灵活方法。
(2)空间变压器网络( Spatial Transformer Network):利用输入特征自适应地生成仿射变换超参数,最终实现目标区域特征映射的良好对齐,这可以看作是对特性图的严重关注。
(3)可变形卷积网络(Deformable Convolutional Network ):使用可变形卷积,其中池化偏移是从输入特征动态生成的,因此只有相关的特征被池化用于卷积。
BAM: 也是一个自包含的自适应模块)(self-contained adaptive module),通过注意机制动态抑制或强调特征映射。
本文用一个简单和轻量化的设计利用通道和空间的注意力。此外还找到了一个有效的位置来放置模块,即网络瓶颈。
3 瓶颈注意力模块
(图2:详细的模块架构。给定中间特征图F,该模块通过通道Mc和空间Ms这两个单独的注意分支计算出相应的注意图M(F)。模块有两个超参数:膨胀值(d)和收缩比®。膨胀值决定了接受域的大小,有助于空间分支的上下文信息聚集。收缩比控制着两个注意力分支的能力和开销。 通过实验验证(见4.1节),设{d = 4, r = 16})
BAM的详细结构如图2所示。对于给定的输入特征图F∈RC×H×W, BAM推断出一个3D注意图M(F)∈RC×H×W,细化后的特征图F’计算如下:
其中⊗表示逐元素乘法。我们采用残差学习方案和注意机制来促进梯度流。为了设计一个高效而强大的模块,首先在两个独立的分支计算通道注意映射Mc(F)∈RH×W和空间注意映射Ms(F)∈RH×W,然后计算注意力映射M(F):
其中σ是一个sigmoid函数。两个分支输出在相加之前都被调整为RC×H×W大小。
通道注意力分支:
每个通道都包含一个特定的特征响应,强调关注什么特征(what),我们可以利用通道分支中的通道间关系。
(1)为了聚合每个通道的特征图,在特征图 F上取全局平均池化,生成一个通道向量Fc∈RC×1×1,向量在每个通道中对全局信息进行编码。
(2)为了从通道向量Fc估计通道间的注意力,使用带有一个隐含层的多层感知器(MLP),并且为了节省参数开销,隐藏的激活大小设置为RC/r×1×1,其中r是衰减率。
(3)在MLP之后,添加一个批量归一化层( BN)来调整空间分支输出的尺度。
简而言之,通道注意力计算为:
其中
空间注意力分支:
空间注意力分支强调或抑制在不同空间位置的特征(where),生成Ms(F)∈RH×W,空间注意力映射。众所周知利用上下文信息是了解空间位置的关键,重要的是要有一个大的感受野范围来有效地利用上下文信息。
利用膨胀卷积来高效地扩大感受野,膨胀卷积比标准卷积更容易构建更有效的空间映射(见第4.1节)。空间注意力分支采用了ResNet提出的“瓶颈结构”,既节省了参数的数量,又节省了计算开销。
(1)首先,将特征F∈RC×H×W投影降维得到RC/r×H×W,该过程使用 1×1卷积整合和压缩跨通道维度的特征映射。
(2)然后,使用与通道分支相同的衰减率r,衰减后,应用两个3×3膨胀卷积来有效地利用上下文信息。
(3)最后,利用1×1卷积将特征再次简化为R1×H×W空间注意力图。
(4)为了调整尺度,在空间分支的末端应用批量标准化层。
简而言之,空间注意力的计算方法为:
其中f为卷积运算,BN为批归一化,上标为卷积核大小。两个1×1卷积用于通道降维。中间的3×3膨胀卷积用于聚合具有更大感受野的上下文信息。
结合两个注意力分支:
从两个注意分支中获取通道注意Mc(F)和空间注意Ms(F)后,将它们组合生成最终的3D注意映射M(F)。
(1)由于两种注意力映射形状不同,在组合之前将注意力映射扩展到RC×H×W大小。
(2)在各种组合方法中,如逐元素求和、乘法或max运算,选择逐元素求和来实现高效梯度流。通过经验验证了逐元素求和在三个选项中表现最好。
(3)求和后,利用sigmoid函数得到最终的0到1范围内的3D注意映射M(F)。
(4)将该3D注意映射与输入特征图F进行逐元素相乘,然后将其添加到原始输入特征图上,得到精细化的特征图f0如Eq.(1)。
4 实验
在标准基准上评估BAM:CIFAR-100, ImageNet-1K图像分类,VOC 2007、MS COCO目标检测。
为了更好地进行公平比较,首先在PyTorch框架中重现了所有报告的网络性能,并将其设置为基线。然后进行广泛的实验来彻底评估模块的有效性。最后,验证了BAM在没有附加功能的情况下优于所有基线,演示了BAM在不同架构和不同任务之间的普遍适用性。
4.1 CIFAR-100上的消融研究
CIFAR-100数据集:
由来自100个类的60,000张32×32彩色图像组成。训练集和测试集分别包含50,000张和10,000张图像。采用标准的数据增强方法随机裁剪4像素填充和水平翻转的数据集。对于预处理,使用RGB平均值和标准差对数据进行归一化。
(表1:BAM结构和超参数的消融研究。(a)两个超参数最优值的实验;(b)验证空间和通道分支的有效性的实验;©对比BAM与原始conv块有效性的实验)
膨胀值和衰减率:
表1:基于ResNet50架构进行实验,确定模块中的两个主要超参数,即膨胀值和衰减率。
(1)膨胀值:空间注意分支的膨胀值决定了感受域的大小。表1给出了四种不同膨胀值的比较结果,可以观察到膨胀值越大,性能越好,但在膨胀值为4时已经饱和。这种现象可以用上下文推理来解释,上下文推理在密集的预测任务中得到了广泛的应用。由于膨胀卷积序列允许感受野的指数级扩展,它使我们的模块能够无缝地聚合上下文信息。需要注意的是,标准卷积(即膨胀值为1)产生的精度最低,这表明了上下文先验在推断空间注意映射的有效性。
(2)衰减率:与两个注意分支中的通道数量直接相关,使我们能够控制模块的容量和开销。在表1中比较了四种不同缩减率的性能。虽然减缩率4和8有更高的容量,但16的衰减率达到了最好的精度,由于训练损失在两种情况下都收敛了,我们推测这个结果是过拟合的。
根据表1结果:在接下来的实验中,将膨胀值设为4,缩减比设为16。
分开或合并分支:
表1,进行了一个消融研究来验证模块中的设计选择:
(1)首先去除每个分支,以验证同时利用通道和空间注意分支的有效性:表1尽管每个注意力分支在基线上都有效地提高了性能,但当联合使用两个分支时,性能显著提高。表明将通道和空间分支结合在一起在推断最终注意力映射时起着关键作用。事实上这一设计遵循了人类视觉系统的类似方面,即“什么”(通道)和“哪里”(空间)路径,这两种路径都有助于处理视觉信息。
(2)相结合的方法,探讨了三种不同的组合策略:元素最大值、逐元素积和逐元素和。表1三种不同实现的比较结果,逐元素求和能获得最佳性能。就信息流而言,逐元素求和是集成和保护来自前一层的信息的有效方法。在前向阶段,它使网络能够利用通道和空间两个互补分支的信息,而不丢失任何信息。在后向阶段,梯度均匀地分配到所有的输入,导致有效的训练。 逐元素积可以为小的输入分配一个大的梯度,这使得网络难以收敛,导致性能较差。基于元素的最大值只将梯度路由到更高的输入,在某种程度上提供了正则化效果,导致训练不稳定,因为模块有很少的参数。 请注意,所有三个不同的实现都优于基线,这表明利用每个分支是至关重要的,而最佳组合策略进一步提高了性能。
与放置原始convblock的比较:
在这个实验中,验证了显著的改进并不是由于单纯地向瓶颈添加额外的层增加深度带来的。添加与基线卷积块具有相同拓扑的辅助卷积块,然后与表1中的BAM进行比较。可以明显地注意到,插入BAM不仅可以产生更好的性能,而且比单纯地放置额外的层所带来的开销更少。这意味着BAM的改进不仅仅是由于深度的增加,而是由于有效的特征细化。
瓶颈:放置BAM的有效位置:
(表2:卷积块内部vs瓶颈 .bamc表示模块插入到每个卷积块的位置。)
实践证明,网络的瓶颈是放置模块BAM的有效位置。 最近关于注意机制的研究主要集中在“卷积块”内的修改而不是“瓶颈”,我们使用CIFAR-100的不同模型来比较这两个不同的位置。在表2中可以清楚地看到,将模块置于瓶颈位置在开销/准确性方面是有效的。除PreResNet 110外,在大多数情况下,它的开销更少,精度更高。
4.2 CIFAR-100上的分类结果
(表3:图像分类任务实验:CIFAR-100和ImageNet 1K。括号内的数字表示参数/计算开销,w为WideResNet中的扩宽因子,k为DenseNet[中的增长率。对于DenseNet将模块在转换块中来回放置。)
表3:将BAM放置在瓶颈处后,对比了最先进模型在CIFAR-100的性能,需要注意的是ResNet101和ResNeXt29 16x64d网络分别实现20.00%和17.25%的错误,ResNet50与BAM与ResNeXt29 8x64d和BAM分别实现20.00%和16.71%的错误,仅使用一半的参数。结果表明,在网络参数较少的情况下,可以有效地提高网络容量,由于轻量级设计,总体参数和计算开销是微不足道的。
4.3 ImageNet-1K上的分类结果
(表3:图像分类任务实验:CIFAR-100和ImageNet 1K。括号内的数字表示参数/计算开销,w为WideResNet中的扩宽因子,k为DenseNet[中的增长率。对于DenseNet将模块在转换块中来回放置。)
ILSVRC 2012分类数据集:
由120万张用于训练的图像和5万张用于验证的图像组成,其中包含1000个对象类。使用基线网络ResNet、WideResNet和ResNeXt来完成ImageNet分类任务。
表3:使用BAM的网络再次优于所有基线,说明BAM可以很好地推广到大规模数据集中的各种模型,参数和计算的开销可以忽略不计,这说明本文提出的模块BAM可以有效地显著提高网络容量。另一个值得注意的是,性能的提高来自于在整个网络中只放置三个模块。
4.4 基于紧凑网络的BAM的有效性
(表3:图像分类任务实验:CIFAR-100和ImageNet 1K。括号内的数字表示参数/计算开销,w为WideResNet中的扩宽因子,k为DenseNet[中的增长率。对于DenseNet将模块在转换块中来回放置。)
模块的主要优点是它显著地提高了性能,同时在模型/计算复杂性上增加了微不足道的开销。为了在更实际的环境中展示其优势,将模块与紧凑的网络结合,紧凑网络是为移动和嵌入式系统设计的,具有严格的资源约束,因此设计选项有计算和参数限制。
实验结果:
表3:BAM以很小的开销提高了所有模型的准确性。由于模块没有采用任何挤压操作,我们认为在BAM模块在效率方面还有很大的提升空间
4.5 MSCOCO 目标检测
(表4:检测任务实验:MS-COCO和VOC 2007。MS-COCO采用ResNet101-Faster-RCNN作为基线,VOC 2007采用StairNet)
实验设置:
在Microsoft COCO数据集上进行目标检测。使用所有的训练图像以及验证图像的子集来训练我们的模型,提供了5000个示例来进行验证。我们采用Faster-RCNN作为检测方法,ImageNet预训练的ResNet101作为基线网络。
实验结果:
感兴趣的是通过将BAM插入基线来提高性能。由于对两个模型使用相同的检测方法,增益只能归因于BAM模块。如表4,我们观察到基线的显著改进,展示了BAM在其他识别任务上的泛化性能。
4.6 VOC 2017目标检测
(表4:检测任务实验:MS-COCO和VOC 2007。MS-COCO采用ResNet101-Faster-RCNN作为基线,VOC 2007采用StairNet)
实验设置:
对PASCAL VOC 2007检测任务进行了进一步的BAM实验。实验中将BAM应用于检测器。采用了StairNet框架,这是基于SSD最强的多尺度方法之一。将BAM放置在每个分类器之前,在预测之前细化最终的特征,强制模型自适应地只选择有意义的特征。
实验结果:
表4可以清楚地看到,BAM提高了具有两个骨干网的强基线的准确性,准确性提高伴随着微不足道的参数开销,这表明增强不是由于简单的容量增量,而是由于有效的特性细化。此外,使用轻量级骨干网的结果再次表明,BAM对低端设备是一种有趣的方法。
4.7 与Squeeze-and-Excitation对比
(表5:BAM vs SE。cifar - 100实验结果,报告了排名前1的错误。)
在CIFAR-100分类任务中,进行了更多的实验来比较BAM方法和SE。
实验结果:
表5总结了所有结果,表明在大多数情况下,BAM以较少的参数优于SE,BAM模块需要更多的GFLOPS,但参数比SE少得多,因为只将模块放在瓶颈处,而不是每个conv块。
5 结论
瓶颈注意模块(BAM):
提出了瓶颈注意模块(BAM),这是一种提高网络表示能力的新方法。模块通过两种不同的途径有效地学习聚焦或抑制什么和哪里,并有效地改进中间特征。
受人类视觉系统的启发,在信息流动最关键的网络瓶颈处放置BAM注意模块。
实验:
大量实验证实BAM在CIFAR-100、ImageNet1K、VOC2007和MS COCO三个不同基准数据集上的性能优于所有基线。
此外,我们可视化模块如何作用于中间特征图,以获得更清晰的理解。观察到类似于人类感知过程的层次推理过程,在瓶颈处的自适应特征细化的发现对其他视觉任务也有帮助。