卷积神经网络训练准确率突然下降_从MobileNet看轻量级神经网络的发展

前 言

随着深度学习的火热,计算机视觉领域内的卷积神经网络模型也层出不穷。从1998年的LeNet,到2012年引爆深度学习热潮的AlexNet,再到后来2014年的VGG,2015年的ResNet,深度学习网络模型在图像处理中应用的效果越来越好。神经网络体积越来越大,结构越来越复杂,预测和训练需要的硬件资源也逐步增多,往往只能在高算力的服务器中运行深度学习神经网络模型。移动设备因硬件资源和算力的限制,很难运行复杂的深度学习网络模型。

f688656022b60754c5c0caf94ea7e91b.png

深度学习领域内也在努力促使神经网络向小型化发展。在保证模型准确率的同时体积更小,速度更快。到了2016年直至现在,业内提出了SqueezeNet、ShuffleNet、NasNet、MnasNet以及MobileNet等轻量级网络模型。这些模型使移动终端、嵌入式设备运行神经网络模型成为可能。而MobileNet在轻量级神经网络中较具代表性。

谷歌在2019年5月份推出了最新的MobileNetV3。新版MobileNet使用了更多新特性,使得MobileNet非常具有研究和分析意义,本文将对MobileNet进行详细解析。

MobileNet的优势

MobileNet网络拥有更小的体积,更少的计算量,更高的精度。在轻量级神经网络中拥有极大的优势。

1、更小的体积

0baac0cc47f145ad5c7ec643837fc53f.png

MobileNet相比经典的大型网络,参数量明显更少,参数量越少模型体积越小。

2、更少的计算量

1fa1fd0e9521ff5a0fcb0dddbc0bc529.png

MobileNet优化网络结构使模型计算量成倍下降。

3、更高的准确率

9611f5b6ec117d694ae9c33498ece994.png

MobileNet凭借网络结构优化,在更少的参数及更少的计算量情况下,网络精度反而超过了部分大型神经网络。在最新的MobileNetV3-Large中,实现ImageNet数据集Top1准确率达到75.2%。

4、更快的速度

26d20dedfbca6f5f6a7fb004e53eb5f7.png

使用Google Pixel-1手机测试,MobileNet各版本都能保持运行时间在120ms以下,最新版MobileNetV3-Large运行时间达到66ms,参数量和计算量更低的MobileNetV3-Small更是能达到22ms;GoogleNet运行速度约为250ms,而VGG-16由于一次性需要加载至内存的空间已超过500MB,手机系统会报内存溢出错误导致无法运行。

5、多种应用场景

MobileNet可以在移动终端实现众多的应用,包括目标检测,目标分类,人脸属性识别和人脸识别等。

5d7da87c2f24715f97594965fded8339.png

MobileNet各版本介绍

1、MobileNetV1网络结构

41db0d0d50d6191e0e516ad64ba51fdb.png
  • 整个网络不算平均池化层与softmax层,共28层;
  • 在整个网络结构中步长为2的卷积较有特点,卷积的同时充当下采样的功能;
  • 第一层之后的26层都为深度可分离卷积的重复卷积操作;
  • 每一个卷积层(含常规卷积、深度卷积、逐点卷积)之后都紧跟着批规范化和ReLU激活函数;
  • 最后一层全连接层不使用激活函数。

2、MobileNetV2网络结构

d263e01fb23c56a55a9847900865d444.png

MobileNetV2中主要引入线性瓶颈结构和反向残差结构。

MobileNetV2网络模型中有共有17个Bottleneck层(每个Bottleneck包含两个逐点卷积层和一个深度卷积层),一个标准卷积层(conv),两个逐点卷积层(pw conv),共计有54层可训练参数层。MobileNetV2中使用线性瓶颈(Linear Bottleneck)和反向残差(Inverted Residuals)结构优化了网络,使得网络层次更深了,但是模型体积更小,速度更快了。

3、MobileNetV3网络结构

a8e4e5381bbb21ae91e870ab12767bd1.png

MobileNetV3分为Large和Small两个版本,Large版本适用于计算和存储性能较高的平台,Small版本适用于硬件性能较低的平台。

  • Large版本共有15个bottleneck层,一个标准卷积层,三个逐点卷积层。
  • Small版本共有12个bottleneck层,一个标准卷积层,两个逐点卷积层。

MobileNetV3中引入了5×5大小的深度卷积代替部分3×3的深度卷积。引入Squeeze-and-excitation(SE)模块和h-swish(HS)激活函数以提高模型精度。结尾两层逐点卷积不使用批规范化(Batch Norm),MobileNetV3结构图中使用NBN标识。

efa6f5d84fb97b81eb29f75463f3cf53.png

(图片来源https://arxiv.org/pdf/1905.02244.pdf)

网络结构上相对于MobileNetV2的结尾部分做了优化,去除三个高阶层,如上图所示。去除后减少了计算量和参数量,但是模型的精度并没有损失。

值得一提的是,不论是Large还是Small版本,都是使用神经架构搜索(NAS)技术生成的网络结构。

4、MobileNet各版本特性

MobileNet实现计算量减小、参数量减少的同时保证了较高的准确率,这和其拥有的特性息息相关:

MobileNetV1提出的特性

d61b705dcfd35c55eb74a6dd024a71e4.png

MobileNetV2提出的特性

daeb5c6cd5794186cc29db58eca88077.png

MobileNetV3提出的特性

cd4203d846de3b348d6fcef658fca18a.png

MobileNet各个版本拥有的特性汇总

63cf34d9d8bc3f10ae15ba5a93e8e4f3.png

下文将对上表中的各个特性详细阐述。

MobileNet的特性详解

1、深度可分离卷积

从MobileNetV1开始,到V2、V3的线性瓶颈结构都大量使用了深度可分离卷积。

深度可分离卷积(Depthwise Separable Convolution)是一种卷积结构。它是由一层深度卷积(Depthwise convolution)与一层逐点卷积(Pointwise Convolution)组合而成的,每一层卷积之后都紧跟着批规范化和ReLU激活函数。跟标准卷积的区别就是精度基本不变的情况下,参数与计算量都明显减少。

64bfec5ef2f095dd8b7204a2418d4c0e.png

深度卷积

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值