轻量级神经网络

神经网络在实际商业应用中面临的挑战:

1.可解释性差:

  • 不知道为什么会变好/差,原因是什么?
  • 没办法微调
  • Adversarial Attack

Adversarial Attack.png

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卷积的对比


    Depthwise Separate卷积(1).png
Depthwise Separate卷积(2).png
2.Depthwise Separate卷积计算量比较

输入图像
输出特征图

  • 普通卷积
    卷积核大小,卷积核数量256
    数据量:
    计算量:

  • Depthwise Separate卷积
    第一步卷积:卷积核大小,卷积核数量3
    第二步卷积:卷积核大小,卷积核数量256
    数据量:
    计算量:

3.网络模块对比
网络模块对比.png
4. MobileNet网络结构
MobileNet结构.png
5. MobileNet应用
MobileNet应用.png

二、ShuffleNet

 ShuffleNet架构专为计算能力有限的移动设备而设计,有两个新的操作:分组卷积通道洗牌,在保持准确性的同时大大降低了计算成本。

分组卷积和通道洗牌.png
  • ShuffleNet网络结构
ShuffleNet网络结构.png

三、EffNet

 EffNet是一种更有效的卷积模块,采用了Spatial Separable Convolutions技术,效果比MobileNet和ShuffleNet更好。

  • 卷积分解
    假设,其中X为输入,Y为输出,K为卷积核
    如果
    那么

例如:


 卷及分解可以让参数更少,如上述矩阵,未分解是9个参数,分解后是6个参数

  • Spatial Separable Convolutions
     Spatial Separable卷积是利用卷积分解法,将卷积核拆分为两个更小的卷积核,然后分别跟两个小的卷积核做卷积,这样可以减少参数量。最常用的情况是将的卷积核拆分为和的卷积核。

    Spatial Separable卷积.png

  • Separable Pooling
    第一次卷积在一个方向上面池化
    第二次卷积在另一个方向上面池化

  • EffNet网络结构

    网络结构.png

  • EffNet的优化
    输入层没有使用普通卷积层
    没有使用Group Convolution

四、总结

  • 网络模块结构对比

轻量级网络模块对比.png


  • 网络结构对比
网络结构对比.png
  • 实验结果对比
    实验结果.png

你可能感兴趣的:(轻量级神经网络)