1. 摘要

作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络。

作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以便于网络设计者针对自己任务的限制来选择大小合适的模型。

2. 相关工作

设计轻量级的高效模型大致可以分为两个方向:压缩预训练好的模型或者直接训练小的网络。

针对前者,模型压缩主要是基于量化、哈希、剪枝和霍夫曼编码等,另外一种训练小模型的方法则是蒸馏,用较大的网络来教较小的网络。而直接设计小网络结构的尝试则主要有 Xception、SqueezeNet 等。

MobileNets 主要集中在优化时延但同时也会产生较小的模型,同时,两个超参数宽度乘子和分辨率乘子可以根据实际应用来灵活地定义更小更高效的网络。

3. 网络结构

3.1. 深度可分离卷积

标准的卷积操作一步就可以对输入进行特征提取并将它们结合成一系列输出,深度可分离卷积则将这个过程分为两层:一层是深度卷积(depthwise convolution)用来对输入的每个通道单独提取特征,一层是点卷积(pointwise convolution)用 1×1 的卷积来结合上一步的输出。

假设输入的特征图大小是 \(D_F×D_F×M\),一个标准卷积层的参数为 \(D_K×D_K×M×N\),\(D_K\) 是卷积核的大小。如果输出特征图的空间大小保持不变,那么计算代价为:

\[D_K*D_K*M*N*D_F*D_F\]

而采用深度可分离卷积的计算代价为:

\[D_K*D_K*M*D_F*D_F+M*N*D_F*D_F\]

计算量减少了:

\[\frac{D_K*D_K*M*D_F*D_F+M*N*D_F*D_F}{D_K*D_K*M*N*D_F*D_F}=\frac{1}{N}+\frac{1}{D_K^2}\]

MobileNets 采用 3×3 大小的深度可分离卷积,相比标准卷积可以减少 8 到 9 倍的计算量。

除此之外,在深度可分离卷积的两层后面都要引入 BN 和 ReLU。

3.2. MobileNet 网络结构

MobileNet 的主体结构除了第一层为标准卷积外都采用深度可分离卷积,除了最后一层全连接没有激活函数直接送入到 Softmax 层外其余层都紧跟着 BN 和 ReLU。在第一层和深度卷积层采用步长为 2 来进行下采样,最后一个平局池化层将空间分辨率减小到 1。详细信息如下表所示:

通过定义有更少乘-加操作的网络是不够的,还要考虑在硬件上有效实现这些操作,比如非结构化的稀疏矩阵通常不会比密集矩阵快除非稀疏到一定程度。MobileNet 结构将几乎所有的计算都放在 1×1 卷积操作上,而这在现有的卷积实现算法中不需要在内存中的初始化重新排序,也就可以加快计算速度。

可以看到,95% 的计算时间都花费在 1×1 卷积上,75% 的参数量也都集中在 1×1 卷积层,其余的参数则主要来自全连接层。

3.3. 宽度乘子:更瘦的模型

尽管基本的 MobileNet 结构已经非常小、时延很低,但具体的使用场景可能需要模型更小更快。为了构建这些计算量更少更小的模型,作者引入了一个简单的参数 \(\alpha\),称之为宽度乘子(width multiplier),它的作用是统一让网络中的每一层都更瘦。

针对某一层网络和 \(\alpha\),输入的通道数从 \(M\) 变成 \(\alpha M\),输出通道数从 \(N\) 变成 \(\alpha N\),这样这一层的计算代价就变为:

\[D_K*D_K*\alpha M*D_F*D_F+\alpha M*\alpha N*D_F*D_F\]

宽度乘子可以以大致 \(\alpha^2\) 的速率减少计算代价和参数量,可以用来设计一个更小的网络来平衡准确率、时延和模型大小这三者。

3.4. 分辨率乘子:减弱表示能力

另一个减少计算代价的超参数是分辨率乘子(resolution multiplier) \(\rho\),将它应用在输入图像上,然后每一层的表示能力都相应减少。实际中,作者是通过设置输入分辨率来确定这个参数的。

宽度乘子和分辨率乘子结合在一起,某一层网络的计算代价就变为了:

\[D_K*D_K*\alpha M*\rho D_F*\rho D_F+\alpha M*\alpha N*\rho D_F*\rho D_F\]

分辨率乘子可以以 \(\rho^2\) 的速率减少计算代价。下面的例子可以很好地展示深度可分离卷积以及两个超参数是怎么减少网络的计算代价和参数量的。

4. 实验结果

采用深度卷积的网络相对于标准卷积节省了巨大的计算代价和参数量,但准确率却仅仅降低了 1%。

相较于移除表一中特征图大小为 14×14×512 的五层网络,宽度因子 \(\alpha=0.75\) 的更瘦网络比更浅的网络准确率高出 3 个百分点。

随着宽度因子的降低,模型的准确率平滑降低,直到值太小 \(\alpha=0.25\) 时才有显著下降。

随着分辨率因子的降低,模型的准确率始终保持平滑降低。

相较于 GoogleNet 和 VGG,MobileNet 的准确率接近于 VGG ,超越了 GoogleNet,但模型大小的计算代价都小了很多。

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

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications的更多相关文章

  1. [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...

  2. 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)

    论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...

  3. 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...

  4. [论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Intro MobileNet 我 ...

  5. 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...

  6. 【网络结构】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications论文解析

    目录 0. Paper link 1. Overview 2. Depthwise Separable Convolution 2.1 architecture 2.2 computational c ...

  7. Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...

  8. 【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读

    2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications Andrew H ...

  9. 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications

    论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...

随机推荐

  1. selenium 模拟登陆豆瓣,爬取武林外传的短评

    selenium 模拟登陆豆瓣,爬去武林外传的短评: 在最开始写爬虫的时候,抓取豆瓣评论,我们从F12里面是可以直接发现接口的,但是最近豆瓣更新,数据是JS异步加载的,所以没有找到合适的方法爬去,于是 ...

  2. 10.1、LNMT架构

      Java环境安装包下载路径: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...

  3. gitlab和jenkins的安装及使用

    gitlab 准备: 最少4G内存 先安装docker软件包然后使用docker search gitlab 查找镜像然后使用docker pull 镜像名:标签名 下载镜像启动容器: docker ...

  4. Jenkins 入门系列--Jenkins 的安装配置

    写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之--03PDF文档下载 第二章 Jenkins安装与配置 2 Jenkins安装 在最简单的情况下,J ...

  5. AVAYA_Site_administrator软件简单操作

    AVAYA_Site_administrator软件简单操作 1.配置软件(第一次登录) 点击File>New>Voice System  在弹出对话框随意输入一个名称 下一步,默认选择 ...

  6. Charles中使用Map Local提高测试效率

    书接上回,上次说到Charles中可以使用修改返回值来模拟接口返回,这次我们来说一下Charles中另外一个强大的功能. 我们用手机连接Charles,具体可以参考上一篇<借助Charles来测 ...

  7. 面试复习题(二)JavaSE高级(未完成)

    一.Java中的反射 3.说说你对Java中反射的理解 Java中的反射首先是能够获取到Java中要反射类的字节码,获取字节码有3种办法. class.forName(className) 类名.cl ...

  8. 创建CUDA项目

    输出选择X64 .cu文件属性: 常规-项类型:CUDA C/C++ 项目属性: 平台:活动(x64) CUDA C/C++ - Common-Target Machine Platform: 64- ...

  9. 第二章 Vue快速入门-- 17 v-for指令的四种使用方式

    1.v-for循环普通数组 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  10. 关于客户端连接mysql的授权问题

    mysql远程连接 Host * is not allowed to connect to this MySQL server的错误. 是因为mysql需要授权才能访问.授权方式: 授权给某一个ip: ...