轻量级网络MobileNeXt--改进MobileNet v2的逆残差结构

论文地址:ECCV 2020

《MobileNeXt: Rethinking Bottleneck Structure for Efficient Mobile Network Design》

要点

论文针对MobileNetV2的核心模块逆残差结构存在的问题进行了深入分析,提出了一种新颖的SandGlass模块,并用于组建了该文的MobileNeXt架构,SandGlass是一种通用的模块,它可以轻易的嵌入到现有网络架构中并提升模型性能,这种轻量级模块有原生残差块和倒置残差块的影子,是一种正向残差设计。

回顾

ResNet 使用标准卷积提取特征,MobileNet 始终使用DW卷积提取特征。

ResNet 先降维、卷积、再升维,而 MobileNet V2 则是 先升维、卷积、再降维。

直观上看,ResNet 的微结构是沙漏形,而 MobileNet V2 则是纺锤形。

因此作者将 的结构称为 Inverted Residual Block。这么做也是因为使用DW卷积而作的适配,希望特征提取能够在高维进行。

 如下图所示,左侧是ResNet网络中的残差结构(中间窄两头宽),右侧就是MobileNet v2中的逆残差结构(中间宽两头窄)。

在残差结构中是1x1卷积降维->3x3卷积提取特征->1x1卷积升维,在逆残差结构中正好相反,是1x1卷积升维->3x3DW卷积提取特征->1x1卷积降维。 MobileNet V2 的解释是高维信息通过ReLU激活函数后丢失的信息更少。

下图为ResNet, MobileNetV2和论文提出的MobileNeXt的对比:
ResNet残差块组成:1x1卷积(降维)、3x3卷积(空间信息特征提取)、1x1卷积(升维);
MobileNetV2倒置残差块组成:1x1卷积(升维)、3x3深度可分卷积(空间信息特征提取)、1x1卷积(降维);
MobileNeXt沙漏残差块组成:3x3深度可分卷积(空间信息特征提取)、1x1卷积(降维)、1x1卷积(升维)、3x3深度可分卷积(空间信息特征提取),该结构与正向残差类似,区别在于使用了深度卷积;

问题

ResNet残差块中间的3*3卷积的参数量和计算量都非常大,不适用于轻量级网络;

MobileNetV2的Inverted residual block,专为移动设备设计,为了节省计算量,输入改为低维度特征,先通过pointwise卷积扩大维度,然后通过depthwise卷积提取特征,最后通过pointwise卷积降低维度输出;skip path仅建立在低维度bottleneck间,最后一个pointwise卷积不使用非线性激活;

尽管Inverted residual block性能不错:

但输入需要将特征先降到较低的维度,但是降低维度可能不足以保留足够的有用信息;

近期有研究发现更宽的网络结构(输入输出通道数更多)有助于缓解梯度混淆(特指梯度消失与梯度爆炸,不同batch产生的梯度抵消),能够提升网络性能;

shortcut建立在bottleneck之间,由于bottleneck维度较少,也可能会阻碍梯度的回传。

为解决上述问题,论文提出了设计更优的sandglass block,结构如图3(c),基于此搭建了MobileNeXt,在性能和计算量上都优于MobileNetV2。

亮点

 考虑到上述逆残差模块存在的问题,论文作者的设计原则:

保持更多的信息从bottom传递给top层,进而有助于梯度回传;

深度卷积是一种轻量型单元,可以执行两次深度卷积以编码更多的空间信息。

作者重新思考移动网络的bottleneck结构,发现inverted residual并不是最优的bottleneck结构。

研究发现,shortcut应该建立在高维度特征上depthwise卷积应该应用在高维度特征空间上学习更多样特征,linear residual是bottleneck结构的关键。

sandglass block

如下图所示:(a) Residual Bottleneck (b) SandGlass Bottleneck

SandGlass块本质上是一个经典的残差块,其中主分支中的第一个和最后一个卷积层是保留通道的空间深度卷积层。为了模拟瓶颈结构,它使用两个连续的逐点卷积来减少然后增加通道数,这些PW卷积堆叠在两个深度卷积层之间。由于现在更大的通道张量由深度内核操作,因此与MobileNetV2相比,参数数量大大减少。

sandglass block理论分析 :

  • Activation Layer:已有研究表明,线性瓶颈层有助于避免特征出现零化现象,进而导致信息损失。基于此,作者在用于降维的1x1卷积后不添加激活函数。同时最后一个深度卷积后也不添加激活函数,激活函数加在第一个3*3深度卷积与最后一个1x1卷积之后。
  • Block Structure.:基于上述考虑,我们得到了该文所设计的新颖的残差瓶颈模块,结构如下表与上图b所示。注意:当输入与输出通道数不相同时不进行短连接操作。 

表中ReLU6是指具有最大输出限制为6的relu函数,主要是为了在移动端设备float16/int8的低精度时也能有很好的数值分辨率,如果对普通relu函数的激活范围不加限制,输出的范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的loat16/int8就无法良好地精确描述如此大范围地数值,从而带来精度地损失;

线性激活函数linear是指线性映射(y=x),这有助于避免零化现象的出现,进而减少信息损失。

MobileNeXt网络结构

输入为224*224*3,然后是卷积后32维输出,后续是sandglass block的堆叠,最后是全局平均池化,将二维的特征图压缩为一维,最后再由全连接层、softmax函数输出每个类别的分数。

Identity tensor multiplier 

尽管shortcut连接有助于梯度的回传,但论文通过实验发现,没有必要保持完整的特征去跟residual path结合。为了让网络对移动设备更友好,论文提出超参数identity tensor multiplier \partial \in[0, 1],用于控制shortcut传递的特征维度,假设\O表示残差分支的变换函数;

原来的residual block计算可表示为:

G=\O (F)+F

加入超参数后的residual block计算可表示为:

超参数的作用

通过降低该超参数,每个模块中的add数量可以进一步降低,因为add操作会占用不少耗时,用户可以选择更少的以得到更好的推理速度且性能几乎无影响;

可以降低内存访问时间。影响模型推理的一个重要因素是:内存访问消耗(Memory acces cost, MAC)。降低该超参数有助于减少cache占用,进而加速推理。

即作者考虑到用在移动设备的延时问题,作者不对所有来自短径连接地数据进行add,只选择其中地一部分进行连接,论文实验表明取特征的一半进行加和,可以保持速度和精度的最佳。

下图为不完全的短径连接:

 实验

tensor multiplier 选择:

ImageNet分类任务效果如下:

ca909e54-79d8-4b92-805e-6234c3703f81-image.png 与MobileNetV2在ImageNet上进行对比:

 与其他网络结构在ImageNet上进行对比:

总结

作者对逆残差结构进行了改进,又变回了正向残差结构,从高维特征获取到更多的信息,并解决shortcut连接所带来的梯度问题,在1*1PW卷积之间不使用3*3卷积来提取特征,而是先进行降维再进行升维以更新融合特征。

MobileNet作为一个轻量级网络,但是论文作者并没有列出在实际移动设备上的应用。

参考

MobileNeXt | 新一代手机端模型

PyTorch实现 

MobileNext:打破常规,依图逆向改造inverted residual block

依图科技MobileNeXt 

仅为学习记录,侵删! 

  • 4
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: MobileNetV2-6a65762b.pth是一个用于深度学习的预训练模型。MobileNetV2是一种轻量级的卷积神经网络结构,适用于在移动设备和嵌入式设备上部署。 模型文件的后缀.pth表示它是由PyTorch框架保存的模型权重文件。PyTorch是一个广泛使用的开源深度学习框架,可用于构建、训练和部署各种深度学习模型。 在MobileNetV2模型中,6a65762b是一个唯一的标识符,可能代表了该模型的某个版本或者某个训练实例的标识符。 使用这个预训练模型可以帮助开发者更快速地构建和训练自己的深度学习模型。通过加载这个预训练模型的权重,我们可以利用该模型在大规模数据集上的预训练结果,从而使得我们在更小规模的数据集上能够更好地实现迁移学习和快速训练。 通过加载这个.pth文件,我们可以使用它提供的模型架构和训练好的权重参数来进行图像分类、目标检测或其他相关任务。这个预训练模型具有较高的准确度和较低的模型复杂度,适用于资源受限的设备上的深度学习应用。 总结来说,mobilenet_v2-6a65762b.pth是一个用于深度学习任务的预训练模型文件,结合MobileNetV2网络架构和训练好的权重参数,可以帮助我们在移动设备和嵌入式设备上构建高效、准确的深度学习模型。 ### 回答2: mobilenet_v2-6a65762b.pth是一个模型文件,它是移动网络MobileNet)v2模型的一个版本。MobileNet是一种轻量级的卷积神经网络,特别适用于移动设备和嵌入式系统上的计算资源受限环境。MobileNet v2MobileNet的改进版本,通过引入轻量级残差连接和线性瓶颈结构,在保持模型大小和计算性能的同时,提高了准确度。 mobilenet_v2-6a65762b.pth是训练好的MobileNet v2模型的权重文件。通过使用这个权重文件,可以加载预训练好的MobileNet v2模型,从而进行图像分类、目标检测或特征提取等任务。 在深度学习中,预训练的模型权重文件将模型的参数保存在了.pth文件中,以便在需要的时候直接加载使用。这样做的好处是可以避免重新训练模型,节省时间和计算资源。这个权重文件是由在大规模图像数据集上训练得到的,所以模型已经具有较好的泛化能力,可以在各种图像数据上进行有效的预测。 加载mobilenet_v2-6a65762b.pth文件,可以实现快速且准确的图像识别和分类,广泛应用于计算机视觉领域。在图像分类任务中,该模型可以识别不同物体的类别,例如识别猫、狗、汽车等。在目标检测任务中,该模型可以检测图像中的物体位置和边界框信息。而在特征提取任务中,该模型可以提取出图像的高层语义特征,作为其他任务的输入或用于图像相似度比较等用途。 总之,mobilenet_v2-6a65762b.pth是一个预训练好的MobileNet v2模型权重文件,使用它可以方便地加载MobileNet v2模型,实现高效准确的图像分类、目标检测和特征提取等任务。 ### 回答3: mobilenet_v2-6a65762b.pth是一个预训练的模型文件,用于MobileNetV2模型的权重初始化。MobileNetV2是一种轻量级的卷积神经网络架构,用于图像分类和目标检测任务。该模型文件包含了已经在大规模数据集上训练好的权重参数,可以直接加载到相应的模型中进行使用。 mobilenet_v2-6a65762b.pth文件的命名规则通常以模型名称和一串唯一的标识符组成,用于区分不同版本或训练过程中的不同阶段。其中,6a65762b是一个标识符,用于确保文件的唯一性。 通过加载mobilenet_v2-6a65762b.pth文件,我们可以利用预训练的权重参数来加速模型的训练过程,并提高模型的性能表现。这是因为预训练权重已经在大规模数据集上进行了充分的训练,具有良好的特征提取能力和泛化能力。在加载预训练权重后,我们可以在较小的数据集上进行微调或进行迁移学习,从而在更小的计算成本内获取较好的结果。 总之,mobilenet_v2-6a65762b.pth是MobileNetV2模型的预训练权重文件,使用它可以帮助我们快速构建和训练具有强大特征提取能力的轻量级卷积神经网络

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖虎记录学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值