1简介
近年来,Compact卷积神经网络(CNNs)的性能有了显著的提高。然而,在参数众多的情况下,它们仍然无法提供与普通CNN相同的预测能力。这些层捕获的多样且丰富的特征是这些CNN的一个重要特征。
然而,大型CNN和小型CNN在这一特性上的差异很少被研究。在Compact CNN中,由于参数数量有限,不太可能获得丰富的特征,特征多样性成为本质特征。在模型推断期间,从数据点派生的激活映射中呈现的不同特征可能表明存在一组惟一描述符,这是区分不同类的对象所必需的。
相比之下,特征多样性较低的数据点可能无法提供足够数量的描述符来进行有效预测;作者称之为随机预测。随机预测会对优化过程产生负面影响,并损害最终性能。
本文提出通过重塑标准交叉熵来解决随机预测带来的问题,使其偏向具有有限数量独特描述特征的数据点。本文所提出的新型Bias Loss将训练重点放在一组有价值的数据点上,防止大量学习特征差的样本误导优化过程。此外,为了说明多样性的重要性,作者提出了一系列SkipNet模型,其体系结构增加了最后一层的唯一描述符的数量。实验表明,所提出的损失函数优于交叉熵损失。此外,与MobileNetV3 Large相比,Skipnet-M在相似的计算条件下,在ImageNet上分类准确率提高了1%。
总结起来,本文的贡献有3个方面:
- 设计了损失函数,以减少随机预测在Compact CNN优化中的误导;
- 提出了一个有效的神经结构SkipNet模型,以增加数据点的数量与大量独特的描述特征;
- 在资源受限的条件下,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神经网络中,数据点无法提供足够数量的独特特征来描述物体,迫使模型产生随机预测,也就是说,在没有特征多样性的情况下进行预测。
作者在所有的实验中,作者采用信号方差来作为多样性的一个简单度量,它可以表明特征图从平均值扩散到多远。这种选择背后的直觉是,方差越高获得大量独特特征的机会就越高。
式中,在每次迭代时,Max和min分别为该批特征图中激活量的最大值和最小值。这样做是为了确保方差值中的异常值不会导致损失的大变化,也不会使模型不稳定。
此外,作者建议将关于缺乏唯一描述特征的知识注入优化过程中,为此,作者提出了新的损失函数,即Bias Loss。Bias Loss是一种动态缩放的交叉熵损失,其尺度随着数据点方差的减小而衰减。
式中,α和β为可调参数,v为卷积层输出的缩放方差。下图显示了几个α和β值的偏置函数。
作者注意到偏差函数的2个性质:
- 当方差较低时,函数值达到最小值(1−β),这些数据点的影响是向下加权的。随着方差的增加,z(v)的值随着数据点的影响呈指数增加。
- 参数α平滑地调整高方差示例的影响率。随着α的增大,高方差数据点的影响也增大。
此外,下图给出了基于方差和预测得分的偏差损失值。
对于正确和错误预测的低置信度和低方差数据点,损失是向下加权的。此外,对于高置信度和高方差的错误预测,它是向上加权的,因为从这类具有大量独特特征的数据点学习,可以对优化过程产生积极的影响。实验结果表明,选择α=0.3;β=0.3获得最佳性能。
从直观上看,所提出的函数有助于将学习重点放在能够提供大量独特特征的样本上,并减少在优化过程中可能因随机预测而造成的误导。
4 SkipNet
作者还引入了一个新的计算块。所提出的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
很好的做到了速度与精度的平衡,是一个非常不错的工作。
6参考
[1].Bias Loss for Mobile Neural Networks
END
原文:集智书童
作者: ChaucerG
推荐阅读
- 遮挡人脸问题 | 详细解读Attention-Based方法解决遮挡人脸识别问题
- AlphaFold/ RoseTTAFold开源复现(1)—推理复现
- 基于Msnhnet实现最优化问题(中)一(无约束优化问题)
更多嵌入式AI技术干货请关注嵌入式AI专栏。