深度学习之群卷积(Group Convolution)
最近在看MSRA的王井东研究员的《Interleaved Group Convolutions for Deep Neural Networks》。论文中多次提到群卷积这个概念,所以特地学习了一下群卷积。群卷积最早出现于AlexNet中。是为了解决显存不够的问题,将网络部署在两张GTX 580显卡上训练,Alex认为group conv的方式能够增加 filter之间的对角相关性,而且能够减少..
最近看到王井东研究员在CSDN上对IGC Block做的讲座:https://edu.csdn.net/course/play/8320/171433?s=1,很不错,可以看一下。
最近在看MSRA的王井东研究员的《Interleaved Group Convolutions for Deep Neural Networks》。论文中多次提到群卷积这个概念,所以特地学习了一下群卷积。
群卷积最早出现于AlexNet中。是为了解决显存不够的问题,将网络部署在两张GTX 580显卡上训练,Alex认为group conv的方式能够增加 filter之间的对角相关性,而且能够减少训练参数,不容易过拟合,这类似于正则的效果。
我们假设上一层的输出feature map有N
个,即通道数channel=N
,也就是说上一层有N
个卷积核。再假设群卷积的群数目M
。那么该群卷积层的操作就是,先将channel
分成M
份。每一个group
对应N/M
个channel
,与之独立连接。然后各个group
卷积完成后将输出叠在一起(concatenate),作为这一层的输出channel
。
下图是AlexNet的结构,可以看出网络分了上下两部分。
下图是将上下两部分的卷积核可视化的结果。
AlexNet conv1 filter separation: as noted by the authors, filter groups appear to structure learned filters into two distinct groups, black-and-white and colour filters.
第1卷积层的可视化结果显示,经过学习,1个group成了黑白滤波器,另一个似乎是彩色滤波器。
下图是一个正常的、没有分组的卷积层结构。下图用第三维的视角展示了CNN的结构,一个filter就对应一个输出channel。随着网络层数的加深,通道数急剧增加,而空间维度随之减少,因为卷积层的卷积核越来越多,但是随着卷积池化操作,特征图越来越小。所以在深层网络中,channel的重要性越来越大。
下图则是一个群卷积的CNN结构。filters被分成了两个group。每一个group都只有原来一半的feature map。
更多推荐
所有评论(0)