Group Convolution分组卷积,以及Depthwise Convolution和Global Depthwise Convolution
博客:blog.shinelee.me | 博客园 | CSDN
写在前面
Group Convolution分组卷积,最早见于AlexNet——2012年Imagenet的冠军方法,Group Convolution被用来切分网络,使其在2个GPU上并行运行,AlexNet网络结构如下:
Convolution VS Group Convolution
在介绍Group Convolution前,先回顾下常规卷积是怎么做的,具体可以参见博文《卷积神经网络之卷积计算、作用与思想》。如果输入feature map尺寸为,卷积核有个,输出feature map与卷积核的数量相同也是,每个卷积核的尺寸为,个卷积核的总参数量为,输入map与输出map的连接方式如下图左所示,图片来自链接:
Group Convolution顾名思义,则是对输入feature map进行分组,然后每组分别卷积。假设输入feature map的尺寸仍为,输出feature map的数量为个,如果设定要分成个groups,则每组的输入feature map数量为,每组的输出feature map数量为,每个卷积核的尺寸为,卷积核的总数仍为个,每组的卷积核数量为,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为,可见,总参数量减少为原来的 ,其连接方式如上图右所示,group1输出map数为2,有2个卷积核,每个卷积核的channel数为4,与group1的输入map的channel数相同,卷积核只与同组的输入map卷积,而不与其他组的输入map卷积。
Group Convolution的用途
- 减少参数量,分成组,则该层的参数量减少为原来的
- Group Convolution可以看成是structured sparse,每个卷积核的尺寸由变为,可以将其余的参数视为0,有时甚至可以在减少参数量的同时获得更好的效果(相当于正则)。
- 当分组数量等于输入map数量,输出map数量也等于输入map数量,即、个卷积核每个尺寸为时,Group Convolution就成了Depthwise Convolution,参见MobileNet和Xception等,参数量进一步缩减,如下图所示
- 更进一步,如果分组数,同时卷积核的尺寸与输入map的尺寸相同,即,则输出map为即长度为的向量,此时称之为Global Depthwise Convolution(GDC),见MobileFaceNet,可以看成是全局加权池化,与 Global Average Pooling(GAP) 的不同之处在于,GDC 给每个位置赋予了可学习的权重(对于已对齐的图像这很有效,比如人脸,中心位置和边界位置的权重自然应该不同),而GAP每个位置的权重相同,全局取个平均,如下图所示:
以上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!