【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 Howard、Hartwig Adam(Google)
- GitHub: 1.4k stars
- Citation:4203
Introduction
本文介绍了一种新的网络结构,MobileNet(V1),网络结构上与VGG类似,都属于流线型架构,但使用了新的卷积层——深度可分离卷积(depthwise separable convonlution)替换了原始的全卷积层,使得网络参数和计算量都大大减小,在0.12倍的计算量和0.14倍的参数量的情况下,精度仅下降1%,引入两个超参数(宽度乘数、分辨率乘数),可以方便的构建更小的MobileNet,在模型大小和精度之间平衡。属于网络压缩中的轻量化网络设计的方法。
Motivation
随着深度学习的流行,卷积网络的计算开销越来越大,因此人们开始寻找减少网络参数/计算量的方法,设计更高效的模型。
Contribution
轻量化网络(较小的计算开销和存储开销)主流的方法有两种
- 减少模型参数,既可以减少模型计算开销,也可减少模型存储开销
- 量化模型参数,可以减少存储开销
MobileNet使用深度可分离卷积来替代传统的全卷积,有效的地降低了模型参数量和计算量。
Method
深度可分离卷积(depthwise separable convolution)
深度可分离卷积是MobileNet的核心。深度可分离卷积是因子卷积(将大卷积分解为小的卷积?)的一种,将标准的全卷积分解为通道深度卷积(depthwise convolution)+1x1逐点卷积(pointwise convolution);其中深度卷积是将同一个filter应用到所有的input channels上,点卷积是将1x1的卷积核,应用在深度卷积的output channels上。传统的conv是将滤波乘法(feature map元素乘法)和通道合并(将多个channels map整合成一个channels)两个步骤在一步完成;而深度可分离卷积是将两个步骤分开,一层用于滤波乘法,一层用于通道合并。
标准卷积:

通道卷积:

逐点卷积:

计算开销对比:

标准卷积的计算开销: \(D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F}\)
深度可分离卷积的计算开销: \(D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F}+M \cdot N \cdot D_{F} \cdot D_{F}\)
&&计算开销的计算:参数数量×一个feature map的大小
计算开销对比: $\frac{D_{K} \cdot D_{K} \cdot M \cdot D_{F} \cdot D_{F}+M \cdot N \cdot D_{F} \cdot D_{F}}{D_{K} \cdot D_{K} \cdot M \cdot N \cdot D_{F} \cdot D_{F}} = \frac{1}{N}+\frac{1}{D_{K}^{2}} $
网络结构
MobileNet的除了第一个卷积层是标准卷积,其余的卷积层都是深度可分离卷积。
表1为MobileNet的网络结构,将通道卷积层和点卷积层看做单独的层,则MobileNet共有28层(1全卷积 + 2 × 13深度可分离卷积 + 1全连接 = 28)。
&&有参数的层才算入?

图3对比了标准卷积层和可分离卷积层(通道卷积层+逐点卷积层),每个卷积层后都跟着BN层和ReLU层。

表2为MobileNet中不同类型的层的计算量和参数量对比:

宽度乘数 \(\alpha\)(Width Multiplier)
为了构建更小的MobileNet,引入第一个超参数——Width Multiplier α,在α的作用下,网络的计算代价变为: \(D_{K} \cdot D_{K} \cdot \alpha M \cdot D_{F} \cdot D_{F}+\alpha M \cdot \alpha N \cdot D_{F} \cdot D_{F}\)
α的取值范围(0,1],取1时就是baseline MobileNet
应用宽度乘数可以将计算开销和存储开销变为为原来的 \(\alpha^2\) 倍
分辨率乘数 \(\rho\)(Resolution Multiplier)
分辨率乘数可以减小输入图片的分辨率,一般通过设置输入图片的分辨率来隐式地设置 \(\rho\)
同时应用宽度乘数和分辨率乘数,计算代价变为:
\(D_{K} \cdot D_{K} \cdot \alpha M \cdot \rho D_{F} \cdot \rho D_{F}+\alpha M \cdot \alpha N \cdot \rho D_{F} \cdot \rho D_{F}\)
其中,ρ∈(0, 1],通常隐式设置网络的输入分辨率为224、192、160或128。
应用宽度乘数可以将计算开销和存储开销变为为原来的 \(\rho^2\) 倍。
表3对比了全卷积、深度可分离卷积、应用了α和ρ的深度可分离卷积的模型的计算量和参数量:

Experiments
全卷积的MobileNet VS MobileNet:

在相近的计算量下,瘦长的MobileNet 和 胖矮的MobileNet 的精度对比,瘦长的MobileNet效果更好,说明层数更重要(所以是使用宽度层数α,改变模型宽度,而不是减少模型的层数):

应用了宽度乘数α的MobileNet效果对比:

应用了分辨率乘数ρ(输入分辨率不同)的MobileNet效果对比:

在ImageNet上与经典网络的对比:

在Stanford Dogs数据集上与经典网络的对比:

其他实验:
细粒度识别实验、大规模地理定位实验、Face Attributes实验、Object Detection实验、Face Embeddings实验
Conclusion
提出了新的轻量模型MobileNet,核心是使用深度可分离卷积代替标准全卷积,大大减少计算量和参数量
通过宽度乘数和分辨率乘数2个超参数很好的在baseline MobileNet的基础上构建更小的MobileNet模型
Summary
想法很简单,效果很好!
实验非常丰富!
Reference
【深度可分离卷积】https://zhuanlan.zhihu.com/p/92134485
【薰风读论文:MobileNet 详解深度可分离卷积,它真的又好又快吗?】https://zhuanlan.zhihu.com/p/80177088
【MobileNet-V1】-2017-CVPR-MobileNets Efficient Convolutional Neural Networks for Mobile Vision Applications-论文阅读的更多相关文章
- 【网络结构】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 ...
- 【论文翻译】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 (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 Intro MobileNet 我 ...
- 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 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...
- 深度学习论文翻译解析(六):MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications
论文标题:MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Appliications 论文作者:Andrew ...
随机推荐
- spring mvc 实现文件上传
例:用户注册提交一个头像文件 第一步,创建项目 ,导入jar包 做文件上传除了要导入spring常规的jar包外,还要导入commons-fifileupload和commons-io这两个jar包. ...
- CSS颜色及文本字体
CSS颜色及文本字体 CSS颜色表示法 CSS文本设置 CSS边框属性 背景属性 元素溢出 CSS颜色及文本字体 CSS颜色表示法 颜色名表示,比如:red 红色,yellow黄色,pick粉色 16 ...
- (一只小白)对private,final关键字的一些认知
1.private: private是私有的意思,在Java中可以用来修饰类里面的成员变量或者成员方法(注:不能修饰一个类,因为一个类如果外部无法访问的话,面向对象的编程思想将毫无意义),顾名思义,被 ...
- 【HBase】HBase和Sqoop整合
目录 需求一 步骤 一.修改sqoop配置文件 二.在mysql中创建数据库和数据表并插入数据 三.将mysql表中的数据导入到HBase表中 四.在HBase表中查看数据 需求二 步骤 一.创建hi ...
- 一阶RC高通滤波器详解(仿真+matlab+C语言实现)
文章目录 预备知识 关于电容 HPF的推导 simulink 仿真 simulink 运行结果 matlab 实现 matlab 运行结果 C语言实现 如果本文帮到了你,帮忙点个赞: 如果本文帮到了你 ...
- linux gdb快速入门教程
文章目录 前言 常用指令概览 开始使用gdb 一个完整流程一般所需步骤 1 加载程序 2 查看 2.1 查看函数 3 设置断点 3.1 根据函数名设置断点 3.2 根据程序位置(第几行) 4 运行程序 ...
- Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘
文章目录 前言 fstab 参数含义 实现步骤 1 查看硬盘信息,并找到需要进行挂载的硬盘 2 sudo mkfs.ext4 /dev/sdc 3 sudo mkdir /home/diska 4 查 ...
- springboot启动报错:Handler dispatch failed; nested exception is java.lang.AbstractMethodError
最近在用springboot构建项目,控制台报错:Handler dispatch failed; nested exception is java.lang.AbstractMethodError, ...
- [hdu5416 CRB and Tree]树上路径异或和,dfs
题意:给一棵树,每条边有一个权值,求满足u到v的路径上的异或和为s的(u,v)点对数 思路:计a到b的异或和为f(a,b),则f(a,b)=f(a,root)^f(b,root).考虑dfs,一边计算 ...
- iOS中的事件响应链、单例模式、工厂模式、观察者模式
学习内容 欢迎关注我的iOS学习总结--每天学一点iOS:https://github.com/practiceqian/one-day-one-iOS-summary iOS中事件传递和相应机制 i ...