构建CNN框架的主流block(一)——SE和CBAM

SENET是2017年的世界冠军,CBAM是2018年的分类冠军,它和SE一样也是一个模型,现在任何流行网络都可以嵌入这个模块。

博主只是简单的赘述一下这些模块的思想,写一个笔记,做一个 state-of-art 的搬运工, 如有错误请各位大佬指点批评!!!

SE
SE全称Squeeze-and-Excitation,它注重通道信息。
在这里插入图片描述
SE的出现是为了解决在卷积池化过程中feature map的不同通道所占的重要性不同带来的损失问题。在传统的卷积池化过程中,默认feature map的每个通道是同等重要的,而在实际的问题中,不同通道的重要性是有差异的,具体问题具体看待。
如上图所示,SE的结构较为清晰,具体的卷积池化过程如下图所示,下图是一个残差块中加入了SE模块的结构。
假设输入的是一个 h * w * c 的 feature map,首先对它进行一个 global average pooling ,由全局池化(池化大小为 h * w)的操作我们可以得到一个 1 * 1 * c 的 feature map ,然后就是两个全连接层,第一个全连接层的神经元个数为 c/16(作者给的参数),这就是一个降维的方法,第二个全连接层又升维到了 C 个神经元个数,这样做的好处是增加了更多的非线性处理过程,可以拟合通道之间复杂的相关性。然后再接一个sigmod层,得到 1 * 1 * c 的 feature map,最后就是一个原始的h * w * c 和 1 * 1 * c 的 feature map 全乘的操作。之所以是全乘不是矩阵相乘,那是因为这样可以得到不同通道重要性不一样的 feature map。(可以了解矩阵全乘和矩阵相乘的概念和计算方法)
在这里插入图片描述

CBAM
CBAM全称为 Convolutional Block Attention Module,它是一个卷积注意力机制模块,比SE多了一个空间(spatial)attention,两全其美。
在这里插入图片描述
如上图所示,CBAM可分为2部分,先是channel attention ,和SE类似,然后是 spatial attention,它融合了2种注意力机制,可添加在任意网络的卷积层后面。下面逐一介绍2个部分。
在这里插入图片描述
上图是CBAM的 channel attention的过程,不难看出它比SE多了一个 global max pooling(池化本身是提取高层次特征,不同的池化意味着提取的高层次特征更加丰富)。其2个池化之后的处理过程和SE一样,都是先降维再升维,不同的是将2个池化后相加再sigmod和原 feature map相乘输出结果。
在这里插入图片描述
上图是 spatial attention 的过程。它是将做完 channel attention 的feature map 作为输入,之后作2个大小为列通道的维度池化,每一次池化得到的 feature map 大小就为 h * w * 1 ,再将两次池化的 feature map 作基于通道的连接变成了大小为 h * w * 2 的 feature map ,再对这个feature map 进行核大小为 7*7 ,卷积核个数为1的卷积操作(通道压缩)再sigmod,最后就是熟悉的矩阵全乘了。

参考博客链接

  • 15
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值