MobileNet V2论文记录

mac2025-04-01  6

概述

MobileNet V1的问题 MobileNet V1的结构非常简单,是类似VGG一样的直筒型。这种结构的性价比不高,后续一系列的ResNet,DenseNet等结构证明了通过特征复用可以极大的提高网络的性价比。Depthwise Conv确实大大减少了我们的计算量。在实际使用的时候,我们发现Depthwise部分的kernel比较容易训练废掉,训练之后发现Depthwise训练出来的kernel有不少都是空的。因为Depthwise每个kernel dim相对于普通Conv要小的多,过于小的kernel dim加上ReLU的激活影响下,使得神经元输出很容易变为0,所以就学废了。ReLU对于0的输出的梯度维0,所以一旦陷入0输出,就没法恢复了。我们还发现,这个问题在定点化低精度训练的时候会进一步放大。 结构特点 主要架构还是将MobileNet V1和残差网络ResNet的残差单元结合起来,用Depthwise Convolution代替残差单元的bottleneck,最重要的是和residual block相反,通常的residual block先是经过1 * 1卷积,降低特征图通道数,任何再进行3 * 3卷积,最后重新经过1 * 1卷积将特征图的通道数扩张回去。MobileNet V2中间的3 * 3卷积变成Depthwise,计算量很少,所以先经过一个1 * 1的卷积层把特征通道数进行扩张,目的为了提升通道数,获取更多的特征,再进行3 * 3深度卷积,再使用1 * 1卷积进行通道压缩。而且为了避免ReLU对特征的破坏,用线性层替换通道数较少层后的ReLU非线性激活。

MobileNet V2创新点

Inverted Residual Block MobileNet V1没有很好利用Residual Connection,而Residual Connection通常情况下很好,所以MobileNet V2加上。与之前的residual block相反,采用先升维再降维的方法,这样做的理由是MobileNet V2将residual block的bottleneck替换为Depthwise Convolution,Depthwise Convolution因为其参数少,提取的特征就会相对少,如果再进行压缩的话,能提取的特征就更加的少,所以MobileNet V2就执行了扩张-卷积特征提取-压缩的过程。 Linear Bottlenecks

ReLU会对通道数较低的张量造成较大的信息损耗如下图,当原始输入维度增加到15以后再加ReLU,基本不会丢失太多信息,但如果只把原始输入维度增加到2-5之后再加ReLU,就会出现较为严重的信息损失。 因此执行降维的卷积层后面不会接类似于ReLU这样的非线性激活层。 ReLU是如何损失特征的?因为ReLU的特性使得对于负值输入,其输出为0,而且降维本身就是特征压缩的过程,这样就使得特征损失更为严重。

总结

(1)对于ReLU输出非零值,ReLU仅仅起到一个线性变换的作用。 (2)如果输入流形可以嵌入到激活空间的一个显著的低维子空间中,ReLU就可以保留信息。

网络结构

t是输入通道的倍乘系数(即之间部分的通道数是输入通道数的多少倍) n是该模块的重复次数 c是输出通道数 s是该模块的步长stride 它与之前的网络有很多相似的地方,比如上来先使用普通conv进行既基础特征提取,然后再使用新颖的residual module一级一级处理,特征图尺寸越来越小,但其通道数不断增加。 最后除了avgpool,整个网络并没有采用pooling进行下采样,而是利用stride=2来下采样。关于舍弃pooling层,在MobileNet V1中就提到了,说是因为模型小不容易出现过拟合的问题,反而更容易出现欠拟合的问题,加入pooling层容易丢失有用信息,增加模型欠拟合的可能性。

Conv2d和avgpool和传统CNN里的操作一样,最大的特点是bottleneck,一个bottleneck有如下三个部分组成:可以看出residual module内部上来先是一个bottleneck layer,它不像之前意义上bottleneck那样寻求减少输入通道数目,因为它输入特征图的通道数目已经很少了,而是对特征图进行通道扩张,这里的扩展系数为t,最后3 * 3conv再进行卷积操作,然后再以一个1 * 1conv的缩减进行输出。整体而言它的输入通道数目为k,输出则为k‘。 上图是MobileNet V1的基本结构没有带Residual Connection并且最后带有ReLU。 上图是MobileNet V2结构,针对stride=1和stride=2,在block上稍有不同,主要是为了与shortcut的维度匹配,因此stride=2时,不采用shortcut。并且去掉了最后的ReLU,改为线性Linear。

实验结果

通过Inverted residual block这个新结构,可以用较少的计算量得到较高的精度,适用于移动端的需求,在ImageNet上的准确率如下: 对于低维空间而言,进行线性映射会保存特征,而非线性映射会破坏特征。

优秀博客链接:https://www.jianshu.com/p/4c9404d4998c https://blog.csdn.net/u011995719/article/details/79135818#commentBox

最新回复(0)