MobileNetV1、V2、V3总结

内容如下:

  • MobileNetV1,V2,V3总结

  • 补充

MobileNet V1

MobileNet v1就是把VGG中的卷积都换成了深度可分离卷积,还有一个不同是采用的是ReLU6,这个激活函数在6的时候有一个边界,论文中提到说这样“可以在低精度计算下具有更强的鲁棒性”。

MobileNetV1、V2、V3总结_第1张图片

MobileNet V1网络结构如下: 

MobileNetV1、V2、V3总结_第2张图片

 

MobileNet V2

不少学者发现在深度卷积中,不少卷积核是空的,这也就说明有不少没有参与运算。而v2的作者认为,这种情况主要是因为ReLU的原因。也解释了ReLU在低维空间运算中会损失很多信息,而在高维空间中会保留很多有用信息。因此就提出了the inverted residual with linear bottleneck

Linear Bottleneck:就是把PW的ReLU6都换成了线性函数。
Expansion layer:然而DW(depthwise Conv)仍然没有扩张通道的能力,DW还是只能在低维度上工作,因此在DW之前加了一个PW(pointwise Conv d=6)用来**“扩张”**通道。
Inverted residuals:在深度可分离卷积中又加入了一个shortcut。
 

Inverted residual与Residual block对比:(1、维度先升后降,2、用深度可分离卷积,3、用线性激活函数) Inverted residual是先进行升维,再接dw layer+relu,最后在降维+linear,并且还做了shortcut connection,Residual block是先降维,再接卷积+relu,最后再升维,降维的目的是减少计算量。

MobileNetV1、V2、V3总结_第3张图片

 

MobileNet V1与V2的对比:V2加入了shortcut连接,扩充了维度,并且在输出端pointwise卷积用了线性激活而不是Relu 

MobileNetV1、V2、V3总结_第4张图片 MobileNetV1、V2、V3总结_第5张图片

MobileNet V2网络结构:

MobileNetV1、V2、V3总结_第6张图片

 

MobileNet V3

使用了NAS(神经网络架构搜索)

引入基于squeeze and excitation结构的轻量级注意力模型(SE)

加入h-swish激活函数

网络首尾做了些细节上的创新,用了5*5的卷积

 

MobileNetV3 block(加入SE模块):

MobileNetV1、V2、V3总结_第7张图片

 

swish:

h-swish: 

sigmodi与h-sigmoid,swish与h-swish效果: 

MobileNetV1、V2、V3总结_第8张图片

 

在网络结构上的改进: 对于网络首尾计算量大的部分进行调整缩减

对于MobileNetv2计算量大的尾部部分,实验发现最后提取特征的1*1卷积作用在7*7和1*1接受域上的准确率相同,于是移动这层卷积的位置。这样最后一个用来减小计算量的bottleneck就没有必要了,所以直接去掉了这两层。这使得总体的计算量和latency都大大降低

对于V2计算量大的第一层,因为为了提取信息使用3*3全卷积,通过使用h-swish代替relu的方式提高了精度,所以削减了第一层的filter数,从32减到16

MobileNetV1、V2、V3总结_第9张图片

 

MobileNet V3网络结构:

MobileNetV1、V2、V3总结_第10张图片

MobileNetV1、V2、V3总结_第11张图片

 

补充

分离卷积主要被分为 空间可分离卷积 和 深度可分离卷积。

空间可分离卷积: 主要是在卷积核上的操作。详细的说,是将一个33的卷积核,拆分成一个13和一个3*1。

深度可分离卷积(depthwise separable Conv):其主要划分为两步 深度卷积(Depthwise Conv)和 逐点卷积(Pointwise Conv)。

深度卷积其实就是将其对每个channel单独进行卷积。

逐点卷积就是用1*1的Conv来进行相应的特征提取

MobileNetV1、V2、V3总结_第12张图片

 

参考:https://blog.csdn.net/qq_19329785/article/details/93775126

你可能感兴趣的:(CNN网络)