神经网络在实际商业应用中面临的挑战:
1.可解释性差:
- 不知道为什么会变好/差,原因是什么?
- 没办法微调
- Adversarial Attack
2.内存CPU/GPU占用率高:
- VGG16有533MB,ResNet50有102MB,网络运行速度慢
- 例如在自动驾驶项目中,如果车载神经网络运算比较慢,但车速度又比较快,自动驾驶的小车会驶出路肩
内存CPU/GPU占用率高的解决方案:
1.二值化网络
- 内存和CPU占用非常小
- 但性能下降比较多
2.轻量级神经网络
- MobileNet
- ShuffleNet
- EffNet
一、MobileNet
一种应用于移动端和嵌入式的高效模型。MobileNet使用来构建轻量级深度神经网络,可以应用在各种项目中,比如目标检测、细粒度分类、人脸识别等。
MobileNet中有两个可调节的全局超参数,可以在延迟和准确性之间进行折中,这些超参数允许模型根据项目的特性为其选择合适大小的模型。
1.Depthwise Separate convolution:通道卷积独立
Depthwise separate把通道之间想象是独立的,① 单独对各个通道做卷积操作,② 然后通过一个1*1的卷积合并通道。
-
普通卷积与Depthwise separate卷积的对比
2.Depthwise Separate卷积计算量比较
输入图像
输出特征图
普通卷积
卷积核大小,卷积核数量256
数据量:
计算量:Depthwise Separate卷积
第一步卷积:卷积核大小,卷积核数量3
第二步卷积:卷积核大小,卷积核数量256
数据量:
计算量:
3.网络模块对比
4. MobileNet网络结构
5. MobileNet应用
二、ShuffleNet
ShuffleNet架构专为计算能力有限的移动设备而设计,有两个新的操作:分组卷积和通道洗牌,在保持准确性的同时大大降低了计算成本。
- ShuffleNet网络结构
三、EffNet
EffNet是一种更有效的卷积模块,采用了Spatial Separable Convolutions技术,效果比MobileNet和ShuffleNet更好。
- 卷积分解
假设,其中X为输入,Y为输出,K为卷积核
如果
那么
例如:
卷及分解可以让参数更少,如上述矩阵,未分解是9个参数,分解后是6个参数
-
Spatial Separable Convolutions
Spatial Separable卷积是利用卷积分解法,将卷积核拆分为两个更小的卷积核,然后分别跟两个小的卷积核做卷积,这样可以减少参数量。最常用的情况是将的卷积核拆分为和的卷积核。
Separable Pooling
第一次卷积在一个方向上面池化
第二次卷积在另一个方向上面池化-
EffNet网络结构
EffNet的优化
输入层没有使用普通卷积层
没有使用Group Convolution
四、总结
- 网络模块结构对比
- 网络结构对比
- 实验结果对比