群卷积(Group Convolution)

最近有看到group convolution,故做个记录。

group convolution 可称为群卷积或者是分组卷积,最早是在AlexNet中出现的。当时由于硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU中处理,因此作者把feature maps分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。

变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。

我们假设上一层的feature map总共有N个,即通道数channel=N,也就是说上一层有N个卷积核。再假设群卷积的群数目M。那么该群卷积层的操作就是,先将channel分成M份。每一个group对应N/M个channel,与之独立连接。然后哥哥group卷积完成后将输出叠在一起(concatenate),作为这一层的输出channel。

下面是一个正常的、没有分组的卷积层结构。下面用第三维的视角展示了CNN的结构,一个filter就对应一个channel。随着网络层数的加深,通道数急剧增加,而空间维度随之减少,因此卷积层的卷积核越来越多,但随着卷积池化操作,特征图越来月小,所以在深层网络中,channel的重要性越来越大。

群卷积(Group Convolution)_第1张图片

下图则是一个群卷积的CNN结构。filter被分成了两个group。每一个group都有原来一半的feature map。

群卷积(Group Convolution)_第2张图片

你可能感兴趣的:(深度学习)