轻量化网络 | MobileNet论文解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 轻量化网络 | MobileNet论文解析

62bf1e818a6a358b1af496849fe3b678.png

论文研究目标


提出了一种深度模型加速的算法,可以在基本不影响准确率的前提下大大减少计算时间和参数数量。为移动和嵌入式视觉应用提出了一种有效的解决方案。可以应用在目标检测、细粒度分类、人脸识别和大规模定位上。

83ade99397d90663e1da27671cf47d07.png

创新点


  • 将普通卷积层替换成深度可分离卷积(depthwise separable convolution)
  • 提出了两个缩小超参数模型:width multiplierresolution multiplier

MobileNet简介


虽然MobileNets在结构上与VGGNet类似,属于简单的流线型架构。但其使用深度可分离卷积层替换之前的全卷积层,以达到压缩参数数量并轻量化网络这一目标。

MobileNet除了第一层为全卷积层,其余层均为深度可分离卷积。不同于Deep Compression,因为网络在定义时结构简单,因此我们可以简单地搜索网络的拓扑结构,从头直接训练出一个效果很好的轻量化网络。

而MobileNet就是用来解决参数小和计算开销大的,采用的方法叫做深度可分离卷积。

算法结构


2db4f0164e57c15655113f181c9b4978.png

MobileNet的结构

MobileNet结构的定义如上图所示,除了最后的全连接层直接进行softmax分类,其余所有层之后都是批量正则化(BN层)和作为非线性激活函数的线性整流函数(ReLU层)。

下图比较了全卷积和深度可分离卷积(都跟着BN层和ReLU层)。通过有步长的逐深度卷积和第一层卷积,都能对图片进行空间上的下采样。最后一个平均池化层在全连接层之前,将特征图的空间分辨率降为1x1。将逐深度卷积(Depthwise Convolution)和逐点卷积(Pointwise Convolution)算为不同的层,MobileNet有28层。

53ce69155a7e7a62e5a5a422a9d8f080.png

左图是标准卷积,右图是深度可分离卷积

MobileNet(V1)的精髓其实就是深度可分离卷积。

深度可分离卷积


MobileNet模型的核心就是深度可分离卷积,它是因式分解卷积的一种。

具体地,深度可分离卷积将标准化卷积分解为逐深度卷积(depthwise convolution)和逐点1x1卷积(pointwise convolution)。对于MobileNets,逐个深度卷积将单个滤波器应用到每一个输入通道。然后,逐点卷积用1x1卷积来组合不同深度卷积的输出。在一个步骤,一个标准的卷积过程将输入滤波和组合成一组新的输出。深度可分离卷积将其分成两层,一层用于滤波,一层用于组合。这种分解过程能极大减少计算量和模型大小。下图展示了如何将一个标准卷积分解为深度卷积和1×1逐点卷积。

ad3d70114578bbb5a5fef0ed082092d7.png

标准卷积的分解过程

深度可分离卷积的参数量与计算量


MobileNet使用深度可分离卷积来破坏输出通道的数量和卷积核大小的相互作用。

标准的卷积运算,每次运算在滤波的同时,都涉及了所有输入通道特征的组合,从而产生新的特征。但是,滤波和组合步骤可以通过使用因式分解卷积(包括深度可分离卷积)分为两个步骤,以显著降低计算成本。

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

  • 逐层卷积
  • 逐点卷积

我们使用逐层卷积对每个输入通道(输入特征图的深度)执行单个滤波器卷积。逐点卷积(1x1卷积)用来创建逐深度卷积层的线性组合。MobileNet对两层卷积层都使用了批量正则化(Batch Normalization , BN)和线性整流函数(ReLU)作为非线性激活函数。

逐层卷积可以被写作以下形式(每个输入通道一个滤波器):

image.png

image.png

深度可分离卷积,就是上述两种卷积层操作的组合。

MobileNets使用3x3的深度可分离卷积比标准的卷积减少了8-9倍的计算复杂度,而与此同时准确率只减少了一点点。

空间维度的因式分解不会节省大量的计算复杂度,因为相比于其他直接做因式分解的模型[3][4]深度可分离卷积计算复杂度很小。

算法效果分析


由之前的分析,若只考虑浮点数运算,则一组二维卷积核完成逐深度卷积的运算量为:


image.png

image.png

两个shrink超参数模型


width multiplier


image.png

resolution multiplier

第二个hyper-parameter减少神经网络的计算成本是分辨率乘数ρ。这给输入图像和内部表现的每一层随后都减少了相同的乘法器。在实践中我们隐式地设置ρ通过设置输入分辨率。我们现在可以把我们的网络的核心层的计算成本换成深度可分离卷积并与width multiplierα和resolution multiplier乘数ρ相结合:

image.png

MobileNet模型训练过程:


  • 使用tensorflow或pytorch
  • 与inception v3相似的异步梯度下降
  • 使用较少的正则和数据增强,因为小模型过拟合的概率不大。
  • 我们不使用侧头或标签平滑
  • 限制在inception中的小尺寸剪裁的数量。
  • 权重衰减(l2正则化)使用较少或没有使用,因为该模型参数本来就不多。

在不同task上的结果


7da46ac426ed29acc2e342a0dadcb1c7.png

29fe517a43a368806aab6a0a698f64f5.png

053d8234d8c28d46e22bf3d97c7c0025.png

开源代码


https://github.com/Zehaos/MobileNet

相关文章
|
7天前
|
机器学习/深度学习 编解码 自动驾驶
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
31 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
|
7天前
|
机器学习/深度学习 移动开发 测试技术
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
27 1
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV2,含模型详解和完整配置步骤
|
7天前
|
机器学习/深度学习 编解码 TensorFlow
RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v1 高效的移动倒置瓶颈结构
RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v1 高效的移动倒置瓶颈结构
23 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络为EfficientNet v1 高效的移动倒置瓶颈结构
|
7天前
|
机器学习/深度学习 计算机视觉 异构计算
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
18 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
|
7天前
|
机器学习/深度学习 计算机视觉 iOS开发
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
31 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构
|
7天前
|
机器学习/深度学习 计算机视觉 网络架构
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块
92 63
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 StarNet,超级精简高效的轻量化模块
|
7天前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
89 62
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 MobileViTv1高效的信息编码与融合模块,获取局部和全局信息
|
7天前
|
机器学习/深度学习 自动驾驶 计算机视觉
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
86 61
RT-DETR改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
|
11天前
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
49 18
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V3 2024华为的重参数轻量化模型
|
9天前
|
机器学习/深度学习
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计
40 8
YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

热门文章

最新文章

推荐镜像

更多