论文:Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation

文章在residual net和MobileNet V1的基础上,提出MobileNet V2模型,一方面保证准确性,另一方面大幅的减少multiply-adds(MAdd)的计算量,从而减少模型的参数量,降低内存占用,又提高模型的计算速度,以适应移动端应用。

Block 基本结构

文章的主要贡献:提出一种颠倒的、bottleneck为线性变换的resdual 结构。这中结构的一个block如下:
输入:一个低维 k(通道)的、经压缩的数据
然后经过:
step 1, point wise卷积扩展维度(通道),扩展因子为t;
step 2, depthwise separable 卷积,stride为 s;
step 3, linear conv把特征再映射的低维,输出维度为 k’;
输出作为下一个block的输入,堆叠block。
具体结构如表:

1. Depthwise separable conv

这种卷积方式早已被广泛使用,实现方法是把常规卷积层分为两个独立的层。第一层称为depthwise convolution,对输入的每个通道做单独的卷积,第二层称为pointwise convolution,使用1x1的卷积核做常规卷积。
如果使用的是kxk的卷积核,这种卷积几乎能减少k2的计算量。

2. Linear bottlenecks

用线性变换层替换channel数较少的层中的ReLU,这样做的理由是ReLU会对channel数低的张量造成较大的信息损耗。ReLU会使负值置零,channel数较低时会有相对高的概率使某一维度的张量值全为0,即张量的维度减小了,而且这一过程无法恢复。张量维度的减小即意味着特征描述容量的下降。因而,在需要使用ReLU的卷积层中,将channel数扩张到足够大,再进行激活,被认为可以降低激活层的信息损失。文中举了这样的例子:

上图中,利用nxm的矩阵B将张量(2D,即m=2)变换到n维的空间中,通过ReLU后(y=ReLU(Bx)),再用此矩阵之逆恢复原来的张量。可以看到,当n较小时,恢复后的张量坍缩严重,n较大时则恢复较好。

3. inverted residual sturcture


原residual structure 出自Deep Residual Learning for Image Recognition. 这种结构解决了深度神经网络随着网络层数的加深带来的梯度消失/爆炸,模型不收敛的问题,使DNN可以有上百甚至更多的层,提高准确率。
从图中可以看出,这种结构使用一个快捷链接(shortcut)链接了block的输入与输出(实际做的是element wise add),block内部是常规conv,一般block内部数据的维度低于block边缘–即bottleneck的数据维度。
论文的题目,inverted residual,颠倒的正是block 内数据维度与bottleneck数据维度的大小,这从上图的中数据块的深度情况可以看出。
这种颠倒基于作者的直觉:bottleneck层包含了所有的必要信息,扩展的层做的仅仅是非线性变换的细节实现。
实际上,这中翻转能节省内存,分析见后。

MobileNet V2网络结构

网络机构如下:

上图中,t代表单元的扩张系数,c代表channel数,n为单元重复个数,s为stride数。注意,shortcut只在s==1时才使用。

实验

文章从classification、detection、segmentation三个应用方面测试了该模型的效果。

1. classification

直接使用MobileNetV2的结构,输入图像size为224x224,在Imagenet上的分类表现

2.detection

使用预训练的MobileNetV2卷积层特征+SSD的检测网络,输入图像size为320x320,在mscoco上的表现如下表:

3.segementation

使用预训练的MobileNetV2卷积层特征+DeepLabv3分割网络,

结论

社区对MobileNetV2的评价还是很高的,而且简单易实现,可以作为基本层用到detection和segmentation等领域。这里有一个Tensorflow实现的版本,欢迎交流。github

MobileNet V2 论文笔记相关推荐

  1. ConvNeXt V2 论文笔记

    ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders(2023.1.2-v1) 链接:   paper     ...

  2. YOLO v2论文笔记

    YOLOv2相对于v1的改进: 1. Batch Normalization ,mAP 增加2% 2. High Resolution Classifier 增加训练图片分辨率为448 * 448 , ...

  3. 阅读pvt v1 和 pvt v2 论文笔记

    pvt 2篇论文的代码在原论文中有所标注,由于时间关系,以后再将对源代码进行解读 1.pvt v1的创新点 pvt收到的启发来自于 cnn 和transformer,为了克服transfomer应用于 ...

  4. MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事

    MobileNet v2中 Inverted Residual 和 Linear Bottleneck 是怎么回事 flyfish MobileNet v1的深度可分离卷积 Block的结构 先从Mo ...

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

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

  6. 论文笔记:MobileNet v2

    原论文:MobileNetV2: Inverted Residuals and Linear Bottlenecks MobileNet v2 1.四个问题 要解决什么问题? 与MobileNet v ...

  7. ShuffleNet V2 论文阅读笔记

    ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design 阅读笔记 论文链接:https://arxiv.or ...

  8. 论文笔记:ShuffleNet v2

    ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design ShuffleNet v2 1.四个问题 要解决什么 ...

  9. 论文笔记 | 谷歌 Soft Prompt Learning ,Prefix-Tuning的 -> soft promt -> p tuning v2

    论文笔记 | 谷歌 Soft Prompt Learning ptuning -> Prefix-Tuning -> soft promt -> p tuning v2 " ...

最新文章

  1. 第一篇博客——ACM之路!
  2. LINQ体验系列文章导航
  3. CTFshow 爆破 web28
  4. 微软发布.Net Core 3.0 RC1,最终版本定于9月23日
  5. Supersocket 如何使用 教程1
  6. Java并发编程实战_不愧是领军人物!这种等级的“Java并发编程宝典”谁能撰写?...
  7. php基类控制器,控制器基类
  8. GARFIELD@01-25-2005
  9. L1-039 古风排版 (20 分)—团体程序设计天梯赛
  10. sessionStorage跨标签取值
  11. Springboot属性配置绑定
  12. 呼吸机吸气触发:压力触发与流量触发
  13. 程序员年龄变大后的职业出路是什么?
  14. 如何编写Word文档 多级编号
  15. numpy.median
  16. windows server 2003 网络操作系统项目教程 特制版
  17. python樱花树代码_Python画樱花树
  18. 1.2 webstorm设置pug自动编译
  19. 头同尾合十的算法_头同尾合十的计算规律
  20. 你见过的最全面的Python重点知识总结

热门文章

  1. Python多进程multiprocess之多进程返回值获取
  2. SAP R/3系统技术
  3. 多部门多地区精准施策,中小企业数字化转型进入政策共振期
  4. python画蝴蝶结_HSK东西
  5. python蝴蝶代码_快速数论变换(NTT)及蝴蝶操作构造详解
  6. 浏览器读取超级狗(superdog)实现身份认证(前端)
  7. SRE运维工程师笔记-文本处理工具
  8. 使用cpolar轻松创建立个人云盘
  9. 贸联控股三度蝉联《亚元杂志》2021年“亚洲汽车及零组件业杰出公司”
  10. 即将被281亿个传感器包围,你却还没弄懂物联网技术?