【网络结构设计】2、MobileNet 系列 | 从 V1 到 V2 再到 V3

本文会简单介绍 MobileNet 系列的主要结构

一、MobileNetv1

在这里插入图片描述

论文:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

出处:CVPR 2017 | 谷歌

贡献:

  • 提出了深度可分离卷积,将标准卷积用逐通道卷积+逐点卷积来代替
  • 能够在边端设备使用,在保证效果的同时提升速度

1.1 背景

更强的卷积神经网络一般情况下意味着更深和更宽的网络结构,但这样就会导致速度和效率的缺失,所以,MobileNet 的作者提出了一个高效的网络结构,致力于建立一个适用于移动端和嵌入式设备的网络结构。

在这里插入图片描述

1.2 方法

MobileNetV1 可以理解为把 VGG 中的标准卷积层换成深度可分离卷积

1.2.1 深度可分离卷积 Depthwise Separable Convolution

在这里插入图片描述

深度可分离卷积是 MobileNet 的一个非常重要的核心点

深度可分离卷积由两部分构成:

  • depthwise convolution:每个卷积核负责一个输入通道的卷积,图 2b
  • pointwise convolution:1x1xC 的形式,对 depthwise 得到的卷积特征进行点对点的特征聚合,图 2c

普通卷积是计算量:

  • 假设输入特征图 F F F D F × D F × M D_F \times D_F \times M DF×DF×M,输出特征图 G G G D G × D G × N D_G \times D_G \times N DG×DG×N
  • 普通卷积核 K K K 的参数量为 D K × D K × × M × N D_K \times D_K \times \times M \times N DK×DK××M×N
  • 普通卷积核的计算量为 D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F DKDKMNDFDF

深度可分离卷积的计算量:

  • 输入特征图 F F F D F × D F × M D_F \times D_F \times M DF×DF×M,输出特征图 G G G D G × D G × N D_G \times D_G \times N DG×DG×N
  • 首先对每个通道分别使用一个卷积核进行特征提取,计算量为 D K ⋅ D K ⋅ M ⋅ D F ⋅ D F D_K \cdot D_K \cdot M \cdot D_F \cdot D_F DKDKMDFDF
  • 然后对得到的特征图使用 1x1 的卷积核进行特征融合,计算量为 M ⋅ N ⋅ D F ⋅ D F M \cdot N \cdot D_F \cdot D_F MNDFDF
  • 总的计算量为: D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D_K \cdot D_K \cdot M \cdot D_F \cdot D_F + M \cdot N \cdot D_F \cdot D_F DKDKMDFDF+MNDFDF

故使用深度可分离卷积的计算量和普通卷积的计算量之比如下:

D K ⋅ D K ⋅ M ⋅ D F ⋅ D F + M ⋅ N ⋅ D F ⋅ D F D K ⋅ D K ⋅ M ⋅ N ⋅ D F ⋅ D F = 1 N + 1 D K 2 \frac{D_K \cdot D_K \cdot M \cdot D_F \cdot D_F + M \cdot N \cdot D_F \cdot D_F}{D_K \cdot D_K \cdot M \cdot N \cdot D_F \cdot D_F} = \frac{1}{N} + \frac{1}{D_K^2} DKDKMNDFDFDKDKMDFDF+MNDFDF=N1+DK21

1.2.2 网络结构

在这里插入图片描述

MobileNetV1 的结构如表 1 所示,下采样是使用步长为 2 的卷积实现的,共 28 层

在这里插入图片描述

1.3 效果

在这里插入图片描述

二、MobileNetv2

在这里插入图片描述

论文:MobileNetV2: Inverted Residuals and Linear Bottlenecks

出处:CVPR 2018 | 谷歌

贡献:

  • 提出了倒残差结构:先 1x1 升维,使用 3x3 提取特征,最后再 1x1 降维,和残差结构的先降维后升维的结构是反的
  • 提出了线性瓶颈

2.1 背景

MobileNetV2 是在 V1 基础上的提升,在移动设备上不增加额外参数的情况下,效果带来了提升

2.2 方法

2.2.1 深度可分离卷积和倒残差结构

V2 依然使用的深度可分离卷积,深度可分离卷积相比普通卷积大约能够降低 k 2 k^2 k2 的计算量,V2 的卷积核为 3x3,所以大约比普通卷积计算量少 8~9 倍,准确率仅仅跌了很少。

在 ResNet 论文中,对于 50 层及以上的结构,作者选对其使用 1x1 卷积进行降维,然后通过 3x3 卷积提取特征,最后使用 1x1 卷积进行降维,这种操作可以降低计算量。

实验发现在 MobileNetv1 中,深度卷积核的参数较多为 0,也就是其卷积核没有发挥提取特征作用。那么作者先通过 1x1 卷积将维度上升,再使用深度卷积,深度卷积的输入输出通道数更高,就能够提取更多的信息。

在这里插入图片描述

2.2.2 线性瓶颈

线性瓶颈结构,就是末层卷积使用线性激活的瓶颈结构(将 ReLU 函数替换为线性函数),因为 ReLU 激活函数对低维信息会造成很大损失

在这里插入图片描述

在这里插入图片描述

2.2.3 模型框架

在这里插入图片描述

2.3 效果

在这里插入图片描述

在这里插入图片描述

三、MobileNetv3

在这里插入图片描述

论文:Searching for MobileNetV3

出处:ICCV 2019 | 谷歌

贡献:

  • 使用 NAS 的方法搜寻更适合移动 CPU 的结构
  • 提出了 MobileNetV3-Large 和 MobileNetV3-Small,并引入了 h-swish 和 SE 等模块进行效果优化

3.1 背景

MobileNetV3 提出的目标就是为了实现移动设备上的模型的准确率和耗时的平衡。

  • MobileNetV1 引入了深度可分离卷积,来代替传统卷积

  • MobileNetV2 引入了线性瓶颈和反残差结构,来提升速度

  • MobileNetV3 为了 NAS 来搜寻更合适的网络,并且引入了 Swish 非线性方法的优化版本 h-swish 和 SE 模块,建立更高效的网络

在这里插入图片描述

3.2 方法

3.2.1 NAS

这里使用 NAS 的目的是搜寻到更适合移动设备平台的 block 结构

3.2.2 网络优化

1、重新设计计算复杂的层

NAS 得到搜寻的结构后发现,前面几层和后面几层计算复杂度很高,做了一些修整:

  • 精简 last stage:V2 的倒残差网络,在最后一层使用的 1x1 卷积来升维,会造成很大的延时,为了降低延时和保留高维特征,移除掉了一些层,不需要使用瓶颈层来降低计算量了,如图 5 所示,降低了 7ms 延时,约占 11% 的允许时间,几乎没有精度的损失
  • 降低卷积核数量并且使用不同的激活方式来降低冗余:还有一个很大的耗时点在于初始卷积,初始的图很大,使用卷积核数量是 32 个,所以减少了第一个卷积层的卷积核个数(32—>16),并且在该层使用 hard swish 非线性激活,能在减少卷积核的个数的同时保持准确率(和使用 32 个卷积核并在该层使用 ReLU 是的效果比),计算量反而会降低,检测速度更快

在这里插入图片描述

2、非线性激活的改进

swish 的形式如下:

在这里插入图片描述

使用 swish 的有个问题,sigmoid 函数计算量很大,所以 V3 使用 piece-wise linear hard analog ( R e L U 6 ( x + 3 ) 6 \frac{ReLU6(x+3)}{6} 6ReLU6(x+3))来代替 sigmoid,故 hard-swish 形式如下,对比效果如图 6:

在这里插入图片描述

在这里插入图片描述

3、引入 SE 模块

在 V3 中使用 SE 模块,因为SE结构会消耗一定的时间,所以作者在含有 SE 的结构中,将 expansion layer 的 channel 变为原来的 1/4,这样作者发现,即提高了精度,同时还没有增加时间消耗。并且SE结构放在了depthwise 之后。实质为引入了一个 channel 级别的注意力机制。

4、不同大小的模型设计

V3 设计了两种体量的模型,Large 和 Small,都是经过 NAS 和优化后的。

在这里插入图片描述

在这里插入图片描述

3.3 效果

检测:

在这里插入图片描述

分割:

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MobileNet是一种轻量级的卷积神经网络,主要用于在移动设备和嵌入式系统上进行实时图像分类和对象检测。MobileNet系列共有三个版本,分别为MobileNet v1MobileNet v2MobileNet v3,下面简述一下它们的特点和区别: 1. MobileNet v1MobileNet v1是第一个版本的MobileNet,它采用了深度可分离卷积(Depthwise Separable Convolution)的结构,将标准卷积拆分为深度卷积和逐点卷积两个步骤,从而大大减少了参数量和计算量。MobileNet v1在ImageNet数据集上取得了不错的分类精度和较快的推理速度,但是仍然存在一些性能瓶颈,如计算效率和模型精度之间的平衡。 2. MobileNet v2MobileNet v2MobileNet系列的第二个版本,它在MobileNet v1的基础上进行了改进,引入了Inverted Residual Block和Linear Bottleneck结构。Inverted Residual Block是一种新的残差块,它通过将扩张卷积和逐点卷积结合起来,提高了网络的非线性表达能力;Linear Bottleneck则是一种线性瓶颈结构,可以有效地降低模型的计算量。MobileNet v2在保持模型轻量化的同时,进一步提升了模型的精度和计算效率。 3. MobileNet v3MobileNet v3MobileNet系列的最新版本,主要在两个方面进行了改进,即网络结构和训练策略。MobileNet v3引入了多种新的操作,如Squeeze-and-Excitation模块、Hard-swish激活函数和可分离卷积等,从而进一步提高了网络的精度和计算效率。此外,MobileNet v3还采用了自适应计算时间的训练策略,可以根据不同的硬件环境自动调整网络的计算量,从而适应不同的应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值