本文提出了一种轻量级结构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. CF785D Anton and School - 2

    题目链接 problem 给出一个括号序列,要求删除一些括号使得剩下的括号序列是个匹配的括号序列,且改括号序列左边全部为左括号,右边全部为右括号. solution 考虑枚举左右括号交界的位置\(x\ ...

  2. 微信小程序开发练习

    微信小程序开发工具git管理 https://blog.csdn.net/qq_36672905/article/details/82887102 这个开发工具的界面和交互真的是熟悉又友好,吹爆他

  3. navicat连接mysql报错1251解决方案,从头搭建node + mysql 8.0 (本人亲测有效)

    准备学node 好久了 一直没有动手去写,今天突发奇想,然后就安装了一个mysql (找了一个博客跟着步骤去安装的),然后打算用node 写个增删改查. 1.下载mysql安装包   地址: http ...

  4. 记一个bootstrap定制container导致页面X轴出现横向滚动条的坑

     壹 ❀ 引 在bootstrap定制时,因为UI给的图纸的页面主体部分宽度为1200px,所以我将container容器宽度从默认的1170px改成了1200px,随后在页面缩小的调试过程中发现了页 ...

  5. git查看/修改个人信息-用户名邮箱

    我们在使用git作为仓库管理工具时,要设置自己Git的用户名和邮箱,要不然大家一块开发时不知道谁是谁,不知道谁提交的. 另外,当我们用自己的电脑开发时你可能设置的是一个你喜欢的昵称,所以那就得改一下. ...

  6. gitlab与jenkins结合构建持续集成

    Jenkins是java编写,需要安装JDK,这里采用 yum 安装,对版本有需求的,可以到 oracle 官网下载 JDK. yum install -y java-1.8.0-openjdk 一. ...

  7. OpenGL光照2:材质和光照贴图

    本文是个人学习记录,学习建议看教程 https://learnopengl-cn.github.io/ 非常感谢原作者JoeyDeVries和多为中文翻译者提供的优质教程 的内容为插入注释,可以先跳过 ...

  8. String substring(int start,int end)截取当前字符串中指定范围内的字符串

    package seday01;/** * String substring(int start,int end) * 截取当前字符串中指定范围内的字符串. * java api有一个特点:通常用两个 ...

  9. android studio 菜单中的app运行按钮上有个叉号,原因与解决办法(自己去百度)

    http://blog.csdn.net/sz0268/article/details/51706397 : 在Android studio写代码中,直接建立项目,写代码然后运行是不会一般是不会出现这 ...

  10. Linux常见目录说明

    常见目录说明 目录 应放置档案内容 /bin/ 存放二进制可执行文件,系统的命令(ls,cat,mkdir等),是/usr/bin/目录的软链接. /sbin/ 存放系统命令,超级用户可以执行.是/u ...