Searching for MobileNetV3
1. 摘要
基于网络架构搜索和 NetAdapt 算法,作者提出了新一代的 MobileNets,并通过一些先进的结构对其进行了改进。
作者发布了两个模型 MobileNetV3-Large 和 MobileNetV3-Small 分别应用于资源较多和较少的场景,这些模型也可以被调整并应用到目标检测和语义分割等其它领域。
2. 高效的网络构建块
MobileNetV1 引入了深度可分离卷积作为传统卷积的有效替代,MobileNetV2 引入了线性瓶颈和反转残差结构来构建更加高效的网络层,MnasNet 在 MobileNetV2 的基础上基于 SENet 的思想在瓶颈结构中引入了轻量级的注意力机制。
MobileNetV3 结合了上面这些结构块来构建最高效的模型,除此之外,作者还对 swish 作了改进来作为网络中的激活函数。

作者将注意力模块放在了扩展层的深度卷积后面,此外每一层的非线性激活函数也不一定相同。
3. 网络搜索
网络搜索技术已经是一个用来发现和优化网络架构的强有力工具。针对 MobileNetV3,作者先利用 NAS 优化每个网络块来搜索全局的网络架构,然后再利用 NetAdapt 算法来按顺序微调每一个单独的层。
4. 网络改进
4.1. 重新设计代价比较大的层
通过网络搜索得到模型后,作者观察到网络中一些前面和后面的层比其余的层计算代价更高,因此,作者提出了一些改进来在减少时延的同时保持准确率。
当前基于 MobileNetV2 的变种网络都在最后用一个 1×1 的卷积来扩展到一个高维空间(比如通道数为 1280)用于预测最后的分类。这个操作一般是在池化之前,比如是应用到一个空间大小为 7×7 的特征图上,现在作者将这个 1×1 的卷积放到了池化层后面,这样特征图的空间大小就变成了 1×1,可以大大减少计算量和时延。
一旦这个层被迁移到池化层后面,那么其前面一个瓶颈结构的投影层也就没有必要再存在来降低计算量了,所以作者移除了前面的特征提取层和投影层,来进一步降低计算复杂性。

可以看到,原始最后阶段的 960-960 深度卷积特征提取层和 960-320 的投影层被移除了。
另一个计算代价比较高的层是一开始的卷积层,现在的移动端网络一般都采用 3×3 的卷积,卷积核个数为 32。作者发现这个层采用 hard swish 激活函数和其它激活函数效果一样好,并将卷积核个数减少到了 16 个。
4.2. 非线性激活函数
最近提出了一个称之为 swish 的激活函数用来作为 ReLU 的替代品,其可以显著提高网络的准确性。
\[swish \space x = x \cdot \sigma(x)\]
虽然这个激活函数可以提高准确率,但在移动设备上 sigmoid 函数计算代价是很高的,所以作者对它进行了两个方面的改进。
- 用分段线性的函数来硬模拟 sigmoid;
\[hard-swish[x]=x\frac{ReLU6(x+3)}{6}\]

这样做在实际中有三个好处:ReLU6在几乎所有的软件和硬件上都可以实现;在量化模式下,可以消除 sigmoid 带来的潜在数值精度损失;hard-swish 可以用分段线性函数来实现减少导致时延的内存访问次数。
- 将 swish 应用在较深的网络层就可以带来大部分好处,因此作者只在网络的后半段应用它们;
4.3 大的 squeeze-and-excite 层
这里 SE 层的中间通道数作者设置为扩展层通道数的四分之一,这样做可以在适当增加参数量的情况下提升准确率,对时延没有明确影响。
4.4 网络结构

exp size 表示扩展层的通道数,#out 表示输出通道数,SE 表示是否有 squeeze-and-excite 层,NL 代表激活函数为 ReLU 或者 Hard-Swish,s 表示步长。上面是 MobileNetV3-Large 的结构,下面是 MobileNetV3-Small 的结构。

5. 实验结果
在 Pixel 系列手机上性能对比如下所示:

同样地,我们也可以用宽度乘子和分辨率乘子进一步调整网络大小:

采用不同的激活函数结果对比如下:

获取更多精彩,请关注「seniusen」!

Searching for MobileNetV3的更多相关文章
- 深度学习论文翻译解析(十九):Searching for MobileNetV3
论文标题:Searching for MobileNetV3 论文作者:Andrew Howard, Mark Sandler, Grace Chu, Liang-Chieh Chen, Bo Che ...
- (转载) AutoML 与轻量模型大列表
作者:guan-yuan 项目地址:awesome-AutoML-and-Lightweight-Models 博客地址:http://www.lib4dev.in/info/guan-yuan/aw ...
- (转)AutoML 与轻量模型大列表: awesome-AutoML-and-Lightweight-Models
Awesome-AutoML-and-Lightweight-Models 原文:http://bbs.cvmart.net/articles/414/zi-yuan-automl-yu-qing-l ...
- 神经网络模型(Backbone)
自己搭建神经网络时,一般都采用已有的网络模型,在其基础上进行修改.从2012年的AlexNet出现,如今已经出现许多优秀的网络模型,如下图所示. 主要有三个发展方向: Deeper:网络层数更深,代表 ...
- 自动网络搜索(NAS)在语义分割上的应用(二)
前言: 本文将介绍如何基于ProxylessNAS搜索semantic segmentation模型,最终搜索得到的模型结构可在CPU上达到36 fps的测试结果,展示自动网络搜索(NAS)在语义分割 ...
- MobileNetV1/V2/V3简述 | 轻量级网络
MobileNet系列很重要的轻量级网络家族,出自谷歌,MobileNetV1使用深度可分离卷积来构建轻量级网络,MobileNetV2提出创新的inverted residual with line ...
- CNN结构演变总结(二)轻量化模型
CNN结构演变总结(一)经典模型 导言: 上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等.在本文,将对轻量化模型进行总结分析. 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间 ...
- 卷积神经网络学习笔记——轻量化网络MobileNet系列(V1,V2,V3)
完整代码及其数据,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/DeepLearningNote 这里结合网络的资料和Mo ...
- Codeforces Round #236 (Div. 2) C. Searching for Graph(水构造)
题目大意 我们说一个无向图是 p-interesting 当且仅当这个无向图满足如下条件: 1. 该图恰有 2 * n + p 条边 2. 该图没有自环和重边 3. 该图的任意一个包含 k 个节点的子 ...
随机推荐
- 神经网络优化算法:梯度下降法、Momentum、RMSprop和Adam
最近回顾神经网络的知识,简单做一些整理,归档一下神经网络优化算法的知识.关于神经网络的优化,吴恩达的深度学习课程讲解得非常通俗易懂,有需要的可以去学习一下,本人只是对课程知识点做一个总结.吴恩达的深度 ...
- gitlab和jenkins的安装及使用
gitlab 准备: 最少4G内存 先安装docker软件包然后使用docker search gitlab 查找镜像然后使用docker pull 镜像名:标签名 下载镜像启动容器: docker ...
- Codeforces Round #344 (Div. 2) D. Messenger (KMP)
D. Messenger time limit per test2 seconds memory limit per test512 megabytes inputstandard input out ...
- const与constexpr
关于const型数据,谭浩强老爷子这么总结道: Time const t; //t是常对象,其值在任何情况下都不能改变 void Time::fun()const; //fun是Time类中的常成员函 ...
- A*算法实现(图形化表示)——C++描述
概要 A*算法是一种启发式寻路算法,BFS是一种盲目的无目标的搜索算法,相比于BFS,A*算法根据适应度构建优先队列,根据适应度值可以很好的向目标点移动,具体详情,请看搜索相关文档,我在只是实现了在无 ...
- Liunx centos 系统 修改hostname
1 centos6下修改hostname [root@centos6 ~]$ hostname # 查看当前的hostnmae centos6.magedu.com [root@centos6 ~]$ ...
- shell中的控制流结构
shell中的控制流结构 1.if...then..else..fi语句 2.case语句 3.for循环 4.until 语句 5.while循环 6.break控制 7.continue 控制 1 ...
- Tarjan求点双连通分量
概述 在一个无向图中,若任意两点间至少存在两条“点不重复”的路径,则说这个图是点双连通的(简称双连通,biconnected) 在一个无向图中,点双连通的极大子图称为点双连通分量(简称双连通分量,Bi ...
- JZOJ5358【NOIP2017提高A组模拟9.12】BBQ
题目 分析 发现,\(C_{ai+aj+bi+bj}^{ai+aj}\),其实就等于从(0,0)走最短路到(ai+aj,bi+bj). 我们可以想办法将i.j分开,从(0,0)走最短路到(ai+aj, ...
- Java-Shiro(五):Shiro Realm讲解(二)IniRealm的用法、JdbcRelam的用法、自定义Realm
引入 上一篇在讲解Realm简介时,介绍过Realm包含大概4类缺省的Realm,本章主要讲解: 1)IniRealm的用法: 2)JdbcRealm基于mysql 默认表及查询语句实现认证.授权 ...