MobileNetV2: Inverted Residuals and Linear Bottlenecks
1. 摘要
作者提出了一个新的网络架构 MobileNetV2,该架构基于反转残差结构,其中的跳跃连接位于较瘦的瓶颈层之间。中间的扩展层则利用轻量级的深度卷积来提取特征引入非线性,而且,为了维持网络的表示能力作者去除了较窄层的非线性激活函数。
2. 讨论和直觉
2.1. 深度可分离卷积
MobileNetV2 采用和 MobileNetV1 一样 3×3 大小的深度可分离卷积,相比标准卷积可以减少 8 到 9 倍的计算量。
2.2. 线性瓶颈结构
长期以来,人们一直认为神经网络中的兴趣流形(mainfold of interest)也就是激活特征,可以被嵌入到低维子空间中。基于这个事实,我们可以通过减少某一层网络的维度也就是通道数来减少激活特征的空间维度。MobileNetV1 中的宽度因子就是用来减少激活空间的维度的,直到激活特征可以扩展出整个空间,我们就找到了一个最佳的参数。
但是,神经网络中还有非线性激活函数,这时候,上面的直觉就不成立了。比如 ReLU 会把负的激活值变为零,换句话说,深度网络仅在输出域的非零部分具有线性分类器的功能。如果 ReLU 使得某一个通道的一些值变为零,这会不可避免地带来那个通道的信息损失,但如果通道数比较多,我们就可以通过一种结构用其它通道的激活值来补偿这个损失。

用一个随机矩阵 \(T\) 将左边的螺旋线嵌入到 \(n\) 维空间然后用 ReLU 激活,再用 \(T^{-1}\) 投影回去。可以看到 \(n=2,3\) 时信息损失非常大,而维度较高时则恢复得比较好。
因此,为了避免损失太多信息,作者采用线性瓶颈层,也就是在通道数比较少的瓶颈层不采用非线性激活函数。
2.3. 反转残差

上图中每个块的厚度代表通道数的大小。可以看到,之前的残差结构先用一个 1×1 的卷积来降低通道数,然后进行一个卷积操作,最后再用一个 1×1 的卷积将通道数恢复到原始大小,跳跃连接建立在两个通道数比较多的层之间,并且每一层都采用 ReLU 激活。
而反转残差结构则是先用一个 1×1 的卷积来提高通道数,然后进行一个深度卷积操作,最后再用一个 1×1 的卷积将通道数降低到原始大小,跳跃连接建立在两个通道数比较少的瓶颈层之间,并且画阴影的两个块没有 ReLU 激活函数。
上图右边中间两层通道数比较多,所以采用激活函数,信息损失也没有那么大;而两端通道数比较少,如果激活的话信息损失会非常大,所以不采用激活函数。
详细结构如下所示,其中瓶颈层到中间层通道数的提升比例称之为扩展因子 t,激活函数采用 ReLU6,也就是限制激活的最大值为 6。

3. 网络结构

如上表所示,第一层是标准卷积,然后后面是前述的瓶颈结构。其中 t 是扩展因子,c 是输出通道数, n 是重复次数,s 代表步长。如果步长为 2 ,代表当前重复结构的第一个块步长为 2,其余的步长为 1,步长为 2 时则没有跳跃连接,如下图所示。

此外,也可以像 MobileNetV1 那样继续利用宽度乘子和分辨率乘子进一步降低模型的大小。
4. 实验结果
在 ImageNet 上的分类结果如下所示:

在 COCO 数据集上的目标检测结果如下图所示:

此外,作者还对比了不同的跳跃连接方式和是否采用线性瓶颈结构,进一步验证了网络设计的合理性。

获取更多精彩,请关注「seniusen」!

MobileNetV2: Inverted Residuals and Linear Bottlenecks的更多相关文章
- 深度学习论文翻译解析(十八):MobileNetV2: Inverted Residuals and Linear Bottlenecks
论文标题:MobileNetV2: Inverted Residuals and Linear Bottlenecks 论文作者:Mark Sandler Andrew Howard Menglong ...
- [论文阅读]MobileNetV2: Inverted Residuals and Linear Bottlenecks
0. 本文贡献点 本文的主要贡献点是一个构造了一个结构,称为the inverted residual with linear bottleneck.该结构与传统的residual bloc ...
- 论文-MobileNetV2: Inverted Residuals and Linear Bottlenecks
1.主要创新 1)提出了一种新的layer module:the inverted residual with linear bottleneck, 2)short connect被置于bottlen ...
- (原)MobileNetV2
转载请注明出处: https://www.cnblogs.com/darkknightzh/p/9410574.html 论文: MobileNetV2: Inverted Residuals and ...
- 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2
from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ...
- 『高性能模型』轻量级网络MobileNet_v2
论文地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks 前文链接:『高性能模型』深度可分离卷积和MobileNet_v1 一.Mobil ...
- 机器视觉:MobileNet 和 ShuffleNet
虽然很多CNN模型在图像识别领域取得了巨大的成功,但是一个越来越突出的问题就是模型的复杂度太高,无法在手机端使用,为了能在手机端将CNN模型跑起来,并且能取得不错的效果,有很多研究人员做了很多有意义的 ...
- face recognition[MobileFaceNet]
本文来自<MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices> ...
- face recognition[MobiFace]
本文来自<MobiFace: A Lightweight Deep Learning Face Recognition on Mobile Devices>,时间线为2018年11月.是作 ...
随机推荐
- 多线程编程-- part 6 共享锁和ReentrantReadWriteLock
介绍: ReadWriteLock,顾名思义,是读写锁.它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作.(1)“读取锁”用于只读操作,它是“共享锁”,能同时 ...
- java接口自动化测试小dome
GitHub地址:https://github.com/leonInShanghai/InterfaceAutomation 这个dome 请求 https://www.v2ex.com/api/no ...
- xml_dom4j
1.用dom4j解析文件 package Xml3; import java.io.File; import java.util.Iterator; import org.dom4j.Attribut ...
- thinkphp5.1 中间件是什么,有什么用
中间件是什么?有什么作用? 中间件主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理.---tp5.1手册 也就是说,降低了系统的耦合:[在http请求阶段,执行中间件的入口执行方法(hand ...
- Delphi 控制程序的执行
- 韦东山嵌入式Linux学习笔记01--转载: 板子ping不通PC怎么办
请参考链接:https://blog.csdn.net/u013490896/article/details/71250060 我的环境: window 10 jz2440 v3 我采用的连接方式如下 ...
- 使用jvisualvm远程监控tomcat(阿里云ECS)
写在前面: 使用jvisualvm远程监控tomcat(阿里云ECS),连接是报错:service:jmx:rmi:////jndi/rmi:IP:端口// 连接到 IP:端口,网上找了很多资料, ...
- python 单元测试_读写Excel及配置文件(八)
一.安装openpyxl模块 openpyxl模块:是用于解决Excel(WPS等均可使用)中扩展名为xlsx/xlsm/xltx/xltm的文件读写的第三方库.xls文件要使用xlwt .wlrd两 ...
- HDU6739 2019CCPC秦皇岛赛区 I. Invoker
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6739思路:暴力dp 一个special skill最多有6种排列组合 ...
- marquee跑马灯效果的相关属性
介绍HTML设置滚动文字marquee的相关属性 ㈠文字滚动标签 设置文字滚动使用<marquee></marquee>标签,可以再标签里面设置字体的颜色,字号,字体大小等. ...