MobileNet系列之MobileNet_v2

MobileNet系列之MobileNet_v1微信

Inception系列之Inception_v1网络

Inception系列之Batch Normalization函数

Inception系列之Inception_v2-v3学习

Inception系列之Inception_v4spa

导言:3d

    MobileNet_v2提出了一些MobileNet_v1存在的一些问题,并在此基础上提出了改进方案。其主要贡献为提出了线性瓶颈(Linear Bottlenecks)和倒残差(Inverted Residuals)。orm

 

01 Linear Bottlenecksblog

    如上图所示,MobileNet_v2提出ReLU会破坏在低维空间的数据,而高维空间影响比较少。所以,在低维空间使用Linear activation代替ReLU。以下图所示,通过实验代表,在低维空间使用linear layer是至关有用的,由于它能避免非线性破坏太多信息。token

    此外,若是输出是流形的非零空间,则使用ReLU至关因而作了线性变换,将没法实现空间映射,所以MobileNet_v2使用ReLU6实现非零空间的非线性激活。get

    上方提出使用ReLU会破坏信息,这里提出ReLU6实现非零空间的非线性激活。看起来有些难以理解。这里提出我本身的理解。

    根据流形学习的观点,认为咱们所观察到的数据其实是由一个低维流形映射到高维空间的。因为数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度的维度就能惟一的表示。

    

图像分布是在高维空间,神经网络中使用非线性激活函数实现将高维空间映射回低维流形空间。而这里提出使用ReLU6即增长了神经网络对非零空间的映射,不然,在非零空间使用ReLU至关于线性变换,没法映射回流形低维空间。而前文提出的使用线性激活函数来代替ReLU是在已经映射后的流形低维空间。

    区别就是ReLU6是在将高维空间映射到流形低维空间时使用,Linear layer是在映射后的流形低维空间中使用。

    其使用的以下表所示

 

02 Inverted Residuals

MobileNet_v1中的结构以下左图,MobileNet_v2以下右图。、

    MobileNet_v2是在2018年发表的,此时ResNet已经出来了,通过几年的普遍使用代表,shortcut connection和Bottlenck residual block是至关有用的。MobileNet_v2中加入了这两个结构。

    但不一样的是,ResNet中的bottleneck residual是沙漏形的,即在通过1x1卷积层时降维,而MobileNet_v2中是纺锤形的,在1x1卷积层是升维。这是由于MobileNet使用了Depth wise,参数量已经极少,若是使用降维,泛化能力将不足。

    此外,在MobileNet_v2中没有使用池化来降维,而是使用了步长为2的卷积来实现降维,此外如上图所示,步长为2的block没有使用shortcut connection。

这里的t是膨胀因子,取6。

 

    Inverted residuals block 与ResNet中的residuals block对好比下图所示:

图来源于网络

    ResNet中residual block是两端大,中间小。而MobileNet_v2是中间大,两端小,恰好相反,做者把它取名为Inverted residual block。

 

    总体结构以下图所示:

 

    论文里提到Bottleneck有19层,但其给出的结构图中却只有17层。

    MobileNet_v2相比与MobileNet_v1,参数量有所增长,主要增长在于Depth wise前使用1x1升维。此外,在CPU上的推理速度也比后者慢,但精度更高。

 

本文来源于微信公众号“ CV技术指南 ” 。如有错误或疑问,欢迎在公众号中留言指出。

欢迎关注公众号“CV技术指南”,主要进行计算机视觉方向的论文解读,最新技术跟踪,以及CV技术的总结。

相关文章
相关标签/搜索