当前位置: 首页 > 网络应用技术

Mobilenet:深度可以分开

时间:2023-03-06 19:37:20 网络应用技术

  尽管Squeeznet在一定程度上减少了卷积计算的量,但它仍然使用传统的卷积计算方法。之后,MobileNet使用更有效的深度来分开卷积方法,进一步加速了卷积网络中的卷积网络。MobileApplication。为了更好地了解卷积的深度分离,我们首先审查标准卷积计算过程,然后再审查。根据此结构讨论深度分离卷积过程,以及两个网络结构Mobilenet V1和Mobilenet V2。

  论文地址:1704.04861.pdf(arxiv.org)

  假设当前功能图为CI×H×W,则需要输出的特征映射大小为CO×H×W,卷积核心大小为3×3,填充是1,则标准的计算过程卷积如上图所示。标准卷积的过程如下:

  当标准卷积是卷积时,图像的区域和渠道信息也会同时考虑,所以为什么不单独考虑区域和渠道呢?基于此想法,深度可分离的卷积的深度是诞生的,它分裂了通过通道卷积将卷积过程分为两个步骤,并以1×1的卷积为点。尽管可以通过卷积过程将深度分开至两个步骤,但冗余计算已减少,因此总体计算量已大大减少。也已大大减少了。使用大量的卷积深度分离作为基本单元。

  通道卷积的计算过程如图所示。对于通道的输入特征,输入特征h×W用于使用3×3卷积核,以和谐点来获得通道的输出H×W。然后,对于所有输入通道CI,CI 3×3卷积芯可用于获得CI×H×W大小的输出。基于上述计算过程,以下卷积有几种特征:

  由于通道卷积通道之间缺乏特征的特征,无法更改通道的数量,因此遵循-up也需要继续连接点-By -by -point的1×1卷积。一方面,图形的通道数量。由于1×1卷积的输入特征图为CI×H×W,并且输出功能图为CO×H×W,此步骤的总计算量显示为在公式。

  $ fi = CI×1×1×H×W×CO $ $ $

  基于这两个步骤,可以将深度之比与计算量可以分开,如公式(7-4)所示,可以与标准卷积分开。

  可以看出,尽管可以将卷积过程分为两个步骤,但使用其轻量级卷积方法,但总体计算量等于1/9的标准卷积,这大大降低了卷积过程。计算数量。计算数量。Mobilenet V1的深度的特定结构可以分开模块,如下图所示。使用BN层和relu的激活函数。值得注意的是,Relu6在这里用于替换原始的Relu激活函数,限制Relu的最大输出低于6。

  Relu6的原因:使用Relu6的原因是满足移动部署的需求。移动终端通常使用较低的精度模型,例如Float16或INT8。如果激活函数的输出不受限制,则激活值的分布范围将很大,并且低精确模型难以准确覆盖如此巨大的输出。它将带来准确的损失。

  总体比较图表:Mobilenet V1的总体网络由上述深度分离的卷积基本单元组成。特定结构如下图所示。与vggnet相似,它也是一个分层的堆叠网络。图中的DW表示深度分解卷积。之后,它需要是1×1卷积的卷积。S2表示2的步长的体积,可以降低特征图的特征并扮演与合并层相同的作用。在这里,Mobilenet V1用于对象分类的网络。您可以看到网络最终使用全局平均池层将其发送到完整的连接和SoftMax进行分类预测。如果它用于对象检测,则仅需要在上一个功能映射上提取。基本结构,Mobilenet V1还设置了两个上层建筑,以控制模型的大小和计算。细节如下:

  在实现级别上,Pytorch的卷积层提供了一组卷积参数,可以轻松地实现深度。

  通常,Mobilenet V1以深度分离的结构处以较小的精度,从而大大降低了计算和网络层参数,这也降低了模型的大小并促进了移动终端的应用。但是Mobilenet V1也具有由其自身结构带来的缺陷,主要是以下两个点:

  论文地址:https://arxiv.org/abs/1801.04381对于上述Mobilenet V1的缺点,Mobilenet v2,2018年出生的Mobilenet V2吸收了残留网络的想法。它主要从两个方面改善了网络结构,并增强了Mobilenet的检测,以检测MobileNett的检测。

  首先,Mobilenet V2使用残差结构来替换原始的卷积堆叠方法,并提出了一个倒的残留块结构,如上图所示。根据卷积步骤,可以将结构分为两种情况。当步骤为1时,使用残差连接。组合方法被添加到元素中,并用mobilenet v1和原始残留结构添加,这里有两个区别:

  1.由于3×3卷积的大量计算而导致的残留块结构,传统残留网络通常使用1×1卷积来减少尺寸,减少通道的数量,然后发送3×3卷积,然后再次使用1×1卷积。从形状,该结构在中间狭窄,类似于沙漏的形状。但是,在Mobilenet V2中,由于深度可用于计算通道计算,因此计算量相对较小,因此您可以使用1×1的卷积来增加维度并基于增加的计算量。应贝效应,最终使用1×1卷积尺寸。该结构的中间在两侧都狭窄,类似于柳叶叶因此,结构称为倒残留块。

  2.通过去除relu6的深化而获得的特征对应于低维空间,并且特征很小。如果随后的接线映射可以保留大多数特征,并且如果非线性映射(例如relu)将破坏特性,从而导致功能丢失,以使模型的效果更糟。在对此问题的响应中,Mobilenet V2直接删除每个块中的最后一个Relu6层,降低了功能的特征,并获得了更好的检测结果。以下使用Pytorch来构建Mobilenet V2的残留模块。上图中的大步是1的结构。新的mobilenet_v2代码如下:

  总体而言,Mobilenet V2已根据原始结构进行了简单修改。它可以通过更少的计算获得高精度,这非常适合移动部署。

  网络结构:MobileNetv2/.gitignore在Master·Suzhenghang/Mobilenetv2·GitHub

  原始:https://juejin.cn/post/7094991519320375332