超越MobileNet V3 | 详解SkipNet+Bias Loss=轻量化模型新的里程碑

2021-07-29 11:57:55 浏览数 (1)

1简介

近年来,Compact卷积神经网络(CNNs)的性能有了显著的提高。然而,在参数众多的情况下,它们仍然无法提供与普通CNN相同的预测能力。这些层捕获的多样且丰富的特征是这些CNN的一个重要特征。

然而,大型CNN和小型CNN在这一特性上的差异很少被研究。在Compact CNN中,由于参数数量有限,不太可能获得丰富的特征,特征多样性成为本质特征。在模型推断期间,从数据点派生的激活映射中呈现的不同特征可能表明存在一组惟一描述符,这是区分不同类的对象所必需的。

相比之下,特征多样性较低的数据点可能无法提供足够数量的描述符来进行有效预测;作者称之为随机预测。随机预测会对优化过程产生负面影响,并损害最终性能。

本文提出通过重塑标准交叉熵来解决随机预测带来的问题,使其偏向具有有限数量独特描述特征的数据点。本文所提出的新型Bias Loss将训练重点放在一组有价值的数据点上,防止大量学习特征差的样本误导优化过程。此外,为了说明多样性的重要性,作者提出了一系列SkipNet模型,其体系结构增加了最后一层的唯一描述符的数量。实验表明,所提出的损失函数优于交叉熵损失。此外,与MobileNetV3 Large相比,Skipnet-M在相似的计算条件下,在ImageNet上分类准确率提高了1%。

总结起来,本文的贡献有3个方面:

  1. 设计了损失函数,以减少随机预测在Compact CNN优化中的误导;
  2. 提出了一个有效的神经结构SkipNet模型,以增加数据点的数量与大量独特的描述特征;
  3. 在资源受限的条件下,SkipNet模型在ImageNet分类任务上达到了最先进的性能。

2相关工作

2.1 Mobile Architectures

在已经开发的几种CNN架构中,MobileNet和ShuffleNet系列是比较优秀的工作,因为他们具有好性能的同时实现了更少的FLOPs。

MobileNetV2引入了inverted residual blocks,以改进MobileNetV1的性能。此外,MobileNetV3利用NAS(神经体系结构搜索)技术,以更少的FLOPs实现更高的性能。

ShuffleNet引入了通道shuffle操作,以提高通道组内的信息流动。ShuffleNetV2进一步提高了硬件上的实际速度。尽管用很少的flop实现了高性能,但是在网络的最后一层保持独特描述特性的重要性一直没有得到很好的利用。

为此,作者提出了SkipNet体系结构,该体系结构旨在增加最后一层中唯一描述特性的数量,并减少随机预测的数量。SkipNet与以前的高性能CNN有很多相似之处,特别是MobileNetV3中使用的inverted residual blocks和U-Net中使用的跳连的概念。作者强调通过简单修改取得了卓越的结果,该修改不是由于设计上的创新,而是由于网络与损失的结合。

2.2 损失函数

在许多任务中,最常见的目标函数选择是交叉熵。然而,各种研究表明,旨在解决特定问题的损失函数的设计可以有显著的好处。

Focal loss提出对标准交叉熵进行重塑,以解决目标检测器在训练过程中遇到的前景-背景类不平衡的问题。

标签平滑的机理建议在交叉熵计算中使用soft目标。这些soft目标是原始目标的加权混合,并在标签上均匀分布。这项技术有助于防止网络在图像分类、语言翻译和语音识别等众多任务中出现过拟合。

各种各样的研究试图解决噪音标签造成的障碍。在reweight论文中,作者引入了加权交叉熵的变化,其中权值由多层感知器学习。这些工作的重点主要是优化具有大量参数的模型的性能。

相反,本文的损失是为了解决Compact模型中缺少参数而产生的问题,即随机预测可能导致优化过程中出现误导的问题。

3Bias Loss

本文所设计的Bias Loss是为了解决在深度卷积神经网络优化过程中由于随机预测而导致的误导问题。作者认为在compact神经网络中,数据点无法提供足够数量的独特特征来描述物体,迫使模型产生随机预测,也就是说,在没有特征多样性的情况下进行预测。

作者在所有的实验中,作者采用信号方差来作为多样性的一个简单度量,它可以表明特征图从平均值扩散到多远。这种选择背后的直觉是,方差越高获得大量独特特征的机会就越高。

对于方差计算,作者使用最后一个卷积层(在池化和dropout操作之前)的特征映射。这有助于避免在结果和估计更好的学习信号的数据点。设

Tin R^{b×c×h×w}

为卷积层的输出,其中b为batchsize,c为输入通道数量,h和w为张量的高度和宽度。在方差计算之前,T被展开成一个二维数组

tin R^{b×n}

,其中

n=c×h×w

。批处理中第

i

个数据点的特征图方差为:

其中:

此外,在损失函数中方差被缩放到[0,1]范围内,即:

式中,在每次迭代时,Max和min分别为该批特征图中激活量的最大值和最小值。这样做是为了确保方差值中的异常值不会导致损失的大变化,也不会使模型不稳定。

此外,作者建议将关于缺乏唯一描述特征的知识注入优化过程中,为此,作者提出了新的损失函数,即Bias Loss。Bias Loss是一种动态缩放的交叉熵损失,其尺度随着数据点方差的减小而衰减。

Xin R^{c×h×w}

为特征空间,其中c为若干输入通道,h,w为输入数据的高度和宽度,

Y={1,...,K}

为标签空间,其中k为类的数量。在一个标准场景中有一个数据集

D=(x_i,y_i)^N_{i=1}

,其中每个

(x_i,y_i)in X×Y

,神经网络

f(X;theta)

,其中θ为模型参数。通常,训练的目的是通过最小化训练集的期望损失来学习模型。一般来说,分类问题的交叉熵损失为:

其中,作者认为神经网络的输出层是一个softmax。为了校准每个数据点对累积损失的贡献,作者建议添加一个非线性尺度函数,其目的是在低方差和高方差的数据点之间产生bias。bias loss定义为:

式中,α和β为可调参数,v为卷积层输出的缩放方差。下图显示了几个α和β值的偏置函数。

作者注意到偏差函数的2个性质:

  1. 当方差较低时,函数值达到最小值(1−β),这些数据点的影响是向下加权的。随着方差的增加,z(v)的值随着数据点的影响呈指数增加。
  2. 参数α平滑地调整高方差示例的影响率。随着α的增大,高方差数据点的影响也增大。

此外,下图给出了基于方差和预测得分的偏差损失值。

对于正确和错误预测的低置信度和低方差数据点,损失是向下加权的。此外,对于高置信度和高方差的错误预测,它是向上加权的,因为从这类具有大量独特特征的数据点学习,可以对优化过程产生积极的影响。实验结果表明,选择α=0.3;β=0.3获得最佳性能。

从直观上看,所提出的函数有助于将学习重点放在能够提供大量独特特征的样本上,并减少在优化过程中可能因随机预测而造成的误导。

4SkipNet

作者还引入了一个新的计算块。所提出的block可以很容易地集成到现有的体系结构中,并且不需要额外的工作就可以促进向最后一层的信息流。

4.1 Skip Block

skip block想法是直接将low-level features从第一层传递到最后一层。块的设计是由U-Net架构驱动的,在自动编码器风格的架构中,编码器和解码器中具有相同空间维度的层的输出通过skip connections连接起来。

一般来说,在分类网络中,层空间大小逐渐减小,无法直接使用skip connections。为了解决这一限制,作者提出了一个中间块,它将不同空间大小的层连接起来,并利用从第一层提取的low-level特征来丰富最后一层。

如图所示,skip block由池操作和卷积组成。首先,为了保持关键特征和减小空间大小,作者采用自适应平均池化,然后采用3个卷积层。批处理归一化(BN)和ReLU非线性应用在每个卷积层之后,除了最后一个没有使用ReLU的卷积层。选择自适应平均池化是因为它考虑了所有的特性,使得skip block可以处理所有的输入值。卷积层参数采用了MobileNetV3中对inverted residual blocks的setting。

4.2 SkipNet

由于主要目标是增加compact神经网络中独特描述特性的数量,同时降低计算复杂性,因此提出了一种部署skip blocks的SkipNet架构。由于MobileNetV3优越的性能,所以将其作为设计基准。

SkipNet(上图)由inverted residual blocks和MobileNetV3的分类块组成,其中包括我们的新skip块。

第一层是由15个inverted residual block进行卷积。

在第一个卷积块之后插入2个skip block(图4),将信息传递给第6和第10个inverted residual block。

在skip和inverted residual block之后,再应用卷积层和全局平均池化,最终得到由dropout层和全连接层组成的分类块。

与MobileNetV3类似,SkipNet使用hard-swish非线性函数。从表2中可以看出,SkipNet在移动设备上的延迟与MobileNetV3相当。

尽管所描述的体系结构已经能够保证高性能和低延迟,但在某些情况下可能需要更快的模型或更高的精度。为了提供一个完全可定制的网络,作者将inverted residual block中的宽度乘法器集成到skip block中以控制每层通道的数量。

通过操纵宽度乘法器,可以改变整个网络的宽度。这将导致模型大小和计算成本的变化,以及性能的变化。通常,乘法器的增加将导致性能和延迟的增加,反之亦然。介绍的体系结构提供了一个基本的设计供参考,为了进一步改进,可以使用AutoML方法来调优skip block并提高性能。

5实验

5.1 ImageNet Classification

5.2 Object Detection

很好的做到了速度与精度的平衡,是一个非常不错的工作。

0 人点赞