天天看点

特征图注意力_CBAM:卷积块注意力模块

此篇文章内容源自

CBAM: Convolutional Block Attention Module

,若侵犯版权,请告知本人删帖。

原论文下载地址:

https://arxiv.org/pdf/1807.06521.pdf​arxiv.org

摘要

作者提出了卷积块注意力模块(CBAM),一个简单但是有效的前馈卷积神经网络注意力模块。给定一组中间特征图,CBAM 模块依次从通道和空间两个不同的维度推算注意力图,然后将得到的注意力图与输入特征图相乘,以此进行自适应特征细化。因为 CBMA 是一个轻量级的通用模块,它可以无缝地集成到任何 CNN 架构,无需额外开销并且可以同基础 CNNs 一起进行端到端训练。作者在 ImageNet-1K, MS COCO detection, VOC 2007 检测数据集上进行了大量实验来验证 CBAM。实验表明,不同模型在分类和检测性能上都有了一致的改进,证明了CBAM的广泛适用性。

卷积块注意力模块

给定一个中间特征图

特征图注意力_CBAM:卷积块注意力模块

作为输入,CBAM 顺序地推算一个 1D 通道注意力图

特征图注意力_CBAM:卷积块注意力模块

和一个 2D 空间注意力图

特征图注意力_CBAM:卷积块注意力模块

,如图 1 所示。完整的注意力过程可以归纳如公式(1)所示。其中

特征图注意力_CBAM:卷积块注意力模块

表示按位相乘。按位相乘时,注意力值被相应地广播:通道注意力值沿着空间维度广播,反之亦然。

特征图注意力_CBAM:卷积块注意力模块

是最终细化的输出。图 2 描述了每个注意力图的计算过程。后续内容将描述每个注意力模块的细节。

特征图注意力_CBAM:卷积块注意力模块

(1)

特征图注意力_CBAM:卷积块注意力模块

图 1. CBAM 概述。该模块有两个顺序的子模块:通道和空间。在每个深度神经网络的卷积块中,CBAM 模块对中间特征图进行了自适应细化。

通道注意力模块

通过利用特征的通道间关系可以生成一个通道注意力特征图。因为一个特征图的每个通道都可以认为是一个特征检测器[1],通道注意力关注输入图像中“什么”是有意义的。为了高效地计算通道注意力,压缩了输入特征图的空间维度。目前为止,通常使用平均池化来聚合空间信息。文献[2]中建议使用平均池化来有效地学习目标对象的范围,文献[3]中在其提出的注意力模块中使用平均池化来计算空间统计信息。在前人的工作之外,作者认为最大池化采集了另一个关于标志性对象特征的重要线索,并用此线索来推算更细粒度的通道注意力。因此,作者同时使用了平均池化特征和最大池化特征。作者的经验证明,与单独使用这两个特征相比,同时使用大大提高了网络的表示能力(作者在4.1消融实验部分有说明,具体看原文),展示了作者设计选择的有效性。

首先,通过平均池化和最大池化操作聚合一个特征图的空间信息,生成两个不同的空间上下文描述符:

特征图注意力_CBAM:卷积块注意力模块

特征图注意力_CBAM:卷积块注意力模块

,这两个描述符分别表示被平均池化的特征和被最大池化的特征。然后,这两个描述符被前向送入一个由二者共享的网络来生成通道注意力图

特征图注意力_CBAM:卷积块注意力模块

。这个共享网络由具有一个隐藏层的多层感知机 (MLP)组成。为了减少参数开销,隐藏的激活大小设置为

特征图注意力_CBAM:卷积块注意力模块

,其中

特征图注意力_CBAM:卷积块注意力模块

是缩减率。每个空间上下文描述符经过共享网络处理之后,使用按位加法融合输出特征向量。简言之,通道注意力计算方式如公式 (2) 所示。其中,

特征图注意力_CBAM:卷积块注意力模块

为sigmoid 函数,MLP 的权重尺寸为

特征图注意力_CBAM:卷积块注意力模块

特征图注意力_CBAM:卷积块注意力模块

,由平均池化特征和最大池化特征这两个输入共享,并且 ReLU 激活函数之后是

特征图注意力_CBAM:卷积块注意力模块

,即池化特征在输入到 MLP 之前,需要经过 ReLU 函数进行处理。

特征图注意力_CBAM:卷积块注意力模块

(2)

特征图注意力_CBAM:卷积块注意力模块

图 2。每个注意力子模块图示。如上所述,通道子模块使用了最大池化输出、平均池化输出和一个由二者共享的网络;空间子模块使用了两个类似的输出,沿着通道轴对二者进行池化并将它们送入卷积层。

空间注意力模块

利用特征的空间相互关系可以生存一个空间注意力图。与通道注意力不同,空间注意力专注于“哪里”是信息丰富的部分,这与通道注意力是互补的。为了计算空间注意力,首先沿着通道轴进行平均池化操作和最大池化操作,并将二者拼接起来生成一个高效的特征描述符。沿着通道轴执行池化操作已被证明可以有效地凸显信息丰富的区域[4]。针对拼接后的特征描述符,使用一个卷积层来生成一个空间注意力图

特征图注意力_CBAM:卷积块注意力模块

,该特征图编码了哪个区域被凸显或抑制。

上文表述过,通过两个池化操作来聚合一个特征图的通道信息,生成两个 2D 图:

特征图注意力_CBAM:卷积块注意力模块

特征图注意力_CBAM:卷积块注意力模块

。每个图分别表示沿着通道被平均池化的特征和被最大池化的特征。之后二者被拼接在一起,并被一个标准圈基层卷积,生成一个 2D 空间注意力图。简言之,空间注意力计算方式如公式 (3) 所示。其中

特征图注意力_CBAM:卷积块注意力模块

表示 sigmoid 函数,

特征图注意力_CBAM:卷积块注意力模块

表示一个卷积核尺寸为

特征图注意力_CBAM:卷积块注意力模块

的卷积操作。

特征图注意力_CBAM:卷积块注意力模块

(3)

注意力模块的布局

给定一个输入图像,两个注意力模块(通道注意力和空间注意力),计算互补的注意力,分别专注于“什么”和“哪里”。鉴于这一点,两个注意力模块可以按照并行或顺序的方式布局。作者发现顺序布局优于并行布局。在顺序布局的处理流程下,作者的实验结果表明通道注意力优先要略优于空间注意力优先。(具体实验结果将在 4.1 消融实验 来分析,具体详见原文。)

图 3 是 CBAM 集成到 ResNet 中的一个 ResBlock 的示例。

特征图注意力_CBAM:卷积块注意力模块

图 3. CBAM 集成到 ResNet 中的一个 ResBlock。该图给出了 CBAM 集成到 ResBlock 中的具体位置。在每个块中,CBAM 均作用于卷积的输出。

参考

  1. ^Zeiler, M.D., Fergus, R.: Visualizing and understanding convolutional networks. In: Proc. of European Conf. on Computer Vision (ECCV). (2014)
  2. ^Zhou, B., Khosla, A., Lapedriza, A., Oliva, A., Torralba, A.: Learning deep features for discriminative localization. In: Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on, IEEE (2016) 2921–2929
  3. ^Hu, J., Shen, L., Sun, G.: Squeeze-and-excitation networks. arXiv preprint arXiv:1709.01507 (2017)
  4. ^Zagoruyko, S., Komodakis, N.: Paying more attention to attention: Improving the performance of convolutional neural networks via attention transfer. In: ICLR. (2017)