论文:Inverted Residuals and Linear Bottlenecks Mobile Networks for Classification, Detection and Segmentation
链接:https://128.84.21.199/abs/1801.04381
第三方代码(可用于在ImageNet数据集上训练):https://github.com/miraclewkf/MobileNetV2-PyTorch
这篇文章提出的MobileNet V2是之前MobileNet V1的改进版。MobileNet V1中主要是引入了depthwise separable convolution代替传统的卷积操作,相当于实现了spatial和channel之间的解耦,达到模型加速的目的,整体网络结构还是延续了VGG网络直上直下的特点,具体可以参考博客:MobileNet。和MobileNet V1相比,MobileNet V2主要的改进有两点:1、Linear Bottlenecks。也就是去掉了小维度输出层后面的非线性激活层,目的是为了保证模型的表达能力。2、Inverted Residual block。该结构和传统residual block中维度先缩减再扩增正好相反,因此shotcut也就变成了连接的是维度缩减后的feature map。接下来分别介绍这两部分内容。
第一部分是Linear Bottlenecks
在MobileNet V1中除了引入depthwise separable convolution代替传统的卷积,还做了一个实验是用width multiplier参数来做模型通道的缩减,相当于给模型“瘦身”,这样特征信息就能更集中在缩减后的通道中,但是如果此时加上一个非线性激活层,比如ReLU,就会有较大的信息丢失,因此为了减少信息丢失,就有了文中的linear bottleneck,意思就是bottleneck的输出不接非线性激活层,所以是linear,而什么是bottleneck的输出?就是维度缩减那一层的输出。原文是这么说的:assuming the manifold of interest is l