SKNet结构解读

原文链接地址:https://www.cnblogs.com/fourmi/p/10771533.html

                          https://www.dazhuanlan.com/2020/03/05/5e6098c638de8/

论文原址:https://arxiv.org/pdf/1903.06586.pdf

开源参考地址:github: https://github.com/implus/SKNet

摘要

       在标准的卷积网络中,每层网络中神经元的感受野的大小都是相同的。在神经学中,视觉神经元感受野的大小是由刺激机制构建的,而在卷积网络中却很少考虑这个因素。本文提出的方法可以使神经元对于不同尺寸的输入信息进行自适应的调整其感受野的大小。building block为Selective Kernel单元。其存在多个分支,每个分支的卷积核的尺寸都不同。不同尺寸的卷积核最后通过softmax进行融合。分支中不同注意力产生不同的有效感受野。多个SK单元进行堆叠构成SKNet。

介绍

       在上世纪猫的前视觉皮层神经元的局部感受野激发了卷积网络的产生。在视觉皮层中,相同区域的神经元的局部感受野的大小是不同的,从而可以在相同的处理阶段中获得不同尺寸的空间信息。该思想被Inception系列网络完美的应用,在其building block中,3x3,5x5,7x7的卷积通过简单的拼接来得到多尺寸信息。

       然而,在设计卷积网络时,神经元感受野的其他属性并没有被考虑到。比如感受野尺寸的自适应调整。大量实验证明,视觉皮层的神经元的感受野尺寸是受激励调制的。像Inception这种具有多个分支的网络其内部存在一种潜在的机制可以在下一个卷积层根据输入的内容调整神经元感受野的大小,这是因为下一个卷积层通过线性组合将不同分支的特征进行融合。但是线性组合的方法不足于提供网络强大的调整能力。

       本文提出了一种非线性的方法融合来自不同核的特征进而实现感受野不同尺寸的调整。引入了"Selective Kernel"卷积,其包含了三个操作:Split,Fuse,Select,Split操作产生多个不同核尺寸的通道与神经元的不同感受野尺寸相关。Fuse操作组合融合来自多通道的信息从而获得一个全局及可理解性的表示用于进行权重选择。Select操作根据挑选得到的权重对不同核尺寸的feature map进行融合。

Selective Kernel Convolution

       本文提出了具有不同尺寸核的SK卷积核用于实现神经元的不同感受野大小。该卷积包含Split,Fuse,Select三个操作,如下图所示。其包含两个分支。因此,本例中只包含两个不同尺寸大小的kernel,可以很容易扩展到多尺寸的卷积核中。

       Split:对于任意输入的feature map,首先进行了两个变换,,其核的尺寸分别为3x3,5x5,上述两个变换都是由group/depthwise 卷积,ReLU,BN等操作组成。为了进一步提高网络的性能,5x5的卷积核替换为一个dilation为2的3x3的卷积核。

       Fuse:本文的目标是实现神经元不同尺寸感受野的自适应调整。一种基本思路是设计一个门机制用于控制流入下一个卷积层中不同分支的信息流。该Gate需要融合所有分支的信息。本文首先进行简单的像素级相加融合。

       然后使用全局平均池化操作来编码全局信息,进而产生channel-wise统计信息。,s中的第c个元素通过在U的HxW维度上进行压缩计算得到。

       接下来,会产生一个紧凑的特征用于精确及调整的选择,通过一个全连接层得到,同时,进行了降维处理。

       为了验证W中d的作用,引入了一个衰减率r,如下,其中C代表通道数。

       Select: 通道间的soft attention可以选择不同尺寸的信息,其被紧凑的特征信息Z引导。在channel-wise应用softmax操作。

 

       在本例中的两个分支中,B是多余的,因为ac + bc = 1,根据不同核的注意力权重得到的输出特征V如下

总结而言:

Split算子产生多条不同核大小的路径,上图中的模型只设计了两个不同大小的卷积核,实际上可以设计多个分支的多个卷积核。

Fuse运算符结合并聚合来自多个路径的信息,以获得用于选择权重的全局和综合表示。

Select操作符根据选择权重聚合不同大小内核的特征图。   

网络结构

       本文中每个SK单元由一个1x1的卷积,SK卷积,及1x1卷积组成,原网络中所有具有较大尺寸的卷积核都替换为SK卷积从而可以使网络选择合适的感受野大小。在SK单元中,存在一个参数M,用于决定路径的数量,即选择不同卷积核尺寸进行融合的数量。G用于控制每个路径的基数,r用于控制fuse操作中的参数数量。本文实验网络结构如下。

        如上图所示使ResNext-50,SENet-ResNext-50,SKNet-ResNext-50三个网络的结构对比。可以看到SENet是在(1×1卷积+3×3卷积+1×1卷积)完整卷积操作后直接加入全连接层,学习通道间依赖关系,再将学习到的通道权重加权回原向量。

     而SKNet则是用两个或多个不同大小的卷积核卷积操作加上学习通道权重的FC层替代了ResNext中3*3卷积部分,输出向量再继续进行1×1卷积操作。从参数量来看,由于模块嵌入位置不同,SKNet的参数量与SENet大致持平(或略小于后者)。计算量也略有上升(当然,带来的精度提升远小于增加的计算量成本)。

实验结果

总结

     SKNet整体感觉融合了较多的trick,Select部分使用的soft attention和Sequeeze and Excitation block中对特征图加权操作类似,区别在于Sequeeze and Excitation block考虑的是Channel之间的权重,而Select部分的attention不仅考虑了Channel之间的权重,还考虑了两路不同卷积的权重。但SKNet使网络可以获取不同感受野的信息,这或许可以成为一种泛化能力更好的网络结构。毕竟虽然Inception网络结构精妙,效果也不错,但总觉得有种人工设计特征痕迹过重的感觉。如果有网络可以自适应的调整结构,以获取不同感受野信息,那么或许可以实现CNN模型极限的下一次突破。

 

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值