本文提出了一种轻量级结构MobileNets。其基础是深度可分离卷积操作。

MobileNet具有两个超参数,可以调节精度(accuracy)和延迟(latency)之间的权衡。

1. 故事

现有的模型越来越深,越来越复杂,效率却有可能越来越低。这在实际应用中是无法接受的。

本文于是推出了一种网络,包含两个超参数,可以根据需求适配。

历史工作大多考虑让网络更小,即关注size而非latency。本文提出的网络同时关注这两点。

2. MobileNet

2.1 深度可分离卷积

深度可分离卷积 将 标准卷积操作 分解为 深度卷积 和 \(1 \times 1\)逐点卷积。

在 MobileNet中,深度卷积是对每一个通道分别卷积,逐点卷积就是对 深度卷积的输出通道 进行\(1 \times 1\)整合。【前者是空域的,后者是通道域的,二者完全解耦】

如图,先对\(M\)个输入通道分别空域卷积,得到\(M\)张特征图;然后再整合这些特征图,一共有\(N\)种整合方式,即得到\(N\)张特征图。

具体而言,深度卷积采用的是\(3 \times 3\)卷积核。

2.2 网络结构

网络整体结构如表:

  • 每一个卷积层都跟着一个BN和ReLU激活,除了最后一层。表中的dw就是深度卷积,如图:

  • 其中的降采样是通过步长卷积实现的(正常卷积默认步长为1)。

  • 最后是全局池化(每个通道的尺寸直接变为\(1 \times 1\)) => FC层。

  • 一共有28层卷积。

  • 【规律:通道尺寸不断下降;深度可分离卷积几乎是和正常卷积交替使用的;升通道数都用\(1 \times 1\)卷积完成;在低分辨率通道上卷积层数较多】

最后,我们不应该只关注乘法-加法的数量。我们还应该关注这些操作能否被有效实施。其中,\(1 \times 1\)卷积就是非常高效的矩阵乘法算子,并且对显存要求很低。这归功于GEMM函数。我们统计一下:

\(1 \times 1\)卷积的运算量和参数规模都是最大头的,这对网络有好处。

最后作者发现,由于深度可分离卷积的参数量不大,因此不应该使用weight decay。

2.3 引入两个超参数

首先引入的是通道数瘦身超参数(width multiplier)。在乘以该超参数后,输入和输出通道数都会变成原来的\(\alpha\)倍。典型值为0.75和0.5。

其次引入分辨率瘦身超参数(resolution multiplier)。不用过多解释了。

我们看看效果:

3. 实验

我们就看在ImageNet上的例子。效果不重要,关键是灵活的权衡方式。

Paper | 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. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    1. 摘要 作者提出了一系列应用于移动和嵌入式视觉的称之为 MobileNets 的高效模型,这些模型采用深度可分离卷积来构建轻量级网络. 作者还引入了两个简单的全局超参数来有效地权衡时延和准确率,以 ...

  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. JS实现网站楼层导航效果

     壹 ❀ 引 我在angularjs中使用锚点这篇文章中,踩坑并简单实现了楼层导航中点击小图标跳转到对应楼层的功能:但对于楼层导航而言,还有个重要的功能就是,随着滚动条滚动,达到某层时得同步点亮楼层导 ...

  2. 《细说PHP》第四版 样章 第23章 自定义PHP接口规范 4

    23.2.3  在程序中访问接口 本节再优化userapi.php文件中的代码,并多加一个接口函数store(), 模拟一个表单,通过POST提交数据给它,验证并将数据添加到数据库中,代码如下所示: ...

  3. 拎壶学python3-----(3)python之while循环用法

    一.下边我们看一个简单的while循环 那怎么计数呢就让输入三次三次后退出: 二. 关于计数这个问题我们一起看一下 (1)关于计数如下: 我们发现这个计数根本停不下来,怎么才能搞成我们想要的计数次数呢 ...

  4. CSAPP lab3 bufbomb-缓冲区溢出攻击实验(上)smoke fizz

    前言 完成这个实验大概花费一天半的时间,看了很多大佬的博客,也踩了很多的坑,于是打算写一篇博客重新梳理一下思路和过程,大概会有两篇博客吧. CSAPP lab3 bufbomb-缓冲区溢出攻击实验(上 ...

  5. 死磕 java同步系列之Semaphore源码解析

    问题 (1)Semaphore是什么? (2)Semaphore具有哪些特性? (3)Semaphore通常使用在什么场景中? (4)Semaphore的许可次数是否可以动态增减? (5)Semaph ...

  6. 利用Python突破验证码限制

    一.实验说明 本实验将通过一个简单的例子来讲解破解验证码的原理,将学习和实践以下知识点: Python基本知识 PIL模块的使用 二.实验内容 安装 pillow(PIL)库: $ sudo apt- ...

  7. 盲法介绍及python盲打练习系统

    目录 一:盲打简介与优点 二:如何练习 三:键盘字母排列顺序的口诀 四:python打字练习系统 一:盲打简介与优点   简介:盲打是指打字的时候不用看键盘或看稿打字时的视线不用来回于文稿和键盘之间的 ...

  8. JVM垃圾回收器原理及使用介绍

    JVM垃圾回收器原理及使用介绍 垃圾收集基础 引用计数法(Reference Counting) 标记-清除算法(Mark-Sweep) 复制算法(Copying) 标记-压缩算法(Mark-Comp ...

  9. SpringMVC入门 -- 参数绑定

    一.REST与RESTful 1.简介 (1)REST(Representational State Transfer):表现层状态转移,一种软件架构风格,不是标准.REST描述的是在网络中clien ...

  10. Junit4模板

    模板 MallApplicationTests import org.junit.runner.RunWith; import org.springframework.boot.test.contex ...