MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
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的更多相关文章
- [论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 本文提出的模型叫Mobi ...
- 论文笔记——MobileNets(Efficient Convolutional Neural Networks for Mobile Vision Applications)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications MobileNet由Go ...
- 【论文翻译】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文链接:https://arxi ...
- [论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Intro MobileNet 我 ...
- 深度学习论文翻译解析(十七):MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
论文标题:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文作者:Andrew ...
- 【网络结构】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 ...
- Paper | MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
目录 1. 故事 2. MobileNet 2.1 深度可分离卷积 2.2 网络结构 2.3 引入两个超参数 3. 实验 本文提出了一种轻量级结构MobileNets.其基础是深度可分离卷积操作. M ...
- 【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 ...
- 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications
论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...
随机推荐
- python CGI环境搭建
本文web服务器使用的为apache. 1. 安装apache yum install -y httpd 2. 配置apache 修改apache配置文件/etc/httpd/conf/httpd.c ...
- (持续更新中~~~)kafka--消息引擎与分布式流处理平台
kafka概述 kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),一般更愿意称kafka是一款开源的消息引擎系统,只不过消息队列会耳熟一些.kafka主要应用于大数据 ...
- iQOO5G手机卡槽公布
华为.中兴.一加.OPPO.vivo各自的5G手机相继拿到了3C强制认证,小米的也在路上,5G手机真的越来越近了. 今天,vivo iQOO还公布了其5G手机所用的卡槽样式,可以看到采用了双卡设计,同 ...
- ValueError: day is out of range for month
日期超出范围. 我当时使用datetime模块生成时间格式数据,手误传错参数导致的结果.所以,好好检查数据就可解决问题. 如下: # 将字符串类型数据转化成时间结构数据# 原想写成如下代码import ...
- java8学习之Collector源码分析与收集器核心
之前已经对流在使用上已经进行了大量应用了,也就是说对于它的应用是比较熟悉了,但是比较欠缺的是对于它底层的实现还不太了解,所以接下来准备大量通过阅读官方的javadoc反过来加深对咱们已经掌握这些知识更 ...
- 第三次java测验1
设计思想: 输入一个字符串,然后将字符串倒置,比较字符串第i位上的字符与倒数第i位上的字符是否相同,如果都相同则字符串是回文:否则字符串不是回文. 源代码: package java3; import ...
- 网红题之一题多变$\;\;\text{e}^x\geqslant x^2+(\text{e}-2)x+1(x>0)$
母题 证明$:\;\;\text{e}^x\geqslant x^2+(\text{e}-2)x+1\;\;(x>0)$ 注$:\;$用不同的结构变形来证明 变式1: 若$\forall x\i ...
- UVA - 11107 Life Forms (广义后缀自动机+后缀树/后缀数组+尺取)
题意:给你n个字符串,求出在超过一半的字符串中出现的所有子串中最长的子串,按字典序输出. 这道题算是我的一个黑历史了吧,以前我的做法是对这n个字符串建广义后缀自动机,然后在自动机上dfs,交上去AC了 ...
- :last-child的坑-CSS3选择器
CSS3选择器之:last-child - Eric 真实经历 最近开发项目的时候发现了一个这么多年忽略的问题,和大家分享一下.项目使用的是Antd组件库,有一个搜索框是这样的: 为了保证下拉框的内容 ...
- websocket练习
html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> < ...