理解分组卷积与深度可分离卷积

这两种卷积分别是在ResNext论文与MobileNet系列中体现的,貌似Xception中也有深度可分离卷积的体现。

作用都很简单,为了降参。

目录

1. 分组卷积 group convolution 

2 深度可分离卷积 depthwise separable convolution


1. 分组卷积 group convolution 

最早出现分组卷积的是AlexNet,说实话网上介绍的blog直接一贴我也没看懂AlexNet中是如何用分组卷积的,只知道现在因为计算资源上去了,大家已经不在把数据分在两块GPU上去搞了,贴个blog有兴趣的可以去看AlexNet中如何降参用分组卷积的。https://www.cnblogs.com/wangguchangqing/p/10333370.html

分组卷积,顾名思义就是相较原始卷积我们整合所有通道特征图的值,分组卷积只整合本组通道内特征图的值,话不多说上图。

这是标准卷积的操作,输入特征图为C1×H×W,我们用C2×C1×h1×w1的卷积核执行标准卷积操作,得到C2×H×W的output特征图,对于输出特征图上的每一个点,都是在输入特征图全部通道(C1)执行multi-add操作得到的。

这是分组卷积操作,输入特征图为C1×H×W,我们按照通道数分为g个组,每个组的特征通道数量为C1/g,这个时候我们用C2/g × C1/g × h1 ×w1的卷积核去对每一组进行卷积,得到C2/g × H × W的output特征图,又我们一共有g个组,所以最终拼接所有C2/g × H × W的output特征图,又可以得到和标准卷积尺度一样的output特征图,即C2×H×W。

以上就是分组卷积的操作,Alex认为分组卷积的方式可以增加filter之间的对角相关性(没理解为什么,可能就是类似dropout形势,组内的特征可以独立发挥最终特征预测作用,而不是通过与其他特征组合导致,减少耦合增加鲁棒吧。),可以减少训练参数,Group Convolution可以看成是structured sparse,对上图所示的,C2/g × C1/g × h1× w1卷积核可以看作C2/g ×(C1 - C1/g)× h1 × w1这部分卷积核的值为0,有时甚至可以在减少参数量的同时获得更好的效果(相当于正则)。

2 深度可分离卷积 depthwise separable convolution

深度可分离卷积是在mobileNet和Xception中都有涉及的一个操作,在看完分组卷积后,我们考虑一种特殊情况,如果输入特征图的尺寸等于输出特征图的尺寸(H × W不变),如果我们把输入特征图的通道数C1分成C1个组,也就是每个组都只有1个通道,那么我们用1 × 1 × K × K的卷积核来对每组进行卷积,同时拼接C1个组的结果,得到输出特征图的通道仍为C1 × H × W,这其实就是深度可分离卷积。

对于可分离卷积,我认为其可以分为两种形式,一种是空间可分离卷积,顾名思义,空间可分离就是将一个大的卷积核变成两个小的卷积核,也就是在inception系列中出现的把3 × 3卷积分成对称的1×3与3×1的操作,另一种就是深度可分离卷积,深度可分离卷积也可分为两部分,深度卷积+逐点卷积,深度卷积就是在每个通道上执行卷积,但是不整合所有对应通道上的结果(没有通道级别对应的add操作),逐点卷积就是1*1卷积。

话不多说上图

图(a)代表标准卷积。假设输入特征图尺寸为  M*H*W,卷积核尺寸为M*D_{k}*D_{k}   ,个数为N个,输出特征图尺寸为N*H*W,标准卷积层的参数量为:N*M*D_{k}*D_{k} 。

图(b)就是深度卷积,把输入特征图上的每一个通道单独执行卷积操作,也就是用M个1*D_{k}*D_{k}的卷积核对输入特征图上的每一个通道执行卷积操作,最终得到的输出特征图的尺寸仍然为M*H*W,参数数量为M*D_{k}*D_{k}

图(c)为逐点卷积,也就是常规的1×1卷积操作,输入特征图为M*H*W,卷积核的尺寸为M*1*1  ,个数为N个,输出特征图尺寸为N*H*W。参数数量为N*M

那么图b与图c的结合就是深度可分离卷积了,深度可分离卷积作用就是降参咯,我们来对比一下标准卷积与深度可分离卷积:

 \frac{ (M*D_{k}*D_{k}+N*M)}{N*M*D_{k}*D_{k}}=\frac{1}{N}+\frac{1}{D_{k}^{2}}

如果我们用3 * 3的卷积,那么相当于我们大约可以减少10倍的参数计算量。

对于深度可分离卷积,在MobileNet1中比标准卷积在ImageNet上降低了约1%的精度。

性能下降一点的原因我觉得也比较明显吧,就是通道数太少,特征图的维度太少,能获取到足够的有效信息吗?

参考:

https://zhuanlan.zhihu.com/p/70703846  这篇对moblieNet系列介绍比较全面,推!~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值