MobileNet模型轻量化网络
MobileNets: Effificient Convolutional
Neural Networks for Mobile Vision
Applications
作者:Andrew G. Howard, Menglong Zhu, et al 单位:Google
发表会议及时间:CVPR 2017
一 轻量化网络出现的动机
- 为了追求更高的准确率,自AlexNet以来,神经网络倾向于更深、很复杂的结构设计。但是,这些设计并不一定会使网络在大小和速度方面更加高效。在4个TitsanGPU上并行计算,每个网络需要运行2-3周运行时间。
- 在实际生活应用中,识别任务需要进行在有限的计算环境下实时计算
1.1 摘要核心
- 提出了针对于移动和嵌入式视觉应用的高效神经网络
- 以深度可分离卷积为主体构建网络结构
- 引入两个全局超参数实现准确率与延时性平衡
- 详实的实验验证了MobileNets的高效性
二 模型压缩现有方法总结
- 模型压缩:在已经训练好的模型上进行压缩,使得网络携带更少的网络参数
- 直接训练一个小型网络,从而改变网络结构出发,设计出更高效的网络计算方式,从而使网络参数减少的同时,不损失网络的性能。
三 MobileNet方法
- 提出了一种新型网络架构,根据应用需求与资源限制(延迟、大小),构建相匹配的小型网络
- MobileNets主要致力于优化延迟,但也可以产生小型网络
- MobileNets 主要基于深度可分离卷积构成,通过设置两个超参数,实现准确率和延时性之间的平衡
3.1 MobileNet结构
卷积块特点 : 深度可分离卷积 |紧跟BN、ReLu
- 引入深度可分离卷积,将普通卷积替换为深度卷积核点卷积
- 除第一个卷积层和最后全链接层之外,所有卷积层后都有BN、ReLu相连接
降采样方式
通过设计卷积步长stride完成将采样操作
尺寸维度变化:输入输出大小变化|输入输出维度变化
- 输入信息:224X224X3
- 输出信息:1X1X1024
具体结构
3.2 成果
- 在imageNet数据集上,在参数量减少了三十多倍的条件下,准确率与VGG16相近,只相差0.9%
- 在更小结构的MobileNet中,在参数量减少了四十多倍的条件下,性能超越了AlexNet,体现了本文方法的高效性
MobileNet实现了速度和准确率的高效平衡
- 以MobileNet为代表的网络,可以在移动终端实现众多应用,包括目标检测、分类、人脸属性识别和人脸识别等,使轻量级神经网络中拥有极大的优势
- MobileNet拥有更小的体积、更少的计算量、更高的精度,在轻量级神经网络中拥有极大的优势
- 作为谷歌推出的开源框架,该论文引用超过3700次,并推出了V2、V3版本,推动了轻量化网络的进一步发展。
四 补充-深度可分离卷积
4.1 标准卷积
输入特征:DFXDFXM
卷积核 :DkXDkXMXN
输出特征:DFXDFXN
4.2 深度可分离卷积
输入特征F:DFXDFXM
输出特征G:DFXDFXN
深度卷积:深度卷积都是通道数为1的卷积核,负责一个通道
点卷积:逐点卷积卷积核大小为1X1XM,每次卷积一个像素的区域
五 MobileNet超参数
5.1 宽度超参数
- 为了构造更小型,更实用的网络模型满足实际需求
- 引入宽度超参数a统一规范每一层的特征输入输出维度,a在(0,1]之间,通常设置为1,0.75,0.5,0.25
- 算力消耗约为原来的a方
5.2 分辨率超参数
- 为了继续减少算力消耗
- 引入分辨率超参数rou统一规范特征表示的分辨率大小,也在(0,1]通常跟随图像分辨率间接得到
- Feature size:DFXDF – > rDF X rDF
六 MobileNet后续创新与改进
MobileNetV2: Inverted Residuals and Linear Bottlenecks (2018)
- 线性瓶颈层:在高纬空间上,诸如ReLu这种激活函数能够有效增加特征的非线形表达,但是仅限于在高纬空间中,如果维度降低,到了低纬空间,在加入ReLu则会破坏特征。在V2中提出了线形瓶颈层,也就是在执行了降维的卷积层后面,不再加入类似ReLu等的激活函数进行非线形化转化,这样做的目的也是尽可能的不造成信息丢失。
- 逆残差结构:在ResNet中,为了构建更深的网络,提出了ResNet的另一种形式,结构如下,一个bottleneck由一个1X1卷积(降维),3X3卷积核1X1卷积升维构成。在mobileNet中,深度可分离卷积的层数就是输入通道数,本身就很少,如果跟残差网络中的bottleneck一样,先压缩,后提取卷积,得到的特征就太少了,采取了一种逆向的方法,先升维,卷积,再降维。
- MobileV2中逆残差结构和变量利用1X1卷积,以便于拓展到高纬的特征空间,虽然对于提取丰富特征进行预测十分重要,但是却额外增加计算开销与延时,为了在保留高纬特征的前提下减小延时,在平均池化前的层移除并用1X1卷积来计算特征图
- ¥
MobileNetV3:Searching for MobileNetV3 (2019)
- 新的激活函数:h-swish是基于swish激活函数的改进,所以先了解一下swish,swish具备无上界、平滑、非单调的特性。并且Swish在深层模型上的效果优于ReLu
- ReLu6就是限制最大输出为6
- 引入SENet:引入轻量级注意力机制网络,通过压缩、激励、给不同层不同权重
七 MobileNet V1 V2 V3对比
V1 | V2 | V3 |
---|---|---|
深度可分离卷积 | 线形瓶颈结构 | h-swish激活 |
代替常规卷积,减少参数量和计算量 | 减少参数量和计算量 | 保持精度情况下加快速度 |
宽度超参数 | 残差逆结构 | 引入SENet结构 |
改变输入输出通道数 | 加深网络层数、避免梯度消失问题,减少参数量 | 通道间的关系提升 |
分辨率超参数 | 平均池化与逐点卷积 | 5X5卷积 |
改变输入特征的尺寸 | 去掉全链接层,减少参数量 | 用5X5卷积代替3X3卷积准确率更高 |