网络优化之MobileNetV2

版权声明:人工智能/机器学习/深度学习交流QQ群:811460433 , 微信公众号:程序员深度学习 https://blog.csdn.net/sinat_24143931/article/details/86305220
人工智能/机器学习/深度学习交流QQ群:116270156
也可以扫一扫下面二维码加入微信群,如果二维码失效,可以添加博主个人微信,拉你进群

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

1. 创新点

这篇文章提出的MobileNet V2是之前MobileNet V1的改进版。MobileNet V1中主要是引入了depthwise separable convolution代替传统的卷积操作,相当于实现了spatial和channel之间的解耦,达到模型加速的目的,整体网络结构还是延续了VGG网络直上直下的特点,具体可以参考博客:MobileNetV1。MobileNet V2主要有以下两个创新点:

  1. Inverted residuals,通常的residuals block是先经过一个11的Conv layer,把 feature map 的通道数“压”下来,再经过33 Conv layer,最后经过一个1*1 的Conv layer,将feature map 通道数再“扩张”回去。即先“压缩”,最后“扩张”回去。
    而 inverted residuals就是 先“扩张”,最后“压缩”。为什么这么做呢?请往下看。
  2. Linear bottlenecks,为了避免Relu对特征的破坏,在residual block的Eltwise sum之前的那个 1*1 Conv 不再采用Relu,为什么?请往下看。

1.1 MobileNetV2 和 V1的不同点

先看看MobileNetV2 和 V1之间有啥不同:
在这里插入图片描述
有以下三点不同:

  1. Depth-wise convolution之前多了一个1*1的“扩张”层,目的是为了提升通道数,获得更多特征;
  2. 最后不采用Relu,而是Linear,目的是防止Relu破坏特征。
  3. MobileNet-V1 最大的特点就是采用depth-wise separable convolution来减少运算量以及参数量,而在网络结构上,没有采用shortcut的方式。 Resnet及Densenet等一系列采用shortcut的网络的成功,表明了shortcut是个非常好的东西,于是MobileNet-V2就将这个好东西拿来用。

补充:shortcut的好处

1.2 MobileNetV2 和 ResNet的不同点

再看看MobileNetV2的block 与ResNet 的block:
在这里插入图片描述
主要不同之处就在于,ResNet是:压缩”→“卷积提特征”→“扩张”,MobileNetV2则是Inverted residuals,即:“扩张”→“卷积提特征”→ “压缩”

2. MobilenetV2网络结构

参考:
https://github.com/austingg/MobileNet-v2-caffe
在这里插入图片描述
其中:t表示“扩张”倍数,c表示输出通道数,n表示重复次数,s表示步长stride。
先说两点有误之处吧:

  • 第五行,也就是第7~10个bottleneck,stride=2,分辨率应该从28降低到14;如果不是分辨率出错,那就应该是stride=1;
  • 文中提到共计采用19个bottleneck,但是这里只有17个。

Conv2d 和avgpool和传统CNN里的操作一样;最大的特点是bottleneck,一个bottleneck由如下三个部分构成:
在这里插入图片描述
这就是之前提到的inverted residuals结构,一个inverted residuals结构的计算量是
在这里插入图片描述
特别的,针对stride=1 和stride=2,在block上有稍微不同,主要是为了与shortcut的维度匹配,因此,stride=2时,不采用shortcut。 具体如下图:
在这里插入图片描述
可以发现,除了最后的avgpool,整个网络并没有采用pooling进行下采样,而是利用stride=2来下采样,此法已经成为主流,不知道是否pooling层对速度有影响,因此舍弃pooling层?是否有朋友知道那篇论文里提到这个操作?

看看MobileNet-V2 分类时,inference速度:
在这里插入图片描述
这是在手机的CPU上跑出来的结果(Google pixel 1 for TF-Lite)

同时还进行了目标检测和图像分割实验,效果都不错,详细请看原文。

3. 最后

欢迎大家扫一扫下面二维码加入微信交流群,如果二维码失效,可以添加博主个人微信,拉你进群

猜你喜欢

转载自blog.csdn.net/sinat_24143931/article/details/86305220