[论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)
论文地址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
本文提出的模型叫MobileNet,主要用于移动和嵌入式视觉应用。该模型具有小巧、低延迟的特点。MobileNet在广泛的应用场景中具有有效性,包括物体检测,细粒度分类,人脸属性和大规模地理定位。

MobileNet架构
深度可分解卷积(Depthwise Separable Convolution)
MobileNet模型基于深度可分解卷积(depthwise separable convolutions),它由分解后的卷积组成,分解后的卷积就是将标准卷积分解成一个深度卷积(depthwise convolution)和一个1x1的点卷积(pointwise convolution)。深度卷积将每个卷积核应用于输入的每一个通道;然后,深度卷积的输出作为点卷积的输入,点卷积用1x1卷积来组合这些输入。下面两个图如下:


一个标准的卷积层以DF x DF x M大小的feature map F作为输入,然后输出一个DG x DG x N的feature G,其中DF输入feature map的宽度和高度,M是输入通道数目;DG是输出feature map的宽度和高度,N是输出通道的个数。卷积核K的参数量为DK x DK x M x N,其中,DK是卷积核的宽度和高度。标准的卷积的计算代价是(stride=1,padding=same):

现在将卷积核进行分解,深度卷积的计算量为:


点卷积的计算量为(公式中省略了1 x 1):

因此,深度可分解卷积的计算总量为:

深度可分解卷积与标准卷积的计算量做比较,如下:

MobileNet使用了大量的3 × 3的深度可分解卷积核,极大地减少了计算量(1/8到1/9之间),同时准确率下降的很少,相比其他的方法确有优势。
Network Structure and Training
MobileNet结构如下图。其中,第一层采用标准卷积,其它层均采用本文提出的深度可分解卷积。每一层后面跟着一个batchnorm和ReLU,除了最后一层全连接层直接接softmax。下采样是采用带stride的卷积实现的。最后,MobileNet总共有28层(深度卷积和点卷积分开计算)。

下图对比了标准卷积与深度可分解卷积的结构:

MobileNet将95%的计算时间用于有75%的参数的1×1卷积,作者采用tensorflow和RMSprop进行训练,因为模型比较小,过拟合不太容易,所以数据增强和规则化用的不多。
每一层的计算量如下:

Width Multiplier: Thinner Models
尽管模型已经很小,但是为了让模型更小和更快,本文又提出第一个超参数α,称为宽度乘数(Width Multiplier)。宽度乘数α的作用是使得网络的每一层都“变瘦”。对于一个给定的层和一个宽度乘数α,输入通道M变成αM,输出通道N变成αN。
加上宽度乘数α之后,深度可分解卷积的计算量变为:

其中,α∈(0,1],典型值是1,0.75,0.5和0.25。α=1是MobileNet的baseline,α<1是reduced MobileNets。宽度乘数在计算量和参数量上大概可以减少α²。
Resolution Multiplier: Reduced Representation
第二个用于减少网络计算量的超参数是分辨率乘数(Resolution Multiplier)ρ。分辨率乘数用来改变输入数据层的分辨率。
在α和ρ共同作用下,我们的深度可分离卷积网络的计算量为:

其中,ρ∈(0,1],ρ 如果为{1,6/7,5/7,4/7},则对应输入分辨率为{224,192,160,128}。ρ 参数的优化空间同样是 ρ² 左右。
下图可以看出两个超参数在减少网络参数的上的作用。

Experiments
Model Choices
表4中,同样是MobileNet的架构,使用可分离卷积,精度值下降1%,而参数仅为1/7。

表5中,深且瘦的网络比浅且胖的网络准确率高3%。

Model Shrinking Hyperparameters
表6中,α 超参数减小的时候,模型准确率随着模型的变瘦而下降。

表7中,ρ 超参数减小的时候,模型准确率随着模型的分辨率下降而下降。

下图显示了准确率和计算量的权衡。总共16个模型,其中α∈{1,0.75,0.5,0.25},ρ∈{224,192,160,128}。

下图是MobileNet与GoogleNet、VGG16的比较。

还有其他很多比较数据,不再详述。
参考:
http://blog.csdn.net/wfei101/article/details/78310226
[论文阅读] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications (MobileNet)的更多相关文章
- 论文笔记——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 Intro MobileNet 我 ...
- 【论文翻译】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 论文作者: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 ...
- MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...
- 【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 ...
随机推荐
- 微信扫一扫JSSDK 扫一扫报错 invalid signature 问题
交代一下业务场景 在在四个页面都需要用到扫一扫去扫二维码.然而在图三-我的订单 下单中这个页面扫一扫不起效,当时就郁闷了为啥其他页面有用,这里却没用,开始调试吧. 报错信息是签名验证不成功. 自己去打 ...
- 【Linux】 CentOS6.5安装Python2.7以及pip等工具
原文地址 CentOS6.5下是原来就有python的,我的镜像里面自带的python版本是2.6.6.如果想要自己更新一个更加新的python版本可以这么做: 安装python2.7安装包. 从官网 ...
- Algorithm --> 最长公共子序列(LCS)
一.什么是最长公共子序列 什么是最长公共子序列呢?举个简单的例子吧,一个数列S,若分别是两个或多个已知序列的子序列,且是所有符合条件序列中最长的,则S称为已知序列的最长公共子序列. 举例如 ...
- Ubuntu16.0.4下搭建pycharm 2018.3.22
一.首先安装Java jdk Java JDK有两个版本,一个开源版本Openjdk,还有一个Oracle官方版本jdk.下面记录在Ubuntu 16.04上安装Java JDK的步骤. 安装open ...
- linux scp 命令
scp 命令 scp 命令 意思是 secure copy 即安全拷贝,可以把它看做是 cp 命令的高级版,可以跨主机拷贝. 经常用来在局域网内不同主机之间分享文件,或者在本机与远程主机中分享文件. ...
- ibatis.net 入门demo 实现基本增删改查
1.项目架构体系 DAO(数据访问层) Domain(实体层) Text(表示层) 2.比较重要的是需要添加两个dll的引用,以及两个配置文件和一个XML文件 两个 IbatisNet.Com ...
- 【Java EE】从零开始写项目【总结】
从零开发项目概述 最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等... 被虐得不要不要的,即使是非常简单有时 ...
- JavaScript(第十五天)【匿名函数和闭包】
学习要点: 1.匿名函数 2.闭包 匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数.声明:本节内容需要有面向对象和少量设计模式基础,否则无法听懂.(所需基础15章的时候已经声明 ...
- 从0开始的LeetCode生活—001-Two Sum
题目: Given an array of integers, return indices of the two numbers such that they add up to a specifi ...
- Python 实现火车票查询工具
注意:由于 12306 的接口经常变化,课程内容可能很快过期,如果遇到接口问题,需要根据最新的接口对代码进行适当修改才可以完成实验. 一.实验简介 当你想查询一下火车票信息的时候,你还在上 12306 ...