【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记

【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第1张图片
Paper: CBAM: Convolutional Block Attention Module


Abstract

文章提出了CBAM(Convolutional Block Attention Module),卷积块注意力模块,这是一种用于前馈卷积神经网络的简单而有效的注意力模块。
给定一个中间步骤的特征图,我们的模块会依次沿着通道和空间维度推断注意力图,然后将注意力图与输入特征图相乘以进行自适应特征优化。
由于CBAM是一个轻量级的通用模块,因此可以将其简单地集成到任何CNN结构中,而增加的计算量可以忽略不计,并且可以与basic CNN一起进行端到端的训练。


Introduction

卷积神经网络(CNN)凭借其强大的表达能力,极大地推动/改善了视觉任务的性能。 为了进一步提高CNN的性能,最近的研究主要关注网络的三个重要因素:深度,宽度和基数(?)。
到目前为止,从LeNet架构到Residual-style Networks,为了得到更丰富的特征信息,网络变得越来越深。 VGGNet显示,具有相同形状的堆叠块可以得出fair的结果。 遵循相同的想法,ResNet将具有相同拓扑结构的残差块通过skip connection堆叠在一起,以构建一个非常深的架构。
GoogLeNet表明宽度是提高模型性能的另一个重要因素。
Xception和ResNeXt提出来增加网络的基数cardinality。 他们凭经验表明,基数cardinality不仅减少了总参数,而且还比其他两个因素(深度和宽度)具有更强的表示能力。

除了这些因素,我们还将研究体系结构设计的另一个方面,即attention

我们的目标是通过使用注意力机制来提高表示能力:关注重要的特征并抑制不重要的特征。

在本文中,我们提出了一个新的网络模块CBAM。 由于卷积运算通过将跨通道信息和空间信息融合在一起来提取信息特征,因此我们采用我们的模块来强调在这两个主要维度(渠道和空间轴)上的有意义的/重要的特征。
为此,我们依次应用通道和空间注意力模块(图1),以便每个分支机构都可以分别学习在通道和空间维度上的特征重要性。
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第2张图片

Contribution

1.提出了一个简单而有效的注意力模块(CBAM),可应用于增强CNN的表示能力。
2.通过广泛的ablation studies验证了我们的注意力模块的有效性。
3.通过插入我们的轻量级模块,在多种基准(ImageNet-1K,MS COCO和VOC 2007)上,各种网络的性能都得到了极大的提高。


Convolutional Block Attention Module

给定一个中间特征图F[C×H×W]作为输入,CBAM依次推导1D通道注意图Mc[C×1×1]和2D空间注意图Ms[1×H×W], 整个关注过程可以概括为:
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第3张图片

Channel attention module

通过利用特征的通道间关系来生成通道注意图。
由于特征图的每个通道都被视为特征检测器feature detector,因此channel attention将集中于输入图像中有意义的部分。为了有效地计算通道注意力,我们squeeze输入特征图的空间尺寸。目前,为了汇总空间信息,通常采用平均池化average pooling,我们认为最大池化max pooling可以收集关于对象特征的另一个重要线索,以推断出更精细的通道注意力分布。
因此,我们同时使用平均池化和最大池化。

我们首先通过使用平均池化和最大池化来聚合特征图的空间信息,生成两个不同的空间描述符:F avg和F max,分别表示平均池化和最大池化结果。两个描述符都将用于获取最终的channel attention map Mc[Cx1x1],
在这里插入图片描述
平均池化和最大池化后的结果都要送进MLP,得到的结果相加(element-wise summation),然后经sigmoid输出。

Spatial attention module

通过利用特征之间的空间关系来生成空间注意图。
与通道注意力不同,空间注意力集中在“where”是一个包含信息的part,是通道注意力的一个补充。
为了计算空间注意力,我们首先沿通道轴应用平均池和最大池操作,并将它们连接起来以生成有效的特征描述符。
沿通道轴应用合并操作可以有效突出信息区域informative regions。
合并平均池化和最大池化的结果,对结果进行卷积操作(7*7),得到spatial attention map Ms[HxWx1] 。
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第4张图片
AvgPool和MaxPool的结果concatenate起来,经卷积层,和sigmoid函数激活,得到最终的spatial attention map。

Arrangement of attention modules

给定一个输入图像,通道和空间这两个注意力模块计算互补的注意力,分别关注“what”和“where”。 考虑到这一点,可以以并行或顺序方式放置两个模块。
我们发现顺序排列比并行排列的结果更好。
对于顺序过程的安排,我们的实验结果表明,通道优先比空间优先的效果略好。



Experiments

我们根据标准benchmarks评估CBAM:
用于图像分类的ImageNet-1K;用于对象检测的MS COCO和VOC 2007。

Ablation studies

Channel attention

对比了 没有注意力机制的、只用了avgpooling的、只用了maxpooling的和都用了的 四种方法。
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第5张图片
同时使用两种池化方法的模型,top-1 error和top-5 error都更低。
证明了本文提出的通道注意力机制的有效性。

Spatial attention

我们比较了两种生成2D描述符的方法:使用在通道轴上使用平均池化和最大池化,以及将通道数减小为1的标准1×1卷积。
此外,我们研究了内核大小为1时的影响。
接下来的卷积层:内核大小分别为3和7。
在实验中,我们将空间注意模块放置在先前设计的通道注意模块之后,因为最终目标是将两个模块一起使用。
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第6张图片

我们可以观察到使用通道池化的准确性更高。
在比较不同卷积核大小时,我们发现在两种情况下采用更大(7x7)的核都会得到更高的精度。
这意味着需要广阔的视野(即感受野)来确定空间上重要的区域。

Arrangement of the channel and spatial attention

在本实验中,我们比较了排列通道和空间注意子模块的三种不同方式:
sequential channel-spatial, sequential spatial-channel, and parallel use of both attention modules.
由于每个模块具有不同的功能,因此顺序可能会影响整体性能。
【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第7张图片
实验证明,sequential channel-spatial效果更好。

Final module design

【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第8张图片

【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第9张图片

Image Classification on ImageNet-1K

【注意力机制】CBAM: Convolutional Block Attention Module 阅读笔记_第10张图片



后面的没看了
下次继续写

你可能感兴趣的:(注意力机制,计算机视觉,人工智能,深度学习)