码迷,mamicode.com
首页 > Web开发 > 详细

[论文阅读]MobileNetV2: Inverted Residuals and Linear Bottlenecks

时间:2018-07-31 15:10:37      阅读:590      评论:0      收藏:0      [点我收藏+]

标签:strong   信息   The   恢复   没有   ati   介绍   htm   能力   

 0.      本文贡献点

 

  本文的主要贡献点是一个构造了一个结构,称为the inverted residual with linear bottleneck。该结构与传统的residual block中维度先缩减后扩增相反,而是先将输入的低维feature map扩增到高维,然后用depthwise convolution方式做卷积运算,然后再使用一个线性的卷积将其映射到低维空间中。

  Depthwise Separable Convolutions原理可以参考这篇文章

 

 1.      Inverted residual block简单介绍

 技术分享图片

  如上图,左边(a)图的传统的residual block,先用1x1卷积将输入的feature map的维度降低,然后进行3x3的卷积操作,最后再用1x1的卷积将维度变大。右边(b)图即为本文提出的结构,先用1x1卷积将输入的feature map维度变大,然后用3x3 depthwise convolution方式做卷积运算,最后使用1x1的卷积运算将其维度缩小。注意,此时的1x1卷积运算后,不再使用ReLU激活函数,而是使用线性激活函数,以保留更多特征信息,保证模型的表达能力。

         该block具体结构如下:

技术分享图片

 

 技术分享图片

 

 

 

  当stride=1时,block内会有short cut;而当stride=2时,block没有short cut。

 

2.      MobileV2V1的区别

  下图是MobileNetV2与MobileNetV1的区别(原图链接):

 技术分享图片

主要区别有两点:

(1)Depth-wise convolution之前多了一个1*1的“扩张”层,目的是为了提升通道数,获得更多特征;

(2)最后不采用Relu,而是Linear,目的是防止Relu破坏特征。

 

 

MobileNetV2相关资料:

  1. MobileNet V2 论文初读
  2. [论文笔记](MobileNet V2)Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification, Detection and Segmentation
  3. 知乎关于MobileNetV2的讨论

附:

下面段落摘自第二篇文章。

 

  1.       Intuition

 技术分享图片

 

  如上图所示,利用MxN的矩阵B将输入张量(2维,即N=2)变换到M维的空间中,通过ReLU后(y=ReLU(Bx)),再用此矩阵逆恢复原来的张量(即从M维空间变换回2维空间)。可以看到,当M较小时,恢复后的张量坍缩严重,M较大时则恢复较好。

  这意味着,在较低维度的张量表示上进行ReLU等线性变换会有很大的信息损耗。因而本文提出使用线性变换替代Bottleneck的激活层,而在需要激活的卷积层中,使用较大的M使张量在进行激活前先扩张,整个单元的输入输出是低维张量,而中间的层则用较高维的张量。

 

2.      MobileNetV2网络

  MobileNetV2网络结构如下:

 技术分享图片

  网络的性能如下:

 技术分享图片

 

[论文阅读]MobileNetV2: Inverted Residuals and Linear Bottlenecks

标签:strong   信息   The   恢复   没有   ati   介绍   htm   能力   

原文地址:https://www.cnblogs.com/hejunlin1992/p/9395345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!