论文地址:Selective Kernel Networks
简介
本文提出了一种在CNN网络中动态选择的机制,让每一个神经元可以根据输入信息自动调整感受野大小。作者设计了一个网络模块,称为Selective Kernel Unit,以此来实现这个目的。
作者这样设计的原因是在视觉皮质层中,同一个神经元对同一块区域有着不同大小的感受野,也就是说同一个神经元对于同一个输入信息可以同时提取到不同范围的信息。之前也有过比较出名的工作做过类似的尝试,比如InceptionNet(见下图),便是对同一个输入层做不同kernel size的卷积,然后concat到一起作为输出实现不同大小感受野。
另外作者还提出,一个神经元的感受野的大小并不是固定的,而是随着激活信号调整的(这里我理解为前一层的输出信号,不知道对不对)。而Inception网络对于不同感受野的feature map只是做了线性聚合,可能不足以完全发挥神经元的适应能力。
因此,作者提出了一种可以实现适应性变化感受野的网络模块,Selective Kernel,这个模块分为三个部分:
- Split 将输入信息使用不同size的核进行卷积
- Fuse 将多个卷积结果进行聚合
- Select 根据聚合后的feature map判断各个支路组合时的权重
相关工作
多分支网络
- Highway networks
- ResNet(分支是identity mapping)
- shake-shake networks
- FractalNet
- InceptionNet
作者提到自己网络的灵感来源于InceptionNet,但是有两点不同:一是没有很复杂的自定义结构,二是加入了适应性选择机制。
分组卷积/深度分离卷积/空洞卷积
- 分组卷积
- ResNeXt
- IGCV1 IGCV2 IGCV3
- 深度分离卷积
- Xception
- MobileNet
- ShuffleNet
注意力机制
注意力机制可以将feature中信息量最大的部分权重加大,同时压缩没有什么用的部分。近年来多用于人物re-ID、图像修复、文本抽象化等工作中。(这部分不太了解,就不细说了)
动态卷积
- Spatial Transform Networks
- Action Convolution
- Deformable CNN
Selective Kernel Unit
上图展示的是一个完整的Selective Kernel单元,输入feature map X X X,分别两个 3 × 3 3\times3 3×3和 5 × 5 5\times5 5×5两个卷积核得到两个不同感受野的feature map U ~ \widetilde{U} U
和 U ^ \widehat{U} U
,将两个feature map做element-wise聚合得到feature map U U U:
U = U ~ + U ^ (1) U = \widetilde{U} + \widehat{U} \tag{1} U=U
+U
(1)
对 U U U的每一个通道做全局平均池化,得到一个通道分离的统计信息:
s c = F g p ( U c ) = 1 H × W