【论文阅读笔记】Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classification(又一次太长了写不开...)

(一)论文地址:

《Inverted Residuals and Linear Bottlenecks: Mobile Networks for Classifification, Detection and Segmentation》

(二)MobileNets_v2 解决的问题:

2017年作者提出了MobileNets_v1,其核心是将常规的卷积层分解成一个 d e p t h w i s e depthwise s e p a r a b l e separable c o n v o l u t i o n s convolutions (深度分离卷积层,简称 D W c o n v DWconv )和一个 p o i n t w i s e pointwise c o n v o l u t i o n s convolutions (即 1 × 1 1×1 卷积核大小的卷积层,简称 P W c o n v PWconv ),从而有更小的参数,并且计算消耗更少;

详细介绍可以看我的这一篇博客:
【论文阅读笔记】MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

常规的卷积操作如图:

在这里插入图片描述

经过MobileNets_v1分解后的结构如图:

在这里插入图片描述
即(其中ReLU6表示将特征层的值限制在 0 6 0-6 区间内):
在这里插入图片描述
但是在实际训练时,作者发现 D W c o n v DWconv 中有许多卷积核是空的(全为 0 0 ):
在这里插入图片描述

这些空卷积核占用了训练和使用时的内存,却不会对特征提取中起到任何作用;

为了解决这个问题,作者提出了 MobileNets_v2;

(三)MobileNets_v2 的核心思想:

MobileNets_v2 的核心思想是:

  1. P W c o n v PWconv 中的 ReLU 换成线性变换(Linear),称之为 Linear Bottleneck;
  2. 使用了反残差结构(Inverted Residuals),即不同于 ResNet 的先收缩在膨胀的残差结构,这里先膨胀后收缩;

(四)ReLU 函数的缺陷:

MobileNets_v2 的作者认为,这些空卷积是由ReLU函数引起的:
在这里插入图片描述
在之前的研究中表明,相比于 tanh 和 sigmoid 函数,ReLU 在反向传播过程中计算量更少;

并且, tanh 和 sigmoid 在接近饱和区时,由于导数趋近于 0 ,会导致信息丢失和模型难以收敛;

以及,ReLU 会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释);

但是,作者提出了两个新的观点:

  1. 如果特征仍能在 ReLU 转换之后够被保留(即为非零),那么 ReLU 的作用跟线性变换相同;
  2. ReLU 能够保持输入信息的完整性,但仅限于输入特征位于输入空间的低维子空间中;

第一个观点很好理解;

第二个观点作者给出了图示:

在这里插入图片描述

即假设输入是一个低维(2D)的螺线结构的数据:
在这里插入图片描述

我们使用矩阵 T T (相当于卷积层)将它转换成高维数据(维度为 n n ),再用 ReLU 函数转换;

我们再用 矩阵 T 1 T^{-1} 将高维数据转换成 2D 数据,对于不同的维度 n n ,结果如图:

在这里插入图片描述
可以看到,对于向低维数据变换(维度 n = 2 , 3 n=2,3 ),有很大一部分信息已经丢失了;

而当维度 n = 15 , 30 n=15,30 时,大部分信息还是被保留下来了;

因此作者认为,在低维数据转换时应该将 ReLU 函数转换成 Linear 变换,在高维数据转换时可以保留 ReLU 函数,从而增加模型的鲁棒性;

(五)Linear Bottleneck:

基于以上理论,作者提出了 MoblieNets_v2 的基本结构,取消了模块中第二个 P W PW c o n v conv 的 ReLU 变换,并采取了 扩张->卷积->压缩 的瓶状结构,称之为 Linear Bottleneck:

在这里插入图片描述

注意在这些模块相互连接时, ( c ) (c) ( d ) (d) 是等效的,因此下面默认以 ( d ) (d) 为例;

用图示表述为:

在这里插入图片描述

(六)Inverted Residuals:

在这里插入图片描述

这里也采用了 ResNet 的残差结构,不过不同于 压缩->卷积->扩张 的结构,MobileNets_v2 采用了扩张->卷积->压缩 的相反结构:

在这里插入图片描述
用表格表示为:

在这里插入图片描述

其中:

  1. h h w w 分别是输入特征图的高和宽;
  2. k k k k^{'} 分别是输入和输入的 c h a n n e l s channels
  3. t t 是膨胀率,即中间层的 c h a n n e l s channels 是输入层的 t t 倍,文中取 t = 6 t=6
  4. s s D W c o n v DWconv 的步长;

(七)MoblieNets 的网络结构:

在这里插入图片描述

其中:

  1. t t 是膨胀率;
  2. c c 是输入特征图的 c h a n n e l s channels
  3. n n 是结构单元重复的次数;
  4. s s 是步长;

注意步长 s s 1 , 2 1,2 时结构有所不同:

在这里插入图片描述

(八)MobileNets 的应用及实验结果:

1. 图像识别:

在这里插入图片描述

2. 目标检测——SSDLite:

在这里插入图片描述
在这里插入图片描述

3. 语义分割——MobileNet DeepLabv3:

在这里插入图片描述

发布了105 篇原创文章 · 获赞 128 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44936889/article/details/104119040