1.4 简述“分组卷积”及其应用场景
普通卷积:在普通的卷积操作中,一个卷积核对应输出特征图的一个通道,而每个卷积核又会作用在输入特征图的所有通道上(即卷积核的通道数等于输入特征图的通道数),因此最终输出特征图的每个通道都与输入特征图的所有通道相连接。也就是说,普通的卷积操作,在“通道”这个维度上其实是“全连接”的,如图1.5所示。
分组卷积:所谓分组卷积,其实就是将输入通道和输出通道都划分为同样的组数,然后仅让处于相同组号的输入通道和输出通道相互进行“全连接”,如图1.6所示。如果记g为输入/输出通道所分的组数,则分组卷积能够将卷积操作的参数量和计算量都降低为普通卷积的1/g。
引入:分组卷积最初是在AlexNet网络中引入的。
应用:
当时,为了解决单个GPU 无法处理含有较大计算量和存储需求的卷积层这个问题,就采用分组卷积将计算和存储分配到多个GPU上。后来,随着计算硬件的不断升级,这个方向上的需求已经大为减少。
目前,分组卷积更多地被用来构建用于移动设备的小型网络模型。
例如,深度可分离卷积(Depthwise Separable Convolution )就极为依赖分组卷积。
分组卷积问题:不过,分组卷积也有一个潜在的问题:虽然在理论上它可以显著降低计算量,但是对内存的访问频繁程度并未降低,且现有的GPU 加速库(如cuDNN)对其优化的程度有限,因此它在效率上的提升并不如理论上显著。
参考文献:
《百面深度学习》 诸葛越 江云胜主编
出版社:人民邮电出版社(北京)
ISBN:978-7-115-53097-4
2020年7月第1版(2020年7月北京第二次印刷)