MobileNet V2

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

论文链接:https://arxiv.org/abs/1801.04381

文章提出的MobileNet V2是对MobileNetV1的改进。


创新点:

1.Inverted resdual block。传统的Residual block是先经过一个1*1的Conv layer,把feature map的通道数缩减下来,减少接下来3*3Conv layer的计算量,最后在经过1*1扩增并和输入相加。

而现在我们中间的3*3卷积变Depthwise,计算量急剧缩减,提升通道数会使得结果更好,固先通过1*1卷积提升通道数,在Depthwise 3*3Conv,最后经过1*1卷积降低维度并和输入相加(如果dwise 的stride不为1,不采用shoutcut).

2.Linear Bottlenecks。去掉了Elitwise sum之前1*1conv的非线性激活层(relu6,以便于移动端设备低精度的时候)。其实在Xception已经验证了Depthwise卷积后在在加Relu效果会变差,作者猜想可能是Depthwise的输出太浅容易带来信息丢失。



算法解析:

1.Inverted resdual block

MobileNet V1主要是引入了depthwise separable convolution来实现spatial和channel的解耦,减少了参数量以及运算量,而在网络结构上采用了vgg堆叠的方式。MobileNet V2采用了Resnet,DenseNet等网络结构,通过复用图像特征,使用concat/eltwise等操作进行融合,提高网络。

                                       

Depthwise conv确确实实大大降低了计算量,但同时引来了特征退化问题。Dwise的group trick加上Relu的影响,使得神经元很容易输出为0(无法恢复),在文章中,google解释了特征/神经元退化问题,对特征可视化。

          

Inverted residual block的优点:

缓解了特征退化问题:通过1*1升维提高Inputdim来缓解特征的退化情况。MobileNet v1中提到用width multiplier来缩减模型通道的缩减,这样特征信息更加集中在缩减后的特征通道,经过Relu会有更大的损失,MobileNet V2就是通过提高Inputdim缓解了dwise后面接非线性激活层带来的影响。论文中提到的一个合理解释是:对于Dwise conv,其特征是单channle的,所以非线性有害,可能造成了信息丢失。

提高了网络效率:ResidualNet是两头大,中间小,eletwise操作的两头都是channel数目很高的feature-map,带宽比较吃紧。inverted redidual变成两头小,中间大的结构,eltwise两头连接的feature map channel数目变小,省带宽。

2.Linear Bottlenecks。

文中大量的篇幅解释了去掉Elitwise sum之前1*1conv的非线性激活层带来的影响,总之,结论就是去掉效果更好。

左边图(a)是关于non-linearity的效果(蓝色曲线),证明了Linear Bottlenecks的有效性.右边图(b)是关于inverted residual(蓝色曲线)和传统residual(绿色曲线)的差别,证明了inverted residual的有效性.

      


MobileNet网络结构:

                                                 

其中:t表示扩张倍数,c表示输出通道,n表示重复次数,s表示步长。


实验结果:

                                               

猜你喜欢

转载自blog.csdn.net/weixin_41172694/article/details/84540964