小网络之mobilenet V2

论文简介

  • 地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks
  • 论文提出了一种inverted residual structure的网络结构,借鉴residual nwtwork的思想,但是其中的卷积branch是首先扩展,再压缩,防止RELU造成数据信息的坍塌。
  • 论文基于MMNet V2,展开了detection和semantic segmentation的实验,泛化能力很好。

introduction

  • 论文主要的contribution就是提出了一个新的layer模块:inverted residual with linear bottleneck。它会将低维的输入表征首先expand到高维空间中,然后使用depthwise convolution进行滤波,最后再映射到低维表征空间中。
  • 在进行卷积操作时,和mobilenet V1相同,将常规的卷积拆分为depthwise和pointwise的convolution,减少计算量。
  • 提出的模型非常适合移动设备,因为inference过程中,没有很大的tensor,参数量也很小。

method

depthwise separable convolution

  • 跟mobilenet V1中的操作相同,将regular convolution拆分开,减少参数量,具体可以看之前的mobilenet中的介绍。

Linear Bottlenecks

  • 作者做了一些实验,验证了,在低维空间中,RELU会造成低维数据坍塌,而在高维空间中,则不会造成这种问题(没有使用公式等去证明)。
  • 在之前的V1中,引入超参数,可以调节通道的数量,但是此时如果在feature layer后面加上一个RELU激活函数等,会导致信息丢失,为了避免这种问题,V2在低维的bottleneck输出时,后面不加上RELU激活函数,相当于直接经过线性处理之后输出,因此是Linear Bottlenecks

Inverted residuals

  • 在传统的residual结构中,输入会首先经过1X1的pointwise convolution和RELU,之后再经过3X3的depthwise convolution和RELU,最后再经过1X1的pointwise convolution和RELU,得到最终的branch输出。在这个过程中feature layer首先进行姜维,然后再升维到和输入的维度相同,再和输入直接相加,得到最终residual block的输出。(使用residual而非VGG的原因是防止网络层中的参数0对输出没有影响)
  • inverted residual是首先对输入的维度进行expand,升到高维空间,经过RELU之后,在经过DWise和RELU,与输入相加之后,得到inverted residual的输出。这个维度扩展的系数称为expansion factor。这会避免在降维时造成信息的缺失。
  • 理解的reference:https://blog.csdn.net/u014380165/article/details/79200958

model architecture

  • 论文中是Table 2

MobileNetV2

experiment

  • 作者做了目标分类,基于SSD,开发了SSDLite用于detection,基于Deeplabv3用于语义分割,速度很快的同时,精度也没有太大的降低,泛化能力很好。