论文阅读 | SE-Net
SE-Net
Momenta CVPR'18
特征图中的不同通道 (channel) 代表不同的对象,通道注意力显式建模通道之间的相互依赖性,通过网络自适应学习每个通道的重要程度,并为每个通道赋予不同的权重系数,从而来强化重要的特征,抑制非重要的特征。
SE Block
Squeeze (压缩) 和 Excitation (激励) 是 SENet 的两个核心步骤。
- Squeeze:在空间维度上收集全局信息,并将其压缩为一个全局向量表示。
- Excitation:对全局向量进行非线性变换,通过 sigmoid 函数生成权重向量,再与输入相乘,从而加强有用特征,抑制不太有用的特征。
流程
如图所示,给定一个输入 \(\mathbf{X} \in \mathbb{R}^{H' \times W' \times C'}\),通过一组变换(即图中 \(\mathbf{F}_{tr}\))得到 \(\mathbf{U} \in \mathbb{R}^{H \times W \times C}\):
将特征 \(\mathbf{U}\) 通过 Squeeze 操作 \(\mathbf{F}_{sq}(\cdot)\) 在空间维度 \(H \times W\) 上聚合特征来生成通道描述符 \(\mathbf{Z} \in \mathbb{R}^{1 \times 1 \times C}\),该描述符包含了空间上的全局特征表示:
The transformation output U can be interpreted as a collection of the local descriptors whose statistics are expressive for the whole image. Exploiting such information is prevalent in feature engineering work. We opt for the simplest, global average pooling, noting that more sophisticated aggregation strategies could be employed here as well.
接下来是 Excitation 操作。首先将描述符 \(\mathbf{Z} \in \mathbb{R}^{1 \times 1 \times C}\) 通过两个全连接层学习通道之间的依赖性,然后通过门控机制获得对应的权重表示 \(\mathbf{S} \in \mathbb{R}^{1 \times 1 \times C}\)。
在这里,\(\mathbf{F}_{ex}(\cdot, W)\) 函数包含两层全连接和门控机制,最后将权重与输入特征 \(\mathbf{U}\) 做像素级 (pixel-wise) 乘法,从而对每个通道进行强调或者抑制。
在这里,\(\mathbf{F}_{scale}(\cdot, \cdot)\) 是元素积操作,\(\mathbf{Y}\) 是通道注意力的输出。
SE blocks intrinsically introduce dynamics conditioned on the input, helping to boost feature discriminability.
Plugin and Play
SE-Net 使用一个简单的 MLP 学习通道间的像素级注意力,轻量化且灵活,可以被容易地嵌入网络结构。\(\mathbf{F}_{tr}\) 可以是任意特征提取操作,对特征图 \(U\) 应用 SE-Block,依次通过 Sqeeze 和 Excitation 获得注意力分数加权后的新特征图。
Inception | Residual |
---|---|
![]() |
![]() |
Summary
- Squeeze 使用的是全局平均池化,在这里可以替换为其他的聚合操作,如 CBAM 使用最大池化 + 平均池化相加的结果作为特征统计。
- Excitation 中的两个全连接层是简单并且易于推广的,先缩小通道,再恢复到原来通道的大小,目的是捕捉通道之间的依赖关系,并且还能参数化门控机制。