Attention mechanism: SENet & SKNet

注意力机制论文阅读,第二次汇报的论文为:

0. 论文列表(已读一遍)

  • Inside-Outside Net: Detecting Objects in Context with Skip Pooling and Recurrent Neural Networks (arXiv: 1512.04143)

  • Spatial Transformer Networks (arXiv: 1506.02025)

  • Residual Attention Network for Image Classification (arXiv: 1704.06904)

  • ✅ (SENet)Squeeze-and-Excitation Networks (arXiv: 1709.01507)

    • SENet brings an effective, lightweight gating mechanism to self-recalibrate the feature map via channel-wise importances.——SKNet 论文中对 SENet 的描述。

  • Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks (arXiv: 1803.02579)

    • three variants of SE modules for image segmentation.

  • CBAM: Convolutional Block Attention Module (arXiv: 1807.06521)

    • Beyond channel, BAM [32] and CBAM [45] introduce spatial attention in a similar way.

      ——SKNet 论文中的描述。

  • ✅ (SKNet)Selective Kernel Networks (arXiv: 1903.06586)


1. 解析 Selective Kernel Convolution

SKNet:用 multiple scale feature 汇总的 information 来 channel-wise 地指导如何分配侧重使用哪个 kernel 的表征。

  • adaptively adjust their RF sizes. 自适应的调整其感受野的大小。

SK 模块所做的工作是:输入的特征图为 $X \in \mathbb{R}^{H’ \times W’ \times C’}$,经过 SK Convolution 后,得到输出的特征图为 $V \in \mathbb{R}^{H \times W \times C}$。SK 卷积有 3 个步骤:Split, Fuse and Select.

1.1 SK Convolution: Split (1/3)

对于输入的特征图 $X \in \mathbb{R}^{H’ \times W’ \times C’}$,默认情况下进行两次转换:

(1)$\tilde{F}: X \rightarrow \tilde{U} \in \mathbb{R}^{H \times W \times C}$

卷积核的大小为 $3 \times 3$。

(2)$\hat{F}: X \rightarrow \hat{U} \in \mathbb{R}^{H \times W \times C}$

卷积核的大小为 $5\times 5$。为了进一步提高效率,$5 \times 5$ 的卷积使用空洞大小为 2 的 $3 \times 3$ 的卷积来替代。

1.2 SK Convolution: Fuse (2/3)

Fuse 操作和 Squeeze and Excitation block 一样。

(1)integrate information from all branches.

将分支进行 element-wise 的求和,得到 $U \in \mathbb{R}^{H \times W \times C}$。

(2)global average pooling.

得到 $s \in \mathbb{R}^{C \times 1}$,s 是一个有 C 个元素的列向量。

(3)compact feature by simple fully connected (fc) layer.

使用全连接层,即 $s \in \mathbb{R}^{C \times 1} \rightarrow z \in \mathbb{R}^{d \times 1}$,其中 $d < C$。

  • $\delta$ 使用 ReLU 函数,
  • $B$ 表示 Batch Normalization,
  • $W \in \mathbb{R}^{d \times C}$,权重矩阵。

  • reduction ratio $r$ 是一个超参数,
  • 一般设置 L = 32。

1.3 SK Convolution: Select (3/3)

这一步是 SK Block 的核心操作。

A soft attention across channels is used to adaptively select different spatial scales of information, which is guided by the compact feature descriptor z.

(1)Soft attention across channels.

  • $A, B \in \mathbb{R}^{C \times d}$,这两个矩阵也是端到端训练出来的。如果只有两个分支,那么矩阵 B 是冗余的,因为 Softmax 的输出 $a_c + b_c = 1$,可以通过 1 减去另一个得到。
  • $z \in \mathbb{R}^{d \times 1}$,经过 softmax 操作后,得到的 $a \in \mathbb{R}^{C \times 1}$.
    • z 被称为 compact feature descriptor.
    • a 被称为 soft attention vector.

(2)The final feature map $V$ is obtained through the attention weights on various kernels.

  • $\tilde{U}, \hat{U} \in \mathbb{R}^{H \times W \times C}$
  • $a, b \in \mathbb{R}^{C \times 1}$
  • 执行的操作是 element-wise product. $a_c \cdot \tilde{U}_c$ 表示第 c 个通道的特征图上的每个点,都乘以数 $a_c$。

综上,就是 SK Convolution 的内部原理细节。

3. 实验

SK Convolution $\rightarrow$ SK unit $\rightarrow$ ==SK Networks==.

2.1 Selective Kernel (SK) Convolution (1/3)

2.2 Selective Kernel (SK) unit (2/3)

2.3 Selective Kernel (SK) Networks (3/3)

2.4 CIFAR-10

在 CIFAR 数据集上,作者实现的细节:

  • 把第二条分支的 5×5 卷积核替换成 1×1,第一条分支保持不变。还是上不去 90%,过拟合严重。

  • 论文中提到,设置 SK[2, 16, 32],还是上不去 90%。

依旧是过拟合非常严重。进行一定的数据增强(Resize 32×32 为 64×64)后,精度能够上 90%。

如果获取 EAT?——根绝每个 epoch 的时间,估计总的训练时间。

3. Notes

SK Block 在检测问题中没有显著效果。