通道注意力:SENet(Squeeze-and-Excitation Net)压缩-激励网络
1.简单介绍
- SENet利用不同通道之间的关系进行加权,称为通道注意力。
- 最后一届ImageNet冠军(2017)。
- 将前2名的错误率降低到了2.251%,比2016年冠军相对提高了25%。
- SE块的结构很简单,可以直接在目前几乎所有的模型结构中使用,通过用SE对应的组件替换组件,可以有效地增强性能。
- SE块在计算上也是轻量级的,只会略微增加模型复杂性和计算负担。
- 论文链接:https://arxiv.org/abs/1709.01507
2.核心思想
SENet的核心在于它能够捕捉不同的channel之间的关系,也就是能够学习到不同channel之间的权重。
为什么要学习这些关系?
- 首先对于不同的通道,是通过不同的卷积核进行卷积得到的,并且卷积核也是可以学习的,卷积核也叫滤波器,可以认为通过多层卷积不同地通道就携带着不同的特征信息。
我们假设有三个通道,分别代表着原图像的边缘、纹理、颜色,那么对于区分香蕉和柠檬,由于二者都是黄色的,那么区分二者就需要更看重他们的边缘和纹理,也就是这两个通道在进行区分是应该就有更高的权重。同理,如果区分香蕉和苹果,他们的颜色差异是非常明显的,那么对应进行区分时我们提高颜色通道的权重就能够大大地增加准确率。也就是说不同的通道有着对结果不一样的影响,而我们学习这些就是为了更容易更准确地分辨物体。
通过该机制,网络还可以学习使用全局信息来选择性地强调有用的特征并抑制不太有用的特征。显然当我们将这些关系捕捉到后,网络就能有更强的分辨能力。
3.SE Block
基于以上思想,作者提出了SE块(Squeeze-and-Excitation Block),其结构如下图:
首先第一步是将一个给定地输入X先通过 F t r F_tr Ftr进行映射得到输出U(如上图看到更明显的变化,红色到橙色),常见的我们在这里可以将这一步理解为进行一个普通的卷积操作,由输入的X[ H ′ , W ′ , C ′ H^{'},W^{'},C^{'} H′,W′,C′]得到一个新的特征输出U[ H , W , C H, W, C H,W,C]。当然,这一步也可以是任意卷积块,如resnet中的residual,包含多层卷积、多层激活函数和归一化处理。
接下来第二步,进行squeeze压缩( F s q F_{sq} Fsq,如图中的橙色到绿色),在这里使用了全局平均池化层进行操作,即将C个通道的维度 H × W H\times W