【CNN优化加速】02轻量化模型:MobileNet v1-v3、ShuffleNet v1-v2、EfficientNet v1-v2简介

前一篇博文介绍了CNN优化加速的一些基础理论,包括卷积相关的基础知识,常见的CNN模型加速策略(知识蒸馏、量化、剪枝以及设计更轻的网络架构等)

【CNN优化加速】01模型压缩基础:常见策略、卷积相关概念_TianleiShi的博客-CSDN博客

本篇博文针对轻量化网络设计问题展开,首先总结了常见的三个轻量化网络亮点,其次具体介绍每个网络的设计思路。


常见轻量化网络亮点对比

【CNN优化加速】02轻量化模型:MobileNet v1-v3、ShuffleNet v1-v2、EfficientNet v1-v2简介_第1张图片

 

MobileNet 网络

MobileNet v1

背景:模型权重大小:VGG16(490M);ResNet152(644M)无法在移动设备和嵌入式设备上运行。而本文要学习的MobileNet网络是专注于移动端或者嵌入式设备中的轻量级CNN网络。相比传统卷积神经网络,在准确率小幅降低的前提下大大减少模型参数与运算量。(相比VGG16准确率减少了0.9%,但模型参数只有VGG的1/32)

 1. 深度可分离卷积(Depthwise Separable Conv)

把标准卷积分解成深度卷积(depthwise convolution)逐点卷积(pointwise convolution)。这么做的好处是可以大幅度降低参数量和计算量

 2. 两个超参数α,β

在mobilenetv1原论文中,还提出了两个超参数,一个是α一个是β。α参数是一个倍率因子,用来调整卷积核的个数(网络宽度),β是控制输入网络的图像尺寸参数(图像分辨率),下图右侧给出了使用不同α和β网络的分类准确率,计算量以及模型参数:

MobileNet v2

MobileNet v2网络是由google团队在2018年提出的,相比MobileNet V1网络,准确率更高,模型更小。

1. 倒残差结构(Inverted residual block)

  • 刚刚说了MobileNet v1网络中的亮点是DW卷积,那么在MobileNet v2中的亮点就是Inverted residual block(倒残差结构),如下下图所示,左侧是ResNet网络中的残差结构,右侧就是MobileNet v2中的倒残差结构
  • 在残差结构中是1x1卷积降维->3x3卷积->1x1卷积升维,在倒残差结构中正好相反,是1x1卷积升维->3x3DW卷积->1x1卷积降维
  • 为什么要这样做,原文的解释是高维信息通过ReLU激活函数后丢失的信息更少(倒残差结构中基本使用的都是ReLU6激活函数,但是最后一个1x1的卷积层使用的是线性激活函数,也是为了降低信息损失)

【CNN优化加速】02轻量化模型:MobileNet v1-v3、ShuffleNet v1-v2、EfficientNet v1-v2简介_第2张图片

2. ReLU6激活函数

  • 为了在移动端设备float16的低精度的时候,也能有很好的数值分辨率
  • 如果对ReLU的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地精确描述如此大范围的数值,带来精度损失
  •  RELU和RELU6的区别在于是否将大于6的数截断为6,RELU6可以在训练阶段将权重都限制在一个比较小的范围内,这样在低精度的边缘设备上也能够稳定的运行(鲁棒性)

MobileNet v3

1. 更新Block(加入SE模块,更新激活函数)

  • SE模块

【CNN优化加速】02轻量化模型:MobileNet v1-v3、ShuffleNet v1-v2、EfficientNet v1-v2简介_第3张图片

  •  更新激活函数:H-sig激活,对量化过程比较友好

2. 重新设计耗时层

  • 减少第一个卷积层的卷积核个数(32到16)
  • 精简last stage(平均池化操作)

【CNN优化加速】02轻量化模型:MobileNet v1-v3、ShuffleNet v1-v2、EfficientNet v1-v2简介_第4张图片

你可能感兴趣的:(CNN模型优化,cnn,深度学习,计算机视觉)