阅读论文MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application,对移动端深度学习网络MobileNet记录了一些笔记。原文链接:论文链接

一. 背景

为了提高准确度,网络越来越大,越来越复杂,可是移动端无法支持这样大的网络。所以移动端需要减小网络,但是还能保证速度和准确度不下降太多。
有两种方法,一种是减小已有网络的规模,另外一种是重新训练一个小网络。
MobileNet就是重新训练的小网络,它引入了(Depthwise separable convolution)深度级可分离卷积,包括(Depthwise convolution)深度级卷积和(Pointwise convolution)点级卷积。相比VGG16,MobileNet的准确度稍微下降,但是优于GoogleNet。然而,从计算量和参数量上MobileNet具有绝对的优势。

二. 原理

Depthwise convolution和标准卷积不同,对于标准卷积:一个滤波器是用在所有的输入通道上(input channels),有几个通道,这个滤波器就有几个卷积核。一个滤波器能产生一个特征,也就是一个输出通道。滤波器的个数自定,那么输出通道数目就是不确定的。
而depthwise convolution针对每个输入通道采用不同的滤波器,因为只有一个通道,所以一个滤波器只有一个卷积核。一个滤波器仍然产生一个特征,也就是一个输出通道。滤波器的个数和输入通道个数相同,那么输出通道数目就和输入通道数目相同。所以说depthwise convolution是depth级别的操作。
而pointwise convolution其实就是普通的卷积,只不过采用大小为1x1的滤波器。

三. 计算

假定输入特征图大小是:
而输出特征图大小是:
其中DF是特征图的width和height,这是假定两者是相同的,而M指的是通道数(channels or depth)。这里也假定输出特征图大小与输入特征图大小(width and height)是一致的,但滤波器个数N自定。对于标准的卷积 ,其计算量将是:
depthwise convolution计算量是:

而对于pointwise convolution其计算量为:
所以depthwise separable convolution总计算量是:

可以比较depthwise separable convolution和标准卷积如下:

一般情况下N比较大,那么如果采用3x3卷积核的话,depthwise separable convolution相较标准卷积可以降低大约9倍的计算量。

四. 网络结构


五. 更小的模型

针对不同的应用场景,可以对MobileNet进行瘦身。这里引入了两个超参数:width multiplier和resolution multiplier。
第一个参数width multiplier主要是按比例减少通道数,该参数记为α,其取值范围为(0,1],那么输入与输出通道数将变成αM和αN,对于depthwise separable convolution,其计算量变为:

width multiplier会按大约平方的倍数降低计算量和参数量。
第二个参数resolution multiplier主要是按比例降低特征图的大小,记为ρ,其取值范围为(0,1],比如原来输入特征图是224x224,可以减少为192x192,加上resolution multiplier,depthwise separable convolution的计算量为:

要说明的是,resolution multiplier会按大约平方的倍数降低计算量,但是不降低参数量。

【MobileNet】移动端深度学习网络MobileNet详解相关推荐

  1. 深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) By 李泽南2017年6月26日 15:57 本周一(6 月 19 日)机器之心发表文章《我的深度学习开发环境详解:Te

    深度学习开发环境调查结果公布,你的配置是这样吗?(附新环境配置) 机器之心 2017-06-25 12:27 阅读:108 摘要:参与:李泽南.李亚洲本周一(6月19日)机器之心发表文章<我的深 ...

  2. 轻量级深度学习网络——MobileNet MobileNet v2

    这篇文章主要讲的是深度学习网络篇中轻量化网络之一的MobileNet和MobileNet v2.在深度学习中轻量化网络有很多方法, 比如说卷积核分解.使用bottleneck结构.用低精度浮点数保存模 ...

  3. 从未看过如此详细的深度学习推荐系统应用详解,读它!

    作者丨gongyouliu 编辑丨zandy 来源 | 大数据与人工智能(ID:ai-big-data) [导读]2016年DeepMind开发的AlphaGo在围棋对决中战胜了韩国九段选手李世石,一 ...

  4. 深度学习 --- 基于RBM的深度置信网络DBN-DNN详解

    上一节我们详细的讲解了受限玻尔兹曼机RBM的原理,详细阐述了该网络的快速学习原理以及算法过程,不懂受限玻尔兹曼机的建议先好好理解上一节的内容,本节主要讲解的是使用RBM组成深层神经网络的深度置信网络D ...

  5. 深度学习 --- 玻尔兹曼分布详解

    上一节我们从Hopfield神经网络存在伪吸引子的问题出发,为了解决伪吸引子带来的问题,详细介绍了模拟退火算法,本节也是基础性的讲解,为了解决伪吸引子还需要引入另外一个重要概念即:玻尔兹曼分布.本篇将 ...

  6. TensorFlow 学习指南:深度学习系统构建详解

    内容简介 面向广泛的技术受众(从数据科学家.工程师到学生和研究人员),本书介绍了 TensorFlow 的基本原理和实践方法.从 TensorFlow 中的一些基本示例开始,深入探讨诸如神经网络体系结 ...

  7. 深度学习 --- BP算法详解(流程图、BP主要功能、BP算法的局限性)

    上一节我们详细推倒了BP算法的来龙去脉,请把原理一定要搞懂,不懂的请好好理解BP算法详解,我们下面就直接把上一节推导出的权值调整公式拿过来,然后给出程序流程图,该流程图是严格按照上一节的权值更新过程写 ...

  8. 深度学习生态圈【详解深度学习工具Keras】

    文章目录: 1 CNTK 2 Tensorflow2.1 介绍2.2 安装2.3 简单例子 3 Keras3.1 介绍3.2 安装Keras3.3 使用Keras构建深度学习模型3.4 一个例子 4 ...

  9. 深度学习之优化详解:batch normalization

    摘要: 一项优化神经网络的技术,点进来了解一下? 认识上图这些人吗?这些人把自己叫做"The Myth Busters",为什么?在他们的启发下,我们才会在Paperspace做类 ...

最新文章

  1. Mac升级自带ruby方法
  2. css段落缩进_如何缩进Google文档中的段落
  3. 鸿蒙系统手机现在有什么,华为鸿蒙手机迟迟未来 手机操作系统面临的难点有哪些...
  4. 什么是Dropthings
  5. 在TFS2013上删除项目
  6. 360搜索引擎能否给苦逼的站长们带来希望?
  7. 乐优商城(04)--商品规格
  8. 带有拉普拉斯平滑的Naive Bayes python代码实现
  9. 论文笔记:Reciprocal Multi-Layer Subspace Learning for Multi-View Clustering
  10. 廊坊金彩教育:店铺主图如何优化
  11. [gdc13]dx11效率优化
  12. VMware Workstation安装教程
  13. 个人日记——用来激励自己
  14. 什么蓝绿部署(BlueGreenDeployment) ?
  15. 新媒体推广之今日头条
  16. 开源软件七大盈利模式
  17. 微信转账php开发心得
  18. C指针Pointers
  19. oracle udt 解析,UDT协议实现分析总结
  20. pycharm--设置working directory

热门文章

  1. 税务审计主要是做什么的?审计内容包含哪些?
  2. 连续自然数求和(2)
  3. VisualStudio快捷键
  4. 如何复制一个WorkSheet到当前WorkBook WorkSheet.Copy
  5. 台式计算机提示内存不足怎么办,计算机老提示内存不足怎么办
  6. 这才是我想要是游览器——打造最强Microsoft edge+ChatGPT
  7. 微信客户端跨域分享iframe内的内容
  8. 不越狱就能监控苹果手机? iCloud备份成漏洞
  9. 云ERP系统实施的整体流程是什么?
  10. 华为eNSP 模拟器 配置静态路由