• 【秋招基础知识】轻量化:MobileNetv123和ShuffleNet


    1. MobileNet v1

    MobileNet v1就是把VGG中的卷积都换成了深度可分离卷积,还有一个不同是采用的是ReLU6,在x为6的时候有一个边界上限,论文中提到说这样“可以在低精度计算下具有更强的鲁棒性”。
    创新点:

    • 深度可分离卷积(Depthwise Separable Convolutions)
      将卷积分为深度卷积(Depthwise Convolution)与逐点卷积层(Pointwise Convolution)。深度卷积每个卷积核只处理1个输入特征通道,而不是M个输入特征通道,这样大大减少了运算量。然而这里面有个问题,也就是通道与通道之间的联系被切断了,所以后面需要再用 1x1 大小的逐点卷积层来处理M个特征通道之间的信息。可以减少8—9倍的参数量。
      在这里插入图片描述

    在这里插入图片描述

    2. MobileNet v2

    不少学者发现在深度卷积中,不少卷积核是空的,这也就说明有不少没有参与运算。而v2的作者认为,这种情况主要是因为ReLU的原因。也解释了ReLU在低维特征空间运算中会损失很多信息,而在高维空间中会保留很多有用信息。因此就提出了the inverted residual with linear bottleneck
    在这里插入图片描述

    • Linear Bottleneck(图中Linear):就是把PW的ReLU6都换成了线性函数。
      因为在激活函数之前,已经使用1*1卷积对特征图进行了压缩,而ReLu激活函数对于负的输入值,输出为0,会进一步造成信息的损失,所以使用Linear激活函数。
    • Expansion layer(图中DW前的1*1):为了让DW(depthwise Conv)在高维空间上工作,保留有用信息,因此在DW之前加了一个PW(pointwise Conv d=6)用来扩张通道。
      (1) 因为MobileNet 网络结构的核心就是DW conv,此卷积方式可以减少计算量和参数量。而为了引入shortcut结构,若参照Resnet中先压缩特征图的方式,将使输入给Depth-wise的特征图大小太小,接下来可提取的特征信息少,所以在MobileNet V2中采用先扩张后压缩的策略。
      (2) 激活函数的使用会对低维特征造成大量损失,因此在扩张通道数之后,对高维特征造成的损失较小。
    • Inverted residuals:在深度可分离卷积中又加入了一个shortcut。
      普通残差是两头channel多,中间少,目的是减小计算量。倒残差结构是中间大,两头少,目的是减小信息损失。维度小时使用非线性激活函数会损失信息,而维度越大越不容易损失。因此使用倒残差结构,在维度较大的中间部分使用ReLU6激活函数,减少信息损失。

    3. Mobilenet v3

    使用了NAS(神经网络架构搜索)
    引入基于squeeze and excitation结构的轻量级注意力模型(SE)
    加入h-swish激活函数代替Relu。
    网络首尾做了些细节上的创新,用了5*5的卷积

    4. ShuffleNet

    认为1*1卷积的计算复杂度过高,为了降低复杂度提出组卷积,每个组内进行卷积,并进行通道Shuffle来进行通道间信息的交换。

    Ref

    [1] https://www.likecs.com/show-203328580.html
    [2] https://blog.csdn.net/shayinzzh/article/details/124249968

  • 相关阅读:
    基于SpringBoot开发的停车位管理系统(调用百度地图api)
    Linux实战一天一个小指令--《文件管理/文件查找》
    VS2019 添加afxdisp.h文件后提示CString不明确 解决方法
    Java实现简易版的【图书管理系统】
    【5G NR】【一文读懂系列】移动通讯中使用的信道编解码技术-NR编解码LDPC和Polar概述(一)
    读书笔记:《浪潮之巅:下》
    Pandas时序数据Time Series
    软件测试面试题 —— 整理与解析(3)
    多通道ECG心率监测系统
    Spring Boot 面试题及答案整理,最新面试题
  • 原文地址:https://blog.csdn.net/qq_29380039/article/details/126722496