深度网络的设计技巧(四)之CBAM:通道注意力与空间注意力

在这里插入图片描述单位:首尔先进技术研究院,Adobe
ArXiv:https://arxiv.org/abs/1807.06521
Github:https://github.com/xmu-xiaoma666/External-Attention-pytorch

导读:
在Transformer替代CNN成为深度学习的主流框架时,不少纯CNN架构借助Transformer的设计思想也能表现良好。而在纯CNN的时代里,以卷积运算为基础的模块在关注其他维的注意力上如通道注意力、空间注意力等。这篇文章回顾经典,通道注意力关注“what”,空间注意力关注"where"。那么问题来了,先关注哪个注意力比较好呢?文章末尾给答案。



摘要

作者提出了一个卷积块注意力模块,是一个简单而有效的反向传播卷积网络。当给定一个中间特征层,该模块沿着两个单独的维度即通道、空间,顺序推断注意力图,然后将注意力图乘以输入特征图进行自适应的特征细化。CBAM是一个轻量级的通用模块,它可以无缝集成到任何CNN架构中,开销可以忽略不计;并且可以与基础CNN端到端地训练。在ImageNet-1k、MS COCO检测和VOC2007检测集上验证了该模块的有效性。

关键词:gated convolution


一、引言

CNN表现出丰富的表征能力,极大提高了视觉任务的性能。最近的研究主要集中在三个重要的因素上,即 d e p t h , w i d t h , c a r d i n a l i t y depth,width,cardinality depth,width,cardinality

  • 从LeNet到ResNet样式的架构,网络变得更深而具有丰富的表征。
  • VGGNet表明堆叠具有相同形状的模块会产生公平的结果。
  • 遵循同样的精神,ResNet叠加相同拓扑结构的通过跳过连接的残差模块,构建一个非常深的架构。
  • GooLeNet表明宽度是提高模型性能的另一个重要因素。
  • ZKNet在ResNet基础上增加网络的宽度,一个28层但增宽的ResNet在CIFAR基准上超过具有1001层极深的ResNet。
  • Xception和ResNeXt提出增加网络的基数,即cardinality。凭经验表明,基数不仅节省了参数的总数,而且比其他两个因素如depth,width表现出更强的表征能力。

而本篇研究架构设计的一个不同方面,即注意力。

注意力的意义在之前的文献中得到广泛研究。注意力不仅告诉关注哪儿,还提高了感兴趣区域的表征。本文的目标,就是通过注意力机制来增加表征能力:关注重要的特征和抑制不重要的那些。由于卷积操作通过跨通道和空间信息混合来提取信息特征,作者设计模型去关注这两个维度上有意义的特征:通道和空间。如图所示,作者依次应用通道和空间注意力模块,以便每个分支学习通道和空间轴上的“what”和“where”。因此,该模块通过学习哪些信息要强调或抑制,来有效帮助信息的流动。

在这里插入图片描述
Sequentially apply channel and spatial attention modules (as shown in Fig. 1), so that each of the branches can learn ‘what’ and ‘where’ to attend in the channel and spatial axes respectively.

1.1 注意力机制

SENet介绍了一个有效的模块去探索通道之间的关系。在Squeeze-Excitation模块中,他们使用全局平均池化特征去计算通道注意力。然后,为了推断精细的通道注意力,作者表明SE模块是次优的,并建议使用最大池化特征也能行。并且SE模块缺少空间注意力,它在决定关注哪儿方面扮演着重要角色。

给定中间层特征图 F ∈ R C × H × W F \in \mathbb{R}^{C \times H \times W} FRC×H×W作为输入,CBAM依次推断一个1D通道注意力图 M c ∈ R C × 1 × 1 M_c \in \mathbb{R}^{C \times 1 \times 1} McRC×1×1和一个2D空间注意力图 M s ∈ R 1 × H × W M_s \in \mathbb{R}^{1 \times H \times W} MsR1×H×W。这个操作可以归纳成:
F ′ = M c ( F ) ⊗ F F^{'} = M_c(F) \otimes F F=Mc(F)F F ′ ′ = M s ( F ′ ) ⊗ F ′ F^{''} = M_s(F^{'}) \otimes F^{'} F=Ms(F)F
其中, ⊗ \otimes 表示点乘 element-wise multiplication。在乘法过程中,注意力值被相应地广播(复制):通道注意力值沿空间维度广播,反之亦然。 F ′ ′ F^{''} F为最终精炼输出。

在这里插入图片描述

1.2 通道注意力

据研究表明,由于特征图的每一个通道都视为特征检测器,因此通道注意力集中于给定的图像中“什么”才是有意义的。为了有效的计算通道注意力,作者将输入特征图在空间维度上压缩。迄今为止,为了聚合空间信息,平均池化被广泛采用。有研究者建议使用平均池化去有效地学习目标对象的范围;也有人用它去计算空间统计。除了以前工作之外,作者认为最大池化收集了另一个关于特定目标对象的线索,以推断更精细的通道注意。因此,作者同时采用了平均池化和最大池化特征。通过实验表明,同时利用这两个特征可以大大提高网络的表征能力,而不是单独使用每个特征。
在这里插入图片描述

作者首先通过使用平均池化和最大池化操作来聚合特征图的空间信息,生成两个不同的空间上下文描述符: F a v g c F^{c}_{avg} Favgc F m a x c F^{c}_{max} Fmaxc。然后两个描述符前馈输入到一个共享的MLP中去产生通道注意力图 M c ∈ R C × 1 × 1 M_c \in \mathbb{R}^{C \times 1 \times 1} McRC×1×1。为了减少参数开销,MLP隐含层的激活尺度设置为 M c ∈ R C / r × 1 × 1 M_c \in \mathbb{R}^{C/r \times 1 \times 1} McRC/r×1×1,其中 r r r是减少比。然后将输出相加起来并通过一个sigmoid函数,即可。其中 σ \sigma σ 表示sigmoid函数,MLP的权值 W o ∈ R C / r × C 和 W 1 ∈ R C × C / r W_o \in \mathbb{R}^{C/r \times C}和W_1 \in \mathbb{R}^{C \times {C/r}} WoRC/r×CW1RC×C/r对输入是共享的,后面跟着激活函数ReLU。

1.3 空间注意力

与通道注意力不通,空间注意力集中“哪里”是信息部分,是对通道注意力的一个补充。为了计算通道注意力,作者首先分别在通道轴上采用最大池化和平均池化去产生有效的特征描述。有研究表明,在通道轴上使用池化操作能够有效突出信息区域。
在这里插入图片描述
这里,分别采用平均和最大池化在注意力通道上产生对应的特征图,然后将他们concate在一起,输入到一个卷积层中,并通过sigmoid函数计算出2D空间注意力图。

1.4 串联还是并联?

在这里插入图片描述
ResNet block采用串联的通道注意力与空间注意力结构,在实验中表现最好。也就是,先注意“what”再注意“where”,能够取得最好的结果,与5W(what,why,when,where,hoW)分析法具有一致性。

实验

可视化

在这里插入图片描述
采用Grad-CAM可视化最后一层卷积的输出结果。P表示真实标签在网络下的softmax分数。可以看到,CBAM在三者之中的注意力图更加贴切目标实例。


  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烧技湾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值