MobileNet V3(2019)

创新点

1.引入SE结构

MobileNetV3 的另一个新颖想法是在核心架构中加入一种名为「Squeeze-and-Excitation」的神经网络(简称 SE-Net,也是 ImageNet 2017 图像分类冠军)。具体而言,就是通过学习来自动获取到每个特征通道的重要程度,然后依照这一结果去提升有用的特征并抑制对当前任务用处不大的特征。


MobileNet V2的bottlenet结构

MobileNet V3(2019)_第1张图片


MobileNet V3的block结构,即在V2的bottlenet结构中加入了SE结构,并且放在了depthwise filter之后,当stride == 1且 input_c == output_c 才有shortcut连接

MobileNet V3(2019)_第2张图片

 depthwise卷积不改变通道数


SE模块(注意力机制)图解

MobileNet V3(2019)_第3张图片

第一个全连接层FC1 的channel变为输入的1/4,第二个全连接层FC2不变,即等于池化后的通道数

要用FC2的输出(经过H-sig激活函数)去乘全局平均池化前的输出,相当于给此输出一个权重

2、修改尾部结构

在mobilenetv2中,在avg pooling之前,存在一个1x1的卷积层,目的是提高特征图的维度,更有利于结构的预测,但是这其实带来了一定的计算量了,所以这里作者修改了,将其放在avg pooling的后面,首先利用avg pooling将特征图大小由7x7降到了1x1,降到1x1后,然后再利用1x1提高维度,这样就减少了7x7=49倍的计算量。

为了进一步的降低计算量,作者直接去掉了前面纺锤型卷积的3x3以及1x1卷积,进一步减少了计算量,就变成了如下图第二行所示的结构,作者将其中的3x3以及1x1去掉后,精度并没有得到损失。这里降低了大约15ms的速度。

MobileNet V3(2019)_第4张图片

3、修改channel数量 

修改头部卷积核channel数量,mobilenet v2中使用的是32 x 3 x 3,作者发现,其实32可以再降低一点,所以这里作者改成了16,在保证了精度的前提下,降低了3ms的速度。作者提供了两个版本的v3,分别是large和small,对应于高资源和低资源的情况。两者都是使用NAS进行搜索出来的

MobileNet V3(2019)_第5张图片

MobileNet V3(2019)_第6张图片

exp size:Inverted Residuals(倒残差结构)中1*1升维(PW)的卷积核个数

#out:Inverted Residuals(倒残差结构)中1*1降维(PW)的卷积核个数

NL:激活函数。hs:h-swish激活函数;RE:Relu6激活函数

4、非线性变换(新激活函数)的改变

作者发现一种新出的激活函数swish x(如下) 能有效改进网络精度,但是计算量太大了。

作者使用ReLU6(x+3)/6来近似替代sigmoid,进行了速度优化,具体如下:

ReLU6(x) = min(max(x, 0), 6)

你可能感兴趣的:(经典神经网络结构,神经网络)