一、Mobile Net V1

主要贡献:

(1)使用了深度可分离卷积构建轻量级卷积神经网络,由depthwise(DW)和pointwise(PW)两个部分结合起来,用来提取特征feature map。相比常规的卷积操作,其参数数量和运算成本比较低。

深度可分离卷积参考博文:(129条消息) 深度可分离卷积(Depthwise seperable convolution)_冰雪棋书的博客-CSDN博客_深度可分离卷积

(2)引入了两个简单的全局参数来有效平衡延迟性和精度

α(宽度乘数 Width Multiplier: Thinner Models):具有降低计算成本和参数数量的作用,用于定义一个需要从头训练的新的缩减结构。

β(Resolution Multiplier: Reduced Representation):分辨率乘数,用来控制input image大小

网络结构

  整体上采用与VGG网络类似的3*3卷积串联的搭建方式,

MobileNet 结构建立在上一节中提到的深度可分离卷积之上,但第一层是全卷积。

MobileNet 架构在表 1 中定义。所有层都遵循batchnorm [13] 和 ReLU 非线性,但最终全连接层除外,它没有非线性并馈送到 softmax 层进行分类。将深度卷积和点卷积计算为单独的层,MobileNet 有 28 层。

图 3 将具有常规卷积、batchnorm 和 ReLU 非线性的层与具有深度卷积、1×1 逐点卷积以及每个卷积层之后的 batchnorm 和 ReLU 的分解层进行了对比。在深度卷积和第一层中使用跨步卷积处理下采样。最终的平均池化在全连接层之前将空间分辨率降低到 1。

总结:

1.提出了Mobilenet模型,应用于移动端设备
2.使用了深度可分离卷积来降低参数量以及计算量
3.提出了两个超参数:α和ρ,分别控制卷积核的数量以及输入图片尺寸来进一步降低计算成本

二、mobile net V2

主要贡献:

(1)在V1的基础上加入了倒残差结构

倒残差结构在内存效率上显著提高

讲解博文:(129条消息) 倒残差与线性瓶颈浅析 - MobileNetV2_晓野豬的博客-CSDN博客_倒残差结构

(2)提出了线性瓶颈层(Linear Bottlenecks)

瓶颈结构是指将高维空间映射到低维空间,缩减通道数;Expansion layer 则相反,其将低维空间映射到高维空间,增加通道数。沙漏型结构和梭型结构,都可看做是一个 Expansion layer 和一个 Bottleneck layer 的组合。Bottleneck layer 和 Expansion layer 本质上体现的都是1x1 卷积的妙用。至于线性瓶颈结构,就是末层卷积使用线性激活的瓶颈结构(将 ReLU 函数替换为线性函数)。
  那么为什么要用线性函数替换 ReLU 呢?有人发现,在使用 MobileNetV1时,DW 部分的卷积核容易失效,即卷积核内数值大部分为零。作者认为这是 ReLU 引起的,在变换过程中,需要将低维信息映射到高维空间,再经 ReLU 重新映射回低维空间。若输出的维度相对较高,则变换过程中信息损失较小;若输出的维度相对较低,则变换过程中信息损失很大,如下图所示:

因此,作者认为在输出维度较低是使用 ReLU 函数,很容易造成信息的丢失,故而选择在末层使用线性激活。

网络结构:

bottleneck的结构图

MobileNetV2 的架构包含具有 32 个过滤器的初始全卷积层,然后是表 2 中描述的 19 个残余瓶颈层。我们使用 ReLU6 作为非线性,因为它在与低精度计算一起使用时具有鲁棒性 [27]。我们始终使用现代网络的标准内核大小 3 × 3,并在训练期间利用 dropout 和批量归一化。

除了第一层,我们在整个网络中使用恒定的拓展率t=6(较小的网络用较小的拓展率,较大的网络用较大的拓展率)

总结:

优点:

1.在mobilenet V1的基础上提出了逆残差结构
2.提出使用线性瓶颈层,防止非线性破坏太多信息
3.将ReLU函数替换为ReLU6函数
4.可以通过不完全实现大型中间张量来显著减少推理期间所需的内存占用,减少了嵌入式硬件设备中对贮存访问的需求

三、Mobile Net V3

主要贡献:

1.更新block

(1)加入了SE模块(又称为通道注意力模块),主要包含Squeeze和Excitation两部分。W,H表示特征图宽,高。C表示通道数,输入特征图大小为W×H×C。

具体化的解释:

简单来说就是

        1.压缩:全局平均池化(global average pooling)。经过压缩操作后特征图被压缩为1×1×C向量

        2.接下来就是激励(Excitation)操作:由两个全连接层组成,其中SERatio是一个缩放参数,这个参数的目的是为了减少通道个数从而降低计算量。
第一个全连接层有C*SERatio个神经元,输入为1×1×C,输出1×1×C×SERadio。
第二个全连接层有C个神经元,输入为1×1×C×SERadio,输出为1×1×C。

         3.scale操作

最后是scale操作,在得到1×1×C向量之后,就可以对原来的特征图进行scale操作了。很简单,就是通道权重相乘,原有特征向量为W×H×C,将SE模块计算出来的各通道权重值分别和原特征图对应通道的二维矩阵相乘,得出的结果输出。

可以参考博文:

(129条消息) SE模块详解_Mounsey的博客-CSDN博客_se模块

 (2)更换激活函数:

引入了一种新的非线性:h-swish,计算速度更快,量化更友好。

公式:

网络结构:

介绍了Mobile netV3的两个变体:Mobile net -Large和Mobile net -small;分别对应于高资源和低资源。结构细节如图所示:

3.提出了新的语义分割头(LR-ASPP)

总结:

1.通过NAS(通过算法在搜索空间中搜索出最佳网络方案,但是非常贵!)搜索出Mobile netV3的基本框架
2.通过NetAdapt算法进行权重等参数微调
3.两个模型:MobileNet V3-Large(针对高资源) MobileNet V3-small(针对低资源)
4.对Mobile net V2中的bottleneck做微调:加入了通道注意力模块SE模块+重新设计了激活函数(swish)
5.提出了一种以Mobile netV3作为backbone的轻量级网络语义分割模型LR-ASPP模型

进一步的研究方向:悬而未决的问题:如何最好的将自动化搜索技术与人类直觉设计相结合,在未来值得研究

Mobile net系列总结(V1、V2、V3)相关推荐

  1. DeepLab系列(v1,v2,v3,v3+)总结

    U-net: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 语义分割面临的挑战 1. DeepLab ...

  2. 经典卷积神经系列(Inception v1\v2\v3\v4、ResNet、ResNext、DenseNet、SENet)

    写在前面:此文只记录了下本人感觉需要注意的地方,不全且不一定准确.详细内容可以参考文中帖的链接,比较好!!! 经典的CNN:Inception v1\v2\v3\v4.Resnet.Resnext.D ...

  3. IGMP V1 V2 V3 定义和区别

    先来认识一下IGMP这个协议吧,它的全称是Internet Group Management Protocol,它和unicast和multicast的区别是它是发往一组计算机(属于它这个组播组的所有 ...

  4. PyTorch 实现经典模型7:YOLO (v1, v2, v3, v4)

    YOLO (v1, v2, v3, v4) 网络结构 YOLO v3 网络结构 代码 Ref <机器爱学习>YOLO v1深入理解 <机器爱学习>YOLOv2 / YOLO90 ...

  5. 使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow)

    使用自己的数据集训练GoogLenet InceptionNet V1 V2 V3模型(TensorFlow) [尊重原创,转载请注明出处]https://blog.csdn.net/guyueali ...

  6. (转自网易--无风)IGMP V1 V2 V3 定义和区别

    IGMP的问题,应用在IGMP的一些概念. 那就让我们完整的看一下这个组播协议把,以下是我学习过程重总结的一些东西, 先来认识一下IGMP这个协议吧,它的全称是Internet Group Manag ...

  7. 面向Mobile device的CNN模型手工设计与NAS分析总结,MobileNet V1,V2,V3,Efficient,MNasNet以及Efficient network design

    手工方法和NAS的高效网络模型设计总结与分析 这篇文章主要关注对于移动端,资源受限平台的高效神经网络设计(Manually)和搜索(NAS). ​​​​​​高效的CNN设计不只是用在服务器,云端,资源 ...

  8. Mobile Net 系列【V1—V3】

    1. MobileNet V1 1.1 Abstract 我们提出了一类用于移动和嵌入式视觉应用程序的高效模--MobileNet,此模型使用深度可分离卷积来构建轻量级深度神经网络.我们还介绍了两个超 ...

  9. 论文记录1_YOLO系列(v1 v2 v3 v4)

    注:此文为阅读笔记,参考了很多论文,博客,如有侵权请联系,我附上原出处. 文章目录 准备知识: YOLO V1 创新点 grid cell 置信度 例子 网络架构 Backbone Neck Head ...

  10. 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2

    from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ...

最新文章

  1. 机架搭建_铝型材设备机架定制流程
  2. Luogu 2921 [USACO08DEC]在农场万圣节Trick or Treat on the Farm
  3. Java Web开发与实战_Java Web开发技术与实战项目
  4. CVPR2021 最具创造力的那些工作成果!
  5. MVC @RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、@Html.RenderAction
  6. C++之 程序文件和预处理
  7. switch开关 ~ 学习记录
  8. FairMOT论文详解
  9. java基础总结06-常用api类-Math常用方法
  10. matlab导出高分辨率图片
  11. 时间序列(二):时间序列平稳性检测
  12. 使用Sencha cmd安装extjs6
  13. Linux批量操作------mov转MP4
  14. 【Python教程】十四、找不到对象?用Python自己写一个|类与对象(二)
  15. 笔记本高负荷时撞功耗墙、温度墙问题解决方案
  16. python中得到26个字母
  17. NDK-r25交叉编译qemu-7.0.0 第651步报错
  18. 单片机学习和应用百问大全
  19. 分析Adobe Illustrator CC(AI)中的橡皮擦和直线工具
  20. MSM8974 TP驱动流程

热门文章

  1. dcloud从入门到入坑
  2. Document读取XML
  3. error: expected ‘=‘, ‘,‘, ‘;‘, ‘asm‘ or ‘__attribute__‘ before ‘{‘ token
  4. 一刀传世服务器维护,#一刀传世#
  5. k8s学习(二十四) 使用prometheus监控kubernetes集群应用
  6. DC基础学习(二)Synthesis Flow1
  7. Android上传蒲公英平台脚本
  8. NetBIOS 漏洞的入侵与防御
  9. clear both
  10. 全新版的TFN 光时域反射仪上线了,大家一块了解一下吧。