MobileNetV2神经网络


MobileNetV2神经网络


MobileNet是一个轻量化网络的经典网络,自诞生以来就被广泛应用于工业界。2016年,Google第一次提出了MobileNetV1,凭借深度可分离卷积这一创新点,整个网络在实际上成为了深度可分离模块的堆叠。自此,MobileNet作为轻量化网络,大大提高了卷积层的计算效率,进而也极大地提高了网络的运行速度。

1.深度可分离卷积
在标准的卷积过程中,输入图像(长x宽x通道数):
( h × w ) × M (h× w) × M(h×w)×M
输出图像(长x宽x通道数):
( h × w ) × N (h ×w) × N(h×w)×N
卷积核大小(3D卷积:长x宽x通道数x数量):
[ ( k × k ) × M ] ×N [(k× k) × M] × N[(k×k)×M]×N
它的卷积过程如下图:
图1 标准卷积的过程
图1 标准卷积的过程

在标准的卷积中,由于同时考虑到了对应图像区域中的所有通道,因此,计算量是巨大的,虽然对于计算机来说这点计算量不算什么,但是,随着卷积层数等参量的不断增大,就难免会降低神经网络的计算效率,影响到了运算的时间和速度。
因此,为了减少神经网络的运算量,提高网络的运算速度,深度可分离卷积应运而生。在深度可分离卷积中,输入和输出与标准卷积相同,不同的是,在卷积的过程中分成了两步,第一步是逐深度卷积,即对输入图像进行数量为M大小为k×k×1的2D卷积;第二步是点态卷积,即进行数量为N个大小为1×1×M的卷积。
它的卷积过程如下图:
图2 深度可分离卷积的过程
图2 深度可分离卷积的过程

我们可以用比率来比较深度可分离卷积和标准卷积的计算量:
((k×k+N)×M×h×w)/((k×k+N)×M×h×w)=1/N+1/k^2
显而易见,N的取值在几百左右,k的取值在个位数,且都是正值,所以优化效果还是很明显的。

2. MobileNetV1的缺点
(1)结构问题
MobileNetV1 的结构其实非常简单,是一个非常复古的直筒结构,类似于VGG一样。这种结构的性价比其实不高,后续一系列的 ResNet, DenseNet 等结构已经证明通过复用图像特征,使用 Concat/Eltwise+ 等操作进行融合,能极大提升网络的性价比。
(2)逐深度卷积问题
在处理低维数据(比如逐深度的卷积)时,relu函数会造成信息的丢失。此外,逐深度卷积积由于本身的计算特性决定它自己没有改变通道数的能力,上一层给它多少通道,它就只能输出多少通道。所以如果上一层给的通道数本身很少的话,逐深度卷积也只能很委屈的在低维空间提特征,因此效果不够好。

3. MobileNetV2的创新点
(1)相比于MobileNetV1,先进行了1x1的卷积进行升维,目的在于获得更多特征,然后用3x3的空间卷积,最后再用1x1降维。核心思想是升维再降维,参数量更少。
(2)为了避免Relu对特征的破坏,在在3x3网络结构前利用1x1卷积升维,在3x3网络结构后,再利用1x1卷积降维后,不再进行Relu6层,直接进行残差网络的加法。
(3)网络为全卷积的,使得模型可以适应不同尺寸的图像;使用 RELU6(最高输出为 6)激活函数,使得模型在低精度计算下具有更强的鲁棒性。
MobileNetV1和MobileNetV2两者的区别可参考下图:
MobileNetV1和MobileNetV2的区别图3 MobileNetV1和MobileNetV2的区别

4. MobileNetV2网络结构
图4 MobileNetV2网络结构
图4 MobileNetV2网络结构

其中,t是输入通道的倍增系数(即扩张倍数),n是该模块重复系数,c是输出通道数,s是stride(后面重复都是stride 1)。
图5 MobileNetV2流程图
图5 MobileNetV2流程图

如上图是MobileNetV2的流程图,这里我们需要注意的是,MobileNetV2中有两种深度可分离模块,步长为1和2的情况是不同的。步长为1时输入输出size相等,此时使用shortcut结构;步长为2时,由于input与outputsize不符,不添加shortcut结构。

MobileNetV2是一种轻量级的卷积神经网络(Convolutional Neural Network,CNN),旨在在计算资源有限的设备上实现高效的图像分类和目标检测。 MobileNetV2的网络结构主要包含以下几个部分: 1. 输入层:接收图像作为输入。 2. 卷积层:使用深度可分离卷积(depthwise separable convolution)替代传统的标准卷积,以减少参数量和计算量。深度可分离卷积分为两个步骤:深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)。 3. 激活函数:常用的激活函数是线性整流函数(ReLU)。 4. 瓶颈结构(Bottleneck):引入瓶颈结构来进一步减少参数量,其中包含1x1卷积和3x3卷积。 5. 下采样(Downsampling):使用步幅卷积或者空间金字塔池化(Spatial Pyramid Pooling)进行下采样操作,以减小特征图的尺寸。 6. 上采样(Upsampling):使用反卷积或者双线性插值进行上采样操作,以增大特征图的尺寸。 7. 快捷连接(Shortcut Connection):引入残差连接(Residual Connection)来提升模型的表达能力和训练效果。 8. 全局平均池化(Global Average Pooling):对特征图进行平均池化操作,将多维特征图转换为一维向量。 9. 全连接层(Fully Connected Layer):将特征向量与标签进行关联,用于分类任务。 MobileNetV2的网络结构相对较浅,但通过精心设计的卷积模块和采用的技术,能够在保持较高准确度的同时,显著减少参数量和计算量,适用于移动设备等资源受限的环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值