简介

图1:论文原文

该论文基于神经架构搜索技术提出下一代轻量级网络结构, M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3,实验结果表明该模型在目标检测和语义分割任务上均达到了实时性的 S O T A {\rm SOTA} SOTA。论文原文


0. Abstract

M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3基于神经架构搜索技术得到。论文首先探索了搜索算法与网络设计如何协同工作,进而根据资源因素设计出两种 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3。最后,在目标检测和语义分割任务上, M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3均达到了实时性的 S O T A {\rm SOTA} SOTA。

论文贡献:(一)基于神经架构搜索技术得到轻量级网络 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3;(二)探讨了非线性函数的使用场景;(三)在语义分割任务中提出新的轻量级解码器;(四)在多项实时性视觉任务上达到 S O T A {\rm SOTA} SOTA。


1. Introduction

论文主要介绍了设计 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3的过程,包括但不限于高效的搜索技术、非线性变换、网络设计和解码器。最后,论文给出详尽的实验证明了上述方法的有效性。


2. Related Work

这部分主要介绍前人有关轻量级网络的工作。

S q u e e z e N e t {\rm SqueezeNet} SqueezeNet大量使用基于 1 × 1 1\times1 1×1卷积的压缩和扩展模块,以此来减少参数量; M o b i l e N e t V 1 {\rm MobileNetV1} MobileNetV1基于深度可分离卷积显著改善了模型; M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2引入反向残差结构在多项实时性视觉任务上达到 S O T A {\rm SOTA} SOTA; S h u f f l e N e t {\rm ShuffleNet} ShuffleNet基于分组卷积和通道混洗进一步减少计算量; C o n d e n s e N e t {\rm CondenseNet} CondenseNet在训练阶段学习分组卷积来保持各层之间高效的密集连接以供特征重用; S h i f t N e t {\rm ShiftNet} ShiftNet提出基于移位操作的点卷积来代替空间卷积。

为了自动化地设计模型,基于强化学习来搜索网络结构得到大家的广泛关注。通常,一个完备的搜索空间会带来资源量的指数级增加。因此,早期的架构搜索技术集中在单元结构的搜索上,然后多次复用该单元。近来, M n a s N e t {\rm MnasNet} MnasNet提出基于模块级的搜索空间来设计不同分辨率的层。为降低搜索的计算成本,当前大多算法使用基于梯度的优化方法。

量化是通过降低计算精度来提高模型性能的另一项重要技术;知识蒸馏提供了另一种设计小型网络的思路,即在一个大的教师网络的指导下生成小的精确的学生网络。


3. Efficient Mobile Building Blocks

M o b i l e N e t V 1 {\rm MobileNetV1} MobileNetV1使用深度可分离卷积代替传统卷积,其主要分为深度卷积和点卷积两部分,显著降低了卷积计算参数。

M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2引入带线性瓶颈块的反向残差结构,提出仅在高维空间使用非线性变换以此来减少信息损失。

图2:MobileNetV2基本模块

M n a s N e t {\rm MnasNet} MnasNet基于 M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2而设计,其提出在瓶颈结构中引入基于压缩和激励的轻量级注意力模块。

而 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3使用了上述层的组合,并提出 S w i s h {\rm Swish} Swish非线性激活函数。同时,为了得到高效的网络结构,在压缩、激励和 S w i s h {\rm Swish} Swish模块中,均使用 H a r d S i g m o i d {\rm Hard\ Sigmoid} Hard Sigmoid激活函数。

图3:MobileNetV3基本模块


4. Network Search

4.1 Platform-Aware NAS for Block-wise Search

M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3主要基于资源受限 N A S {\rm NAS} NAS( M n a s N e t {\rm MnasNet} MnasNet)和 N e t A d a p t {\rm NetAdapt} NetAdapt得到,通过在前者的基础上加上后者等其它优化方法。

但作者发现,用于搜索大型模型的奖励机制(基于强化学习的 N A S {\rm NAS} NAS中的概念)不适用于小型模型。具体地,基于平衡模型的精度 A C C ( m ) ACC(m) ACC(m)、延时 L A T ( m ) LAT(m) LAT(m)和目标延时 T A R TAR TAR,使用多目标奖励 A C C ( m ) × [ L A T ( m ) / T A R ] w ACC(m)\times[LAT(m)/TAR]^w ACC(m)×[LAT(m)/TAR]w来得到近似帕累托最优解。而对于小型模型来说,模型精度的变化较大,因此作者提出使用一个权重因子 w w w来补偿不同延时下的精度变化。基于该优化因子 w w w,作者采用随机搜索的方法得到一个初始模型,然后使用 N e t A d a p t {\rm NetAdapt} NetAdapt等优化方法得到一个小型的 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3。

4.2 NetAdapt for Layer-wise Search

N e t A d a p t {\rm NetAdapt} NetAdapt是一项与资源受限 N A S {\rm NAS} NAS互补的一项技术,它允许微调单个层,其过程如下:

1、基于资源受限 N A S {\rm NAS} NAS随机得到一个初始网络结构;

2、对于每一步,执行如下操作:

  • 生成一组候选结构,且每种结构相比于上一步的结构延迟减少 δ \delta δ
  • 对于每个候选结构,使用前一步预训练模型填充新的候选结构,并截断和随机初始化缺失的权重。对每个候选结构微调 T T T次,并得到大致的精度
  • 根据某准则选出最好的模型

3、不断重复之前的步骤,直到达到既定目标

选择最终模型的准则包括最小化精度变化等,论文提出将最小化延时变化与精度变化之比作为最终准则,即最大化 Δ A c c ∣ Δ l a t e n c y ∣ \frac{\Delta{\rm Acc}}{|\Delta{\rm latency}|} ∣Δlatency∣ΔAcc​。

得到最终的模型后,使用 M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2的方法重新随机训练模型,具体的改动为减少扩展层的大小和减少瓶颈模块,同时保留残差连接。

在迭代过程中, T = 10000 {\rm T=10000} T=10000, δ = 0.01 ∣ L ∣ \delta=0.01|L| δ=0.01∣L∣。


5. Network Improvements

5.1 Redesigning Expensive Layers

作者发现,基于神经架构搜索得到的模型,一些前面层和最后层的计算代价较高。作者提出针对这些层的改进,在减小计算代价的同时不降低模型的精度。

第一个改动是针对后面几层,当前,基于 M o b i l e N e t V 2 {\rm MobileNetV2} MobileNetV2的模型在最后层使用 1 × 1 1\times1 1×1卷积来增加维度从而使用非线性变换,但升维的操作会引入大量计算量。为了减少延时和保留高维特征,作者提出将该层移动至最后的平均池化层。这时,原来的 7 × 7 7\times7 7×7卷积使用 1 × 1 1\times1 1×1卷积代替,平衡了计算代价和模型精度。

图4:第一个改动

另一个改动是针对前面层,当前移动端模型使用 32 32 32个 3 × 3 3\times3 3×3的卷积作为初始卷积以提取目标轮廓特征,作者提出减少卷积核的数量,使用不同的非线性变换来减少计算代价。将卷积核数量减少至 16 16 16,同时保持前者的精度。

5.2 Nonlinearities

S w i s h {\rm Swish} Swish非线性激活函数定义如下: s w i s h x = x ⋅ σ ( x ) (1) {\rm swish}\ x=x\cdot\sigma(x)\tag{1} swish x=x⋅σ(x)(1)

尽管该激活函数提高了模型精度,但使用 S i g m o i d {\rm Sigmoid} Sigmoid函数使其计算代价较高。论文提出了两点解决方法,将 S i g m o i d {\rm Sigmoid} Sigmoid函数替换掉: h − s w i s h [ x ] = x R e L U 6 ( x + 3 ) 6 (2) {\rm h-swish}[x]=x\frac{{\rm ReLU}6(x+3)}{6}\tag{2} h−swish[x]=x6ReLU6(x+3)​(2)

尽管 h a r d {\rm hard} hard- s w i s h {\rm swish} swish无法显著提高模型精度,但从部署的角度来看它更适合:首先, R e L U 6 {\rm ReLU6} ReLU6的实现对硬件友好;其次,在量化过程中,相比于 S i g m o i d {\rm Sigmoid} Sigmoid函数它不会带来较大精度的损失;最后, R e L U 6 {\rm ReLU6} ReLU6可以通过一个分段函数实现,从而降低内存的访问次数。

其次,随着网络的加深,由于特征图的尺寸变小,所以非线性实现代价逐渐变小。作者发现, s w i s h {\rm swish} swish函数在网络的后面部分的效果更好,因此,作者进将其引入模型的后半部分。

5.3 Large squeeze-and-excite

在 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3中,作者加压缩激励模块设为扩展层通道数的 1 / 4 1/4 1/4。这样,既增加了模型精度,也在参数适量增加的前提下没有明显提高延时。


5.4 MobileNetV3 Definitions

作者设计了两个版本的 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3,其结构分别如下:

图5:MobileNetV3-Large

图6:MobileNetV3-Small

图中, H S {\rm HS} HS表示 h − w i s h {\rm h-wish} h−wish, R E {\rm RE} RE表示 R e L U {\rm ReLU} ReLU, N B N {\rm NBN} NBN表示不使用 B N {\rm BN} BN。


6. Experiments

图7:Classification

图8:Ablation Study on Impact of non-linearities

图9:Detection Based on SSDLite

图10:Semantic Segmentation


7. Conclusions and future work

论文提出基于神经架构搜索的 M o b i l e N e t V 3 {\rm MobileNetV3} MobileNetV3,得到两种不同大小的模型以满足不同的实时性需求。关于神经架构搜索的内容,可参考此文章。


参考

  1. Howard A, Sandler M, Chu G, et al. Searching for mobilenetv3[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 1314-1324.


(四十七)论文阅读 | 轻量级网络之MobileNetV3相关推荐

  1. 论文阅读 | 轻量级网络 MobileNets/Xception/ShuffleNet

    前言:重温经典,整理了一些几年前做轻量级网络的论文,其中的深度可分离卷积和通道shuffle的思想至今也在沿用 (这几天都没看论文然而实验还是没跑出来,不卷会议了,开始摆烂-) 论文地址: Mobil ...

  2. 深度学习-视频行为识别:论文阅读——双流网络(Two-stream convolutional networks for action recognition in videos)

    这里写目录标题 视频的行为识别 前言 背景 内容组成 主要贡献 算法介绍 网络结构 双流(two stream)网络结构 空间流卷积网络(Spatial stream ConvNet) 时间流卷积网络 ...

  3. 【论文】轻量级网络squeezenet论文的详细翻译

    前言: 整体上翻译了squeezenet:AlexNet-level accuracy with 50X fewer paramenters and 0.5MB model size.这篇论文,便于英 ...

  4. 检测、分割用什么轻量级网络呢?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 由于深度学习的关系,计算机视觉领域发展迅速,各大榜单精度刷的很高, ...

  5. 单目深度估计(Monocular Depth Estimation)论文阅读 2021-01-15

    单目深度估计 问题公式化:求非线性映射函数 一.数据集: NYU Depth:视频序列和dense depth map通过RGB-D采集的,但是不是每一种图像都有深度图,因为映射是离散的. KITTI ...

  6. 论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块

    论文阅读:基于区块链的一个车联网轻量级安全V2V通信特点:利用无线网络传输在V2V通信中的信道特性,生成特殊的LF(链路指纹)用于标识每个信道,区块链技术用于生成区块. 系统模型: 汽车使用MICAz ...

  7. 轻量级网络论文精度笔记(三):《Searching for MobileNetV3》

    MobileNetV3 论文链接 论文名字 参考文献 1. 研究背景 2. 创新贡献 3. 相关工作 3.1 高效移动端构建块 4. 网格搜索 5. 网络的改进 5.1 重新设计计算复杂层 5.2 设 ...

  8. 轻量级图像分类模型-MobileNetV3阅读笔记

    文章目录 前言 摘要(Abstract) 1. 介绍(Introduction) 2. 相关工作(Related Work) 3. 高效的移动构造模块(Efficient Mobile Buildin ...

  9. [论文阅读] (17)CCS2019 针对PowerShell脚本的轻量级去混淆和语义感知攻击检测(经典)

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

最新文章

  1. 8.11. Migrating MySQL Data into Elasticsearch using logstash
  2. 2012年1月java_全国2012年1月自考Java语言程序设计(一)试题及答案.doc
  3. Asp.net使用代码修改配置文件的节点值
  4. distinct作用于后面所有的列吗_InnoDB索引允许NULL对性能有影响吗
  5. 绍中考能不能用计算机了,全国计算机二级考什么内容
  6. python中三种分支结构的_python 运算符与分支结构
  7. ES6-2 块级作用域与嵌套、let、暂行性死区
  8. datatime,time,string转换和format格式化处理
  9. Win7下使用openssl时出现“Unable to write ‘random state’‘的问题
  10. [WPF] 嵌入资源到DLL,并解决PNG图片问题
  11. 染成茜色的坂道 文本提取(导出)方法
  12. 【HAVENT原创】Spring Boot + Kafka 消息日志开发
  13. 房地产开发商崩盘样本:楼盘捂了两年,欠40亿巨债
  14. 如何使用 FFmpeg 进行视频转码:字幕
  15. 旧手机(小米4)装linux的一个记录
  16. 开源的app后台开源框架汇总
  17. 基于51单片机PWM(即脉冲宽度调制)调速数码管显示测速L298M芯片控制直流电机正反运转的项目
  18. RFID固定资产管理系统更好更快捷的掌握资产情况 资产盘查好帮手
  19. 佛系老年学量化——从实现指标开始(DKX)
  20. 浮点数与十六进制互相转换

热门文章

  1. 2020中国区块链企业百强榜正式发布|链塔智库
  2. Hive日期函数使用
  3. 场效应管调光电路图_MOS管应用电路
  4. 【每日早报】2019/08/15
  5. Python基础语法 - 第1关 数据类型与转换
  6. 一步一步学习医学人工智能(steps towards medical AI)
  7. 基站施工、 调试 维护 用的天馈线驻波比测试仪 都有哪些功能
  8. 2022年4月14日【Jiawei_Z】瑞萨的开发环境的使用01
  9. 使用米联客FPGA开发板 固化程序失败
  10. GitHubDesktop:学习:二:(第三次操作)版本回退:成功