源论文https://arxiv.org/pdf/1903.06586.pdf
https://arxiv.org/pdf/1903.06586.pdf
源码https://github.com/implus/SKNethttps://github.com/implus/SKNet
Introduction
本文提出了一种在CNN网络中动态选择的机制,让每一个神经元可以根据输入信息自动调整感受野大小。作者设计了一个网络模块,称为Selective Kernel Unit,以此来实现这个目的。
文中提出了一种在CNN中对卷积核的动态选择机制,该机制允许每个神经元根据输入信息的多尺度自适应地调整其感受野(卷积核)的大小。设计了一个称为选择性内核单元(SK)的构建块,其中,多个具有不同内核大小的分支在这些分支中的信息引导下,使用SoftMax进行融合。由多个SK单元组成SKNet,SKNet中的神经元能够捕获不同尺度的目标物体。
Model
SENet
SKNet
该论文改进了 SENet,可以获得更加丰富的特征信息。
“选择性核”(SK)卷积,它由三个运算符组成:分裂(Split)、融合(Fuse)和选择(Select)。
1、Split算子产生多条不同核大小的路径,上图中的模型只设计了两个不同大小的卷积核,实际上可以设计多个分支的多个卷积核。如模型图所示,使用多个卷积核对 X 进行卷积,以形成多个分支。
图中使用3×3和5×5的卷积核的两个分支,为了进一步提高效率,将常规的5x5卷积替换为5x5的空洞卷积,即3x3,rate = 2卷积核。下图为5x5的空洞卷积。
2、fuse运算符结合并聚合来自多个路径的信息,以获得用于选择权重的全局和综合表示。
上图展示的是一个完整的Selective Kernel单元,输入feature map X ,分别两个3 × 3 和5×5两个卷积核得到两个不同感受野的feature map ,将两个feature map做element-wise聚合得到feature map U :
对U UU的每一个通道做全局平均池化,得到一个通道分离的统计信息:
将这个统计信息经过一个全连接层fc、一个BN、一个ReLU得到一个压缩的feature:
这里关于z zz的通道数的选择,作者提出了一种计算方式,其中L LL取经验值32:
3、select操作符根据选择权重聚合不同大小内核的特征图。
Experiment
当具有更高深度/宽度/基数的模型的计算成本增加以匹配sknet时,对ImageNet验证集的比较。括号中的数字表示性能的提高。