神经网络压缩方法的研究文献综述

 2022-09-26 05:09

文献综述(或调研报告):

得益于深度神经网络的应用,许多领域取得了重大进展。然而,大多数深度神经网络模型对计算机内存空间和计算能力有着较高的要求,这限制了其在一些存储空间和计算能力较低的设备中部署。深度神经网络模型通常存在大量的权重参数,为了减少其对存储空间的占用,提出权值量化的深度神经网络压缩算法。目前已经有一些算法通过对权值量化编码来压缩深度神经网络模型。

二值权重网络(Binary Weight Networks,简称BWN)是指在浮点型神经网络的基础上,将其权重矩阵中权重值和各个激活函数值同时进行二值化得到的神经网络[5]。此算法将全精度权重量化为-1和1,并引入一个缩放因子使量化后的权重近似全精度权重,虽然可达到32 倍的模型压缩,但是识别准确率大幅下降,已无法满足复杂任务的识别或检测。三值权重网络(Ternary Weight Networks,简称TWN)算法针对二值权重网络算法识别准确率大幅下降的问题提出了一种三值权重网络,将全精度权重量化为-1、0 和1 来提高深度神经网络模型的容量,并且通过两位二进制数编码量化后的权重可实现16 倍的模型压缩。

参数共享[6]的主要思路就是多个参数共享一个值,其具体实现参数共享的方法也各不相同。近年来,量化作为参数共享的最直接表现形式,得到广泛的应用。参数量化压缩与加速深度网络模型主要的核心思想是利用较低的位(bit)代替原始32b浮点型的参数。参数共享的主要思路就是多个参数共享一个值,其具体实现参数共享的方法也各不相同。Gupta等人[2]提出舍入方案在确定网络于训练期间的行为中起着至关重要的作用。将全精度浮点型参数量化到16b固定长度表示,并在训练过程中使用随机舍入(stochastic rounding)技术,从而缩减网络存储和浮点计算次数。使用动态固定点(dynamic fixed point)量化,在量化AlexNet网络时,几乎可以做到无损压缩。对于传统网络(如AlexNet和VGG-16),全连接层的参数存储占整个网络模型的95%以上,所以探索全连接层参数冗余性将变得异常重要。利用Hash函数和结构化线性映射相继提出,可用于实现全连接层的参数共享,大大减低模型的内存开销。目前量化权值,特别是二值化网络,存在的问题为,对于压缩与加速大的深度网络模型(如GoogLeNet和ResNet),存在分类精度丢失严重现象。现有方法只是采用简单地考虑矩阵近似,忽略了二值化机制对于整个网络训练与精度损失的影响。

参数剪枝算法的主要实现思路是发现对网络贡献较小的参数并精简,然后重新训练精简后的稀疏网络以达到减少非0网络参数的个数并保留或提高网络精度的目的,此类方法属于改变网络密度类方法[1,6,8]。此方法通过对已有的训练好的深度网络模型移除冗余的、信息量少的权值,从而减少网络模型的参数,进而加速模型的计算和压缩模型的存储空间。不仅如此,通过剪枝网络,能防止模型过拟合。韩松等人[1]提出了一种基于低值连接的删除策略(low-weight connection prunning),该剪枝方法包括3个阶段,即训练连接、删除连接、重训练权值。第1阶段通过正常训练,学习重要的连接;第2阶段通过计算权值矩阵的范数,删除节点权重的范数值小于指定的阈值的连接,将原始的密集网络(dense network)变成稀疏网络;第3阶段通过重新训练稀疏网络,恢复网络的识别精度。以上剪枝方法通常引入非结构化的稀疏连接,在计算过程中会引起不规则的内存获取,相反会影响网络的计算效率。参数剪枝的缺点在于,简单利用非结构化剪枝,无法加速稀疏化矩阵计算。虽然近年来,相关软件与硬件已被利用进行加速计算,但依靠软硬件的非结构化剪枝方案还无法在所有深度学习框架下使用,另外硬件的依赖性会使得模型的使用成本提高。

韩松等人也在论文“Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman coding”[1]中运用K-means的聚类方法,将权值接近的共享。K-means聚类算法是是一种自下而上的聚类方法,其算法简单,速度快。先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。聚类中心的初始化也会影响网络的精度,作者提出了三种初始化方法,分别为:Forgy、Density-based和Linear,经验证,Linear的初始化效果最佳。将删减后的参数使用K-means方法对每层参数进行聚类,聚类的簇数为k。因为每个簇的中心值都是代表该簇中各个连接的参考参数,所以将簇内的各个参数共享簇的中心值作为其权重值。

知识蒸馏(KD)的基本思想是通过软SoftMax变换学习教师输出的类别分布,并将大型教师模型(teacher model)的知识精炼为较小的模型[8]。近年来,知识蒸馏提出了可以将较深和较宽的网络压缩为浅层模型,该压缩模型模仿了复杂模型所能实现的功能。虽然基于知识蒸馏的深度神经网络压缩与加速方法能使深层模型细小化,同时大大减少了计算开销,但是依然存在2个缺点:首先,它仅限于具有SoftMax损失函数分类任务,这限制了其应用;其次,模型的假设较为严格,导致其性能可能比不上其他压缩与加速方法。

除上述神经网络压缩方法外,还有许多未提及的权值量化方案,都能在不同情况下得到良好的神经网络压缩性能。根据不同任务的需要,在不同卷积神经网络中选择不同的压缩与加速方法,能最优化的达到加速神经网络计算及减小存储空间的需求。更多深度神经网络压缩与加速技术嵌入终端设备,实现实际应用落地。随着深度神经网络压缩与加速方法的快速推进与发展,对于分类任务的压缩与加速方面已取得较大进步。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。