分组卷积

举报
风吹稻花香 发表于 2021/06/05 01:20:50 2021/06/05
【摘要】   Group Convolution分组卷积,最早见于AlexNet——2012年Imagenet的冠军方法,Group Convolution被用来切分网络,使其在2个GPU上并行运行,AlexNet网络结构如下:   Convolution VS Group Convolution 在介绍Group Convolution前,先回顾下常规卷积...

 

Group Convolution分组卷积,最早见于AlexNet——2012年Imagenet的冠军方法,Group Convolution被用来切分网络,使其在2个GPU上并行运行,AlexNet网络结构如下:

 

Convolution VS Group Convolution

在介绍Group Convolution前,先回顾下常规卷积是怎么做的,具体可以参见博文《卷积神经网络之卷积计算、作用与思想》。如果输入feature map尺寸为C∗H∗WC∗H∗W,卷积核有NN个,输出feature map与卷积核的数量相同也是NN,每个卷积核的尺寸为C∗K∗KC∗K∗K,NN个卷积核的总参数量为N∗C∗K∗KN∗C∗K∗K,输入map与输出map的连接方式如下图左所示,图片来自链接

Convolution VS Group Convolution

Group Convolution顾名思义,则是对输入feature map进行分组,然后每组分别卷积。假设输入feature map的尺寸仍为C∗H∗WC∗H∗W,输出feature map的数量为NN个,如果设定要分成GG个groups,则每组的输入feature map数量为CGCG,每组的输出feature map数量为NGNG,每个卷积核的尺寸为CG∗K∗KCG∗K∗K,卷积核的总数仍为NN个,每组的卷积核数量为NGNG,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为N∗CG∗K∗KN∗CG∗K∗K,可见,总参数量减少为原来的 1G1G,其连接方式如上图右所示,group1输出map数为2,有2个卷积核,每个卷积核的channel数为4,与group1的输入map的channel数相同,卷积核只与同组的输入map卷积,而不与其他组的输入map卷积。

Group Convolution的用途

  1. 减少参数量,分成GG组,则该层的参数量减少为原来的1G1G
  2. Group Convolution可以看成是structured sparse,每个卷积核的尺寸由C∗K∗KC∗K∗K变为CG∗K∗KCG∗K∗K,可以将其余(C−CG)∗K∗K(C−CG)∗K∗K的参数视为0,有时甚至可以在减少参数量的同时获得更好的效果(相当于正则)。
  3. 当分组数量等于输入map数量,输出map数量也等于输入map数量,即G=N=CG=N=C、NN个卷积核每个尺寸为1∗K∗K1∗K∗K时,Group Convolution就成了Depthwise Convolution,参见MobileNetXception等,参数量进一步缩减,如下图所示
    Depthwise Separable Convolution
  4. 更进一步,如果分组数G=N=CG=N=C,同时卷积核的尺寸与输入map的尺寸相同,即K=H=WK=H=W,则输出map为C∗1∗1C∗1∗1即长度为CC的向量,此时称之为Global Depthwise Convolution(GDC),见MobileFaceNet,可以看成是全局加权池化,与 Global Average Pooling(GAP) 的不同之处在于,GDC 给每个位置赋予了可学习的权重(对于已对齐的图像这很有效,比如人脸,中心位置和边界位置的权重自然应该不同),而GAP每个位置的权重相同,全局取个平均,如下图所示:

 

以上。

参考

文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/jacke121/article/details/114274586

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。