2016.02 伯克利&斯坦福提出 SqueezeNet
在ImageNet上实现了与Alexnet相似的效果,参数只有其1/50
核心点:
- 1x1卷积核代替3x3卷积核
- Squeeze Layer限制channel数量
- 借鉴Inception思想,将1x1和3x3卷积后结果进行concat
- 减少Pooling层,并将Pooling操作延后,保留更多地信息
- Global Avg Pooling替代全连接层
2016.10 google提出 Xception
Xception不在于压缩模型,旨在于提高性能,效果比同等参数量的inception v3更好
核心点:
- 基于残差网络构建,卷积层换成Xception模块
- Xception模块:先执行1x1卷积(Pointwise),后执行3x3卷积(Depthwise)
- Xception模块中未使用激活函数
2017.04 google提出 MobileNet
核心点:
- 提出深度可分离卷积(Depthwise Separable Convolution)
- 设置宽度因子(width multipler)和分辨率因子(resolution multiplier)
MobileNet V2
引入ResNet残差思想,为了解决常规ResNet中大量使用 ReLU 激活函数导致神经元失活的缺陷,通过高维的特征结合 ReLU 激活层尽可能地保留低维输入信息
核心点:反向残差块
- 先对输入特征进行扩展,再执行深度可分离卷积
- 去除最后一个 ReLU 激活层并使用投影层(1x1卷积)代替
2019 MobileNet V3
该论文主要讲如何使用NAS搜索出适用于移动设备的轻型网络,提出了MobileNetV3-Large和MobileNetV3-Small两个模型
核心点:
- MobileNet V2 block的基础上,在DWConv后加入SENet的attention模块。
- 使用了前部分层使用了h-swish[x]激活函数。
- 对最终模块进行了优化,删减了几个卷积层。
2017.07 face++提出 ShuffleNet
核心点:
- 提出用于分组卷积的通道混洗
- 在使用深度卷积的残差块(图a)的基础上,调整并提出ShuffleNet Unit。shuffleNet Unit取消了深度卷积后的ReLU
**
ShuffleNet_v2(2018)
**
考虑了MAC (memory access cost)** 和网络并行度**
核心点:
- 提出四条设计原则:
a) 卷积层输入输出通道数相同时,MAC最小
b) 分组卷积的分组数越大,MAC越大
c) 网络支路会降低模型的并行度
d) Element-wise操作不可忽视(内存使用量大) - 提出新的ShuffleNet Unit:引入Channel Split
主流轻量化网络创新点和优劣势进行分析和对比:
1、MobileNet。创新点和优势为引入深度可分 离卷积进行网络结构轻量化设计。劣势为网络结构
单一,且过量使用激活函数导致神经元易失活。
2、MobileNet V2。创新点和优势为引入反残差模块。劣势为由于深度可分离卷积中卷积核较小,
激活后易为 0。
3、ShuffleNet。创新点和优势为引入通道转换。劣势为输入输出特征通道数不同、过量使用组卷积、
网络碎片化、元素级操作过多。
4、ShuffleNet V2。创新点和优势为引入通道分离、输入输出特征通道数相等、基础单元中使用常规
卷积代替组卷积及使用 concat 代替元素级操作 add。劣势为运行速度和存储空间有待进一步提升。
参考:
[1] https://zhuanlan.zhihu.com/p/386994268
[2]王军,冯孙铖,程勇.深度学习的轻量化神经网络结构研究综述[J].计算机工程,2021,47(08):1-13.DOI:10.19678/j.issn.1000-3428.0060931.