分组卷积(Group Convolution),最早见于AlexNet网络,它被用来切分网络,使其在2个GPU上并行运行,AlexNet网络结构如下:
AlexNet将网络分成了两部分,最后输出的时候再进行合并,该网络好处有以下几点:
1.总的参数量减少了,提高了网络的计算效率(后面会详细介绍参数量减少的原因)
2.AlexNet首次采用最大值池化,避免了平均池化层的模糊化的效果,并且步长比池化的核的尺寸小,这样池化层的输出之间有重叠,提升了特征的丰富性.
3.AlexNet使用ReLU代替了Sigmoid,其能更快的训练,同时解决sigmoid在训练较深的网络中出现的梯度消失,或者说梯度弥散的问题.
4. 全连接中使用dropout方法防止过拟合
5. 提出了LRN层局部响应归一化,对局部神经元创建了竞争的机制,使得其中响应小打的值变得更大,并抑制反馈较小的.
注意:LRN全称为Local Response Normalization,即局部响应归一化层,LRN函数类似Dropout,是一种防止过拟合的方法。这个函数很少使用,基本上被类似Dropout这样的方法取代。
如左图:如果输入featuer map 尺寸为C * H * W ,卷积核有N 个,输出feature map 与卷积核的数量相同为N ,每个卷积核的尺寸为C * K * K, N个卷积核的总参数量为NCK*K.
(三) 分组卷积网络参数的计算如右图:如果输入feature map 尺寸为C * H * W ,输出feature map 数量为N 个,如果设定要分成G 个组, 则每组的输入数量C / G, 每组的输出feature map 数量为N/G,每个卷积核的尺寸为C/G * K * K ,卷积核的总数仍为N个,每组卷积核的数量为N/G ,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为N * C/G * K *K ,可见总参数量减少为原来的1/G.
二、深度可分离卷积当分组数量等于输入map数量,输出map数量也等于输入map数量,即G = N = C , N 个卷积核每个尺寸为1 * K * K时,分组卷积就变成了深度卷积。(用深度卷积主要进行像素的融合)
如下图所示:深度可分离卷积的操作过程。
深度可分离的卷积包括两个步骤:深度卷积和1x1卷积。
利用3x3的深度卷积做像素级别的融合,1x1的逐点卷积作通道融合,分离说的是像素融合和通道融合分开进行,以便于减少参数量。