学术咨询

让论文发表更省时、省事、省心

深度神经网络压缩与加速综述

时间:2021年10月16日 分类:经济论文 次数:

摘要:近年来,随着图形处理器性能的飞速提升,深度神经网络取得了巨大的发展成就,在许多人工智能任务中屡创佳绩。然而,主流的深度学习网络模型由于存在计算复杂度高、内存占用较大、耗时长等缺陷,难以部署在计算资源受限的移动设备或时延要求严格的应用

  摘要:近年来,随着图形处理器性能的飞速提升,深度神经网络取得了巨大的发展成就,在许多人工智能任务中屡创佳绩。然而,主流的深度学习网络模型由于存在计算复杂度高、内存占用较大、耗时长等缺陷,难以部署在计算资源受限的移动设备或时延要求严格的应用中。因此,在不显著影响模型精度的前提下,通过对深度神经网络进行压缩和加速来轻量化模型逐渐引起研究者们的重视。本文回顾了近年来的深度神经网络压缩和加速技术。这些技术分为四类:参数量化、模型剪枝、轻量型卷积核设计和知识蒸馏。对于每个技术类别,本文首先分析了各自的性能及存在的缺陷。另外,本文总结了模型压缩与加速的性能评估方法。最后,讨论了模型压缩与加速领域存在的挑战和未来研究的可能方向。

  关键词:深度神经网络压缩与加速;深度学习;模型剪枝;知识蒸馏;参数量化

神经网络

  1引言

  近年来,深度神经网络DeepNeuralNetwork,DNN)受到了学术界和工业界的广泛关注,被大量应用于人工智能各个领域。然而,深度神经网络的成功很大程度上依赖于GPU(GraphicProcessingUnit,GPU)计算能力的发展。大型深度神经网络存在结构复杂、层级较多、节点数量巨大等特点,例如早期在ILSVRC竞赛中取得了重大突破的AlexNet是针对图像分类任务而设计的卷积神经网络,仅由个卷积层与个全连接层组成,所含参数量超过千万,模型大小超过240MB。

  此外,业界广泛使用的模型VGG16则拥有1.44亿个参数,模型大小超过00MB,ResNet152拥有0.57亿个参数,模型大小达到230MB。采用上述模型对一幅224×224的彩色图像进行分类,分别需要进行150亿次和13亿次浮点型计算。另外,由于ResNet系列模型具有复杂的分支结构,虽然其参数量相较于具有平坦结构的GG模型更小,但在实际训练和推理中耗时更长。

  神经网络论文范例: 基于树分类器神经网络的雷暴预测方法

  可见,主流深度学习模型的存储和计算成本对于具有严格时延约束条件的实时应用来说过于高昂。随着移动端设备的普及和市场规模的扩大,工业界迫切需要将深度学习模型部署到资源有限的边缘设备上。然而嵌入式设备和现场可编程门阵列(FieldProgrammableGateArray,FPGA)所具有的内存容量、计算资源与GPU相差几个数量级,面对庞大的神经网络模型显得捉襟见肘,因此模型压缩及加速的工作变得至关重要。目前,根据不同压缩与加速方法的性质,深度神经网络的压缩和加速方法可分为四类:参数量化、模型剪枝、轻量型卷积核设计和知识蒸馏。

  其中,基于参数量化的方法是降低权重参数的存储位数;基于参数剪枝的方法是通过去除权重参数中的非关键冗余部分来减少参数量;基于轻量型卷积核设计的方法从滤波结构乃至卷积方式的层面进行改进设计,从而降低计算复杂度;基于知识蒸馏的方法利用知识迁移来训练一个紧凑的网络模型且能复现大型网络的性能。

  我们将在下面的章节中分别对它们的特性和优缺点进行分析。具体地,我们将在后续章节中作进一步的介绍。本文剩余部分的安排如下:第节介绍模型压缩的主流方法;第节介绍常用数据集与性能评价准则;第节给出未来研究方向的一些相关探讨;第节给出总结。模型压缩方法本节将按照参数量化、模型剪枝、轻量型卷积核设计以及知识蒸馏的顺序进行介绍。

  2.1参数量化

  参数量化通过减少存储权重参数及激活值所需的比特位数来压缩原始网络。通过该方法,网络中权值和激活值都会被量化,并且浮点乘法累加操作(MultiplyAccumulate)可以被低比特的乘法累加操作代替。因此,使用降低比特数的方法可以显著减少内存存储占用和计算资源的耗费。Gong等人[1]和Wu等人[2]通过means聚类实现参数共享,只需要存储作为权重索引值的个质心而不是所有权重值,显著减少了内存开销。

  Gupta等人[3]在基于随机舍入的CNN(ConvolutionalNeuralNetwork)训练中采用了16位定点数表示,显著减少了模型的内存占用和浮点运算,而分类精度几乎没有损失。进一步地,Han等人[4]提出的方法利用权值共享对权值进行量化,然后对量化后的权值和索引表进行霍夫曼编码,以缩减模型大小。如图所示,首先对原始网络进行训练,学习神经元间的连接(connection),将权重较小的连接剪除,然后对稀疏网络进行重训练,学习得到紧凑的新网络。Choi等人[5]证明了利用Hessian权重来衡量网络权值重要性的可行性,并提出了一种聚类参数,用于最小化Hessian加权量化误差。Vanhoucke等人[6]的研究表明,将权重值量化至位,能够显著提升推理速度,同时保证最小的精度损失。

  Jacob等人[7]提出一种量化框架,在训练时保留位全精度存储方式,而在前向推理时对权重值与激活值进行位量化,从而用整数运算替代浮点数运算,显著降低了运算复杂度。目前位量化已经在工业界得到了广泛应用,除上述方法外,英伟达Nvidia)公司推出了TensorRTint量化工具,对于正负分布均匀的权重值与激活值采用最大值映射,将取值范围按一定比例映射至127,127),对于分布不均匀的值采用饱和截断映射,即在映射前截断部分区间,得到在正负区间对称的截断信息后再进行量化映射。值得一提的是,二值神经网络是网络量化的极端情况。

  一般情况下,网络模型中各项参数都采取32位单精度浮点数进行存储,而二值网络中将参数及特征图激活值都以+1,形式存储,每个值仅占用1比特内存,类似地,三值网络[8]采用+1, 的组合来量化权重。早期对网络二值化进行探索的几项工作,如BinaryConnect[9],BinaryNet[10]和XNOR1]等都是在模型训练过程中直接学习二值化权值或激活值。然而,由于大部分二值网络设计在利用矩阵近似的思想时未能充分考虑二值化带来的精度损失,并且网络量化将参数离散化,加剧了训练的不稳定性,在对诸如GoogleNet等大型CNN进行量化压缩后,容易导致二值网络在分类、检测任务中的精度显著降低。

  为解决这个问题,ou等人[12]的工作提出了一种近似牛顿算法(proximalNewtonalgorithm),该算法利用对角Hessian近似将二值权重的损失最小化。iu等人[13]提出一种可求导的软性量化(Differentiable SoftQuantization,DSQ),使网络在反向传播过程中获得更精确的梯度,以弥补二值网络前向传播过程中的量化损失。

  Lin等人[14]提出一种对权重进行随机二值化处理的压缩方法,随机二值化不仅能够减少浮点运算次数,还具有一定的正则化效果,能够抑制二值化造成的精度损失。Zhang等人[15]认为,由于DNN的权重、激活值在各个卷积层的数值分布是不同的,因此对整个网络采取统一标准的量化策略缺乏灵活性。他们提出一种可习得的量化器,即联合训练模型与其量化器,在训练过程中逐层优化量化策略,以提升压缩后的模型精度。

  Cai等人[16]提出一种基于半波高斯量化(halfwaveGaussianQuantization)的近似方法,在二值化权重的基础上,将激活函数ReLU(RectifiedLinearUnit)进行近似处理,以适应二值化网络的反向传播计算,使学习过程更加稳定,减小精度损失。Bethge等人[17]中提出一种二值化网络结构MeliusNet,该结构采用双块设计,能够连续地提升特征数量,此外该结构对一些保持32位存储的卷积层进行重新设计,极大地减少了运算量。

  2.2模型剪枝

  模型剪枝是模型压缩和加速中使用最为广泛的研究方法。模型剪枝的基本思想是通过在预训练的DNN模型中剪除冗余的、信息量少的权重,将网络结构稀疏化,从而降低内存开销,加速推理过程。剪枝方法包括非结构化剪枝和结构化剪枝。非结构化剪枝是最细粒度的方法,其操作对象是滤波(filter)中的每个权重;而结构化剪枝的操作对象是整个滤波,乃至整个卷积层这样的结构化信息。

  2.2.1非结构化剪枝

  早期的剪枝方法大都基于非结构化剪枝,由于它裁剪的粒度为单个神经元,因此在对卷积核进行非结构化剪枝时,得到稀疏分布的卷积核,即存在较多元素为0的矩阵,因此可以有效减少内存占用,加速推理。

  2.2.2结构化剪枝

  目前,在基于结构化剪枝的研究工作当中已涌现出许多出色的研究成果,解决了无法对稀疏矩阵计算进行加速的问题。此类方法遵循滤波显著性准则(即判别滤波对于模型性能重要性的准则),直接批量地剪除非显著性滤波,达到压缩目的。Wen等人[24]利用GroupLasso对模型中不同粒度的结构,包括滤波、通道、滤波形状、层深度(filters,channels,filtershapes,layerdepth)进行正则化,并将此正则化项加入目标函数,进行结构化稀疏训练。Zhou等人[25]向目标函数中加入稀疏性局限(sparseconstraints),然后在训练阶段通过稀疏限制减少神经元数量。

  该方法针对其特殊的优化过程还提出前后项分裂法,其作用是在标准的反向传播过程中,可以绕过不易求导的稀疏限制项。通过计算滤波的范数值,直接判断滤波的重要性的方法也相继被提出[26],该方法首先计算所有滤波的L1范数,逐层删除范数值低于阈值的滤波,同时移除该滤波在当前层生成的特征图(featuremap)以及该特征图在下一层中对应的滤波通道,剪枝后再进行重训练,恢复模型的精度。Liu等人[27]提出一种介于粗、细粒度之间的通道级别剪枝。

  该方法向存在于每个卷积层的批量标准化(BatchNormalization)中的缩放因子γ添加稀疏正则限制,并将此正则项加入目标函数,与模型损失函数联合训练,受正则化限制,部分缩放因子将衰减至接近的区域。由于批量标准化中超参数γ的大小能够直接改变特征图的分布,进而影响模型的表达能力,因此较小的缩放因子对应着全局贡献度较低的通道,对这些通道进行剪除,再通过微调(finetune)恢复模型精度,有效降低了网络的复杂度。不同于前述方法,Luo等人[28]越过当前层滤波,着眼于下一层滤波通道的显著性,建立了一个有效的通道选择优化函数,实现对下一层卷积核中冗余通道及其对应当前层滤波的剪枝。

  3数据集与性能评估准则

  3.1性能评估准则

  大多数研究都是采用每轮(epoch)训练的平均训练时间来衡量运行时间。对于不同的训练集,一般都采用Top正确率和Top正确率两种分类精度,其中Top正确率指概率最大的预测结果对应正确标签的概率,Top正确率指概率最大的个预测结果中包含正确标签的概率。

  4总结和展望

  本文首先概述了深度神经网络压缩与加速技术的研究背景;接着介绍了深度神经网络模型压缩及加速的四类主要方法,包括参数量化、模型剪枝、轻量型卷积核设计以及知识蒸馏;之后介绍分析了模型压缩与加速领域常用的数据集与性能评估准则;接下来对各类方法进行优劣分析。

  4.1方法优劣分析

  1)参数量化:基于参数量化的压缩方法在一定程度上缩减了模型大小,使得模型能够在计算资源与存储空间受限的移动端和嵌入式设备上高效运行。但量化后的权重和激活降低了网络的容量和特征图的质量,往往使得模型的表达能力大打折扣,另外,量化会向梯度信息中引入噪声,导致基于梯度下降法的训练过程收敛难度增加。这些缺陷会造成量化后网络的精度低于原始网络,二值化网络中精度损失更加严重。因此基于网络量化的压缩方法具有一定局限性,但量化具有较好的兼容性,在实际应用中常与其他压缩方法相结合。

  2)模型剪枝:基于模型剪枝的压缩方法具有直观的物理意义,在实际应用中也展现出理想的压缩性能,但该方法也存在一定缺陷。首先,相比于其他压缩方法,基于L1或L2正则化的剪枝收敛较慢,需要更多次数的迭代训练。其次,剪枝相当于优化网络的整体结构,对具有不同结构特点的网络模型往往不能采用完全相同的剪枝策略。对于不同类型网络在不同训练数据集下的剪枝方法还不能完全统一。

  此外,人工设计的剪枝方法需要根据不同层级的敏感度,手动调节剪枝阈值,重复微调参数,实现过程繁琐。而自动化剪枝能够综合评估多种剪枝方案,自动搜索最优结构,确定复杂的超参数,但对于大型网络来说,搜索空间过于庞大,对算力要求极高,耗时较长。

  3)轻量型卷积核设计:基于轻量型卷积核设计的压缩方法对原始卷积核进行紧凑设计或直接采用运算量远小于标准卷积的新式卷积计算方式,能够有效降低参数量,大幅减少浮点运算次数。但囿于轻量型卷积核设计的独特性,压缩后的模型十分紧凑,较难在其中综合应用其他压缩技术来进一步提升效果。另外,相比于大而深的原始模型,基于轻量型卷积核设计的网络模型由于容量受限,训练得到的特征泛化能力稍弱。

  4)知识蒸馏:基于知识蒸馏的压缩方法相当于用一个神经网络训练另一个神经网络,将大型复杂网络的知识迁移至小型简易网络中,利用小型网络来实现拥有与大型网络相同优越的性能和良好的泛化能力,并且显著降低了所需存储空间和计算资源。知识蒸馏的缺陷之一是只能应用于具有softmax分类器及交叉熵损失函数的分类任务,应用场景较为局限。另一个缺点是与其他类型的方法相比,基于知识蒸馏的压缩方法在大型数据集的表现略差。

  4.2未来发展趋势

  综合以上对近期研究成果的分析可以得知,深度神经网络压缩与加速的研究仍然具有巨大的潜力和研究空间,未来的研究工作不仅需要进一步提高模型压缩效率与推理速度,并且应打破学术界与工业界之间的壁垒。以下介绍模型压缩与加速领域需要进一步探索和开发的方向。

  1)与硬件紧密结合。针对卷积神经网络在不同硬件平台上的使用,提出一些与硬件紧密结合的压缩方法就是未来方向之一。具体包括基于硬件的自动量化以及将硬件加速器的反馈信息引入算法设计环中。与硬件密切结合的模型压缩方法可以使CNN具有更强的硬件平台适应性,以应对端设备部署带来的挑战。

  参考文献

  [1]GONGYunchao,LIULiu,YANGMing,etal.Compressingdeepconvolutionalnetworksusingvectorquantization[EB/OL].2014

  [2]WUJiaxiang,LENGCong,WANGYuhang,etal.Quantizedconvolutionalneuralnetworksformobiledevices[C]//2016IEEEConferenceonComputerVisionandPatternRecognition(CVPR).LasVegas,NV,USA.IEEE,2016:48204828.

  [3]GUPTAS,AGRAWALA,GOPALAKRISHNANK,etal.Deeplearningwithlimitednumericalprecision[C]//InternationalConferenceonMachineLearning.2015:17371746.

  [4]HANSong,MAOHuizi,DALLYWJ.Deepcompression:Compressingdeepneuralnetworkswithpruning,trainedquantizationandhuffmancoding[J].rXivreprintarXiv:1510.00149,2015.

  作者:曾焕强1,2胡浩麟2林向伟2侯军辉3蔡灿辉1

NOW!

Take the first step of our cooperation迈出我们合作第一步

符合规范的学术服务 助力您的学术成果走向世界


点击咨询学术顾问