MobileNet网络全解

传统的卷积神经网络,内容需求大,运算量大,无法再移动设备以及嵌入式设备上运行,因此为了解决这一问题我们采用了MobileNet网络。

MobileNetV1

  • MobileNet网络主要由DW卷积核PW卷积代替传统卷积组成。

与传统卷积不同,DW卷积计算中,每一个卷积核每次只对一个通道数进行卷积运算形成的特征图通道数也是一个 。因此输入特征举证的通道数等于卷积核的个数,也等于输出特征矩阵的通道数。

PW卷积,和普通卷积操作一致,只是此时的卷积大小为1,相当于对每一个通道数进行合并运算。

MobileNetV2

  • 增加了倒残差结构
  • 采用了Linear Bottlenecks

传统的残差结构,首先采用1x1的卷积进行降维,在采用3x3的卷积操作,最后使用1x1的卷积进行升维。是两头维度大,中间维度小。呈沙漏型。

而倒残差结构先采用1x1的卷积升维,采用3X3DW 卷积,最后采用1X1的卷积降维两边的维度小,中间的维度大。 倒残差结构中,前两个采用的是Relu6激活函数,最后一个采用线性激活函数。呈梭形。

由图片可以发现,当采用relu激活函数维度较低的时候可能会导致信息丢失,在高维的时候丢失的信息较少,而我们采用倒残差结构最后一层输出的时候维度较低,因此采用线性激活函数。 瓶颈结构是指从高维空间映射到低维空间,缩减通道数。

MobileNetV3

  • 更新Block(bneck)
  • 使用NAS搜索参数
  • 重新设计耗时层结构

如图所示是MobileNetV3网络更新得到的bneck结构,其中NL意味着 采用非线性激活函数,如果不含有NL则采用普通的激活函数。SE模块显式地建模特征通道之间的相互依赖关系,通过学习的方式获得每一个通道的重要程度,然后依照这个重要程度对各个通道上的特征进行加权,从而突出后重要特征,抑制不重要的特征。

与MobileNetV2相比MobileNetV3网络结构只是增加了一个SE模块。SE模块针对每一个channel进行池化处理,得到channel个数的元素,通过两个全连接层得到输出向量,其中第一个全连接层的节点个数等于通道数地1/4(为了简化计算),第二个全连接层地节点个数和通道数保持一致。这个得到的输出相当于原始的特征矩阵的每个通道对应的重要程度,越重要的赋予越大的权重,反之则赋予较小地权重。

如图所示,我们首先采用平均池化将每一个 channel 变为一个值,然后经过两个全连接层之后得到通道权重的输出,值得注意的是第二个全连接层使用 Hard-Sigmoid 激活函数。然后将通道的权重乘回原来的特征矩阵就得到了新的特征矩阵 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值