这两种卷积分别是在ResNext论文与MobileNet系列中体现的,作用是为了降参。
1. 分组卷积 group convolution
分组卷积
目录
2. 深度可分离卷积 depthwise separable convolution
相较原始卷积我们整合所有通道特征图的值,分组卷积只整合本组通道内特征图的值。
原始卷积
这是标准卷积的操作,输入特征图为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。
分组卷积的作用
- 减少参数量
- 有时候可以起到正则化的效果
- Depthwise Convolution,参见MobileNet和Xception等
- Global Depthwise Convolution 参考:https://www.cnblogs.com/shine-lee/p/10243114.html
2. 深度可分离卷积 depthwise separable convolution
深度可分离卷积
Depthwise Convolution
分组卷积的分组数跟input_features的channel数一样的时候,然后一个卷积核负责一个通道,一个通道只被一个卷积核卷积。
Depthwise Convolution完成后的Feature map数量与输入层的通道数相同,无法扩展Feature map。而且这种运算对输入层的每个通道独立进行卷积运算,没有有效的利用不同通道在相同空间位置上的feature信息。因此需要Pointwise Convolution来将这些Feature map进行组合生成新的Feature map。
Pointwise Convolution
Pointwise Convolution中的kernel[K, N, 1, 1], 这里K的大小跟上一层的通道数是一致的,实现了深度方向的加权组合。