[1]葛道辉,李洪升,张亮,等. 轻量级神经 络架构综述[J]. 软件学 , 2020, 31(9): 2627-2653.
主要介绍3种构建轻量级神经 络的方法:
- 人工设计轻量级神经 络
- 神经 络模型压缩算法
- 基于 络架构搜索的自动化神经 络架构设计
博客主要总结人工设计轻量级 络的方法
- 0. 总结
- 1. 人工设计的轻量级神经 络模型
-
- 1.1 使用小卷积核代替大卷积(VGGNet)
- 1.2 限制中间特征的通道数量(SqueezeNet)
- 1.3 分解卷积运算
-
- 1.3.1 深度可分离卷积(MobileNetV1)
- 1.3.2 Group逐点卷积(或分组卷积,ShuffleNet)
-
- 1.3.2.1 分组卷积
- 1.3.2.2 混洗操作(shuffle)
- 1.4 改造残差结构(MobileNetV2)
- 1.5 IGCV系列
-
- 1.5.1 IGCV1
- 1.5.2 IGCV2
0. 总结
方法 | 优点 | 相关模型 |
---|---|---|
小卷积替换大卷积 | 保持感受野不变,减少参数量 | VGGNet |
卷积分解 | 使用1*3和3*1实现3*3卷积核的效果,减少参数量 | |
降低中间通道数量 | 压缩通道数-运算-扩张通道数,保持 络规模时,降低运算量 | SqueezeNet |
深度可分离卷积 | 先深度卷积,再逐点卷积,显著降低参数量,同时强化通道间联系 | MobileNetV1 |
分组卷积 | 使用同等参数量和运算量,得到更多的feature map,再加上混洗操作强化通道间联系 | ShuffleNet |
改造残差 络 | 在残差分支中,将特征数升高运算后,再降低,提取更多特征时保持 络规模 | MobileNetV2 |
IGC | 利用分组卷积,扩宽 络宽度,提高性能 | IGCV1 |
IGCV2 | 将IGCV中第二次分组卷积改为IGC模式,形成IGC中使用IGC套娃 | IGCV2 |
1. 人工设计的轻量级神经 络模型
人工设计的轻量级神经 络主要从减少卷积核的冗余、减少输入特征的通道数、设计更加高效的模块等方面实现
1.1 使用小卷积核代替大卷积(VGGNet)
1.3 分解卷积运算
1.3.1 深度可分离卷积(MobileNetV1)
普通卷积操作如图:
然后进行逐点卷积:
现在分组卷积将1个逐点卷积分成g组后,会产生g个feature map。在相同的参数量和计算量下,得到的feature map数变成了之前的g倍。
1.4 改造残差结构(MobileNetV2)
在保持 络规模的前提下,进一步提高 络性能,MobileNetV2引入并改造了残差结构。
- FLOPs
- 内存访问成本MAC
- 并行化程度
- 计算平台影响
相应的指导建议:
- 相同输入输出通道能减少MAC成本(比如逐点卷积的输入输出通道一样)
- 过多的分组卷积会增加MAC成本(比如不使用/少使用分组卷积)
- 络碎片化程序会减少并行化程度
- 不能忽视元素及操作(比如使用cat,而不是残差 络的相加)
ShuffleNetV2是在以下指导意见下的改进版:

相比V1,速度提升63%
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!