文章目录

  • 1 摘要
  • 2 存在问题
  • 3 亮点
    • 3.1 Linear Bottlenecks
    • 3.2 Inverted residual block
    • 3.4 总的结构体
  • 4 部分结果
    • 4.1 部分数据对比
    • 4.2 部分效果对比
  • 5 结论
    • 5.1 优势
    • 5.2 不足
  • 6 参考资料

1 摘要

本文基于MobileNetV1(戳这可以先了解一下MobileNetV1)的缺陷提出了MobileNetV2结构,并且详尽地分析介绍了设计轻量网络中的一些方法。参考ResNet的跳跃连接,作者提出Linear Bottlenecks和Inverted residuals模块去对网络进行优化,使得网络变得更快。

2 存在问题

① 目前,很多达到最好效果的网络都需以消耗大量的计算资源为代价的,并不适用于嵌入式移动设备。

② MobileNetV1虽然轻盈,但是其准确率表现不大如意,原因是单纯地使用卷积层进行堆叠,没有引入类似于跳跃连接的结构,所以没有充分利用图像的信息。

③ 在实际使用中,发现深度可分离卷积的某些卷积核参数为0,也就是在学习过程中导致卷积核“失效了”。

3 亮点

3.1 Linear Bottlenecks

为了解决学习过程中卷积核参数变0的问题,作者进行了分析,认为是由于Dwise的浅层输出接ReLU6(代表最大的激活值为6)容易使得卷积核参数为0,损害了信息(关于ReLU,很多文章指出过,在某些情况下会损失精度)。作者给出了如下图:

随着卷积输出维度的越来越高,output能够越来越接近input。而维度很小的时候,只有显示了一部分,所以有一部分被ReLU6吃掉了。通作者过如下图改进:

在stride=1或者stride=2的bottleneck的Dwise输出,都通过使用线性而不是非线性ReLU6以减少信息的丢失。使用非线性的bottleneck会有一定的提升,作者给出的对比图如下:

可见使用非线性输出的bottleneck准确率更高。

3.2 Inverted residual block

为了引入跳跃连接,作者参考ResNet的设计,在设计Bottleneck Residual Block的时候使用了 Residual Block,并且从以下方面进行对Residual Block的改造:

① 继承MobileNetV1,使用可分离深度卷积,这是使得模型轻量化的一个重要手段。如下图的(a)和(b)。

② 通道数的扩展,由于上面已经提到当使用可分离卷积的时候,如果要引入非线性ReLU6,那么就要使得通道数增加才能减小ReLu6带来的影响。如下图:

左边图像通过1x1卷积将通道数尽量增加,经过分离卷积以后恢复成原来的通道。

③ 引入线性输出,上面提过,由于ReLU6非线性输出的影响,所以在卷积后的1x1卷积输出使用线性输出,而不添加ReLU6。

④ 引入跳跃连接,名为Inverted residual block,之所以叫Inverted,是因为其不同于平常的residual block。两者对比如下图:

(a)为residual block模块,跳线连接之间,通道数是少的,呈“两边多,中间小”。而(b)则是为了尽量使ReLU6能够更好与深度可分离卷积兼容,所以在条线之间的通道数是最多的,而两边的通道则比中间小。呈“两边少,中间多”。所以作者称其为Inverted residual block。

下图显示使用Inverted residual block的bottleneck(也就是“中间多,两边小”)的结构会由更高的准确率,如果没有残差块,则其准确率更低。

3.4 总的结构体

总的结构图如下图:

其中,t扩增因子,一般与输入的通道数相乘;c代表输出通道数;n代表bottleneck的个数;s表示的为stride。stride为1的bottleneck和stride为2的bottleneck区别如下图:

4 部分结果

4.1 部分数据对比

作者还通过改进目标检测SSD网络(使用深度可分离卷积代替常规卷积)叫SSDLite。改进以后的参数确实减少不少,如下图:

作者又通过组合MobileNet(MNet)和SSDLite进行对比,如下图:

作者还进行了各种网络使用Google Pixel 1 phone运行的参数、运行速度和准确率的对比。如下图:

4.2 部分效果对比

下图为MobileNetV2在PASCAL VOC2012数据集上的分割效果,OS为output_stride;S为single scale,单尺度;MS+F:为Multi-scale inputs with scales = {0.5, 0.75, 1, 1.25, 1.5, 1.75} and left-right flipped inputs,经过多尺度处理和左右翻转处理的输入。

5 结论

5.1 优势

① 提出一个更轻量的网络,准确率高。

② 作者提出的这种改进模型效率的思路非常实用,如深度可分离卷积。这些思路可以用于改进当前表现好但是计算复杂的模型。

5.2 不足

(占位)

6 参考资料

(1)论文链接:https://arxiv.org/abs/1801.04381
(2)如何评价mobilenet v2 ?

论文阅读:MobileNetV2: Inverted Residuals and Linear Bottlenecks(MobileNetV2)相关推荐

  1. 《MobileNetV2: Inverted Residuals and Linear Bottlenecks》论文学习笔记

    文章目录 论文基本信息 研究背景 读完摘要后对上述问题的回答 读完论文后对上述问题的回答 什么是MobileNet V2? 为啥要在前边加一个Pointwise convolution? 什么是反向残 ...

  2. 轻量化网络(二)MobileNetV2: Inverted Residuals and Linear Bottlenecks

    论文链接 Pytorch实现 Tensorflow实现 Mobilenet V2是谷歌在Mobilenet V1上的进一步改进,第一版参考文章,是Mobilenet系列的第二篇.该文章以深度可分离卷积 ...

  3. 轻量型网络之MobileNetV2: Inverted Residuals and Linear Bottlenecks论文学习

    0.摘要 针对残差结构提出来倒残差结构(Inverted Residuals),由于使用的是1x1卷积在resnet中也叫瓶颈层,所以这个模块最终叫做具有线性瓶颈的倒残差结构(the inverted ...

  4. 论文精读:MobileNetV2: Inverted Residuals and Linear Bottlenecks

    论文地址:https://arxiv.org/pdf/1801.04381.pdf 模型结构简单,重点是理解模型设计的动机,并记录一下卷积的通用知识,已经熟知的知识就不再记录了,详细读原文. Abst ...

  5. 论文分享 MobileNetV2: Inverted Residuals and Linear Bottlenecks

    摘要 在本文中,我们描述了一种新的移动架构 MobileNetV2,它提高了移动模型在多个任务和基准测试以及不同模型大小范围内的最新性能.我们还描述了在我们称为 SSDLite 的新框架中将这些移动模 ...

  6. MobilenetV2学习笔记 --- MobileNetV2: Inverted Residuals and Linear Bottlenecks

    论文:https://arxiv.org/abs/1801.04381 代码:https://github.com/tonylins/pytorch-mobilenet-v2 此外给出Mobilene ...

  7. MobileNetV2: Inverted Residuals and Linear Bottlenecks

    推荐阅读:https://blog.csdn.net/kangdi7547/article/details/81431572 16->96->24, 为什么中间有96怎么确定, 由t来确定 ...

  8. 【MobileNet V2】《MobileNetV2:Inverted Residuals and Linear Bottlenecks》

    CVPR-2018 caffe 版本的代码:https://github.com/shicai/MobileNet-Caffe/blob/master/mobilenet_v2_deploy.prot ...

  9. MobileNetV2: Inverted Residuals and Linear Bottlenecks论文解读

    目录 摘要 主要贡献 相关工作 先导内容,预备工作(preliminaries,intuition) 模型结构 实验结果 摘要 作者提出了一种基于倒置残差块(姑且这么翻译吧,inverted resi ...

最新文章

  1. linux docker 目录挂载映射
  2. SQL server 中SQL语句实战操作
  3. 记录一次与大神们的关于GAN应用于NLP的讨论
  4. 从文本分类来看图卷积神经网络
  5. 一文带你了解Java的命名规范!
  6. MySQL必知必会(使用子查询)
  7. 清除缓存 c语言_如何用C语言设置,清除和切换单个位?
  8. 2020计算机大纲,计算机专业2020考试大纲.doc
  9. Visual Studio 2012 实用快捷键
  10. 计算机硬件不仅使用二进制,【判断题】计算机硬件中不仅使用二进制表示数据,也经常使用十六进制。...
  11. 软件质量保证与测试 问答题
  12. widows 下git记住账号密码
  13. android 插屏广告代码,插屏(Interstitial)广告样式
  14. android最全面 笔试题71道题 详解
  15. 游戏开发入门 二、游戏中的设计模式
  16. git 配置ssh 秘钥
  17. lifi与wifi的论文_lifi和wifi的区别在哪里?
  18. html中高度自动调整,HTML 高度自适应
  19. 统计学习方法笔记-隐马尔可夫模型(内含Python代码实现)
  20. 【商业终端仿真解决方案】上海道宁为您带来Georgia介绍、试用、教程

热门文章

  1. android平板游戏隐藏功能,平板电脑怎么隐藏游戏
  2. 2021年高处安装、维护、拆除模拟考试题库及高处安装、维护、拆除作业考试题库
  3. [2018 CS:GO Server]2018 Old CSGO 服务端,回忆逝去的青春!
  4. win11如何快速关机 windows11快捷键关机的设置方法
  5. android判断一个控件是否获得光标,Android View获取焦点
  6. 2022天梯赛 L1-086 斯德哥尔摩火车上的题
  7. 客户管理系统(SSM版):bs_typeahead动态的自动补全文本框的内容
  8. 30位中外大师的摄影箴言
  9. SpringBoot碰到的常见问题
  10. 【假期学习计划】深度强化学习算法与应用培训班