掌桥专利:专业的专利平台
掌桥专利
首页

一种基于随机敏感度ST-SM的深度神经网络剪枝方法及系统

文献发布时间:2023-06-19 11:11:32


一种基于随机敏感度ST-SM的深度神经网络剪枝方法及系统

技术领域

本发明涉及机器学习领域,尤其涉及一种基于随机敏感度ST-SM的深度神经网络剪枝方法及系统。

背景技术

深度神经网络(Deep Neural Network,DNN)在机器学习、人工智能领域具有重要意义,其广泛应用于图像分类、目标检测、语音识别等细分领域。然而,深度神经网络的应用受制于其高昂的空间和时间开销。由于深度神经网络由多个层堆叠而成,每个层又由多个节点组成,存储、运行深度神经网络模型需要占用大量硬盘、内存空间,且运算量大,需要依赖专门的硬件如GPU等才能满足响应时间要求。因此,本文提出一种基于随机敏感度的深度神经网络剪枝方法,该方法通过随机敏感度对深度神经网络中的节点进行评估,对较不敏感的节点作剪枝,减少节点参数数量,并对剪枝后的网络模型进行权重补偿和重训练,改善其性能,进而在不影响模型精度的前提下,实现较有效的深度神经网络压缩和加速。

目前,解决深度神经网络空间和时间开销过大问题的方法主要有:剪枝、权重量化和聚簇、张量分解、采用轻量化结构等。其中,基于剪枝的方法通过移除深度神经网络模型的组成成分,如连接、节点等来达到压缩和加速的目的。基于剪枝的方法主要分为非结构化剪枝和结构化剪枝两类。非结构化剪枝在剪枝时以连接为单位,被删除的连接权重被置为0,若一个节点的所有相关连接的权重都被置为0,则这个节点对网络无任何影响,此种情况下该节点会被删除。非结构化剪枝可实现较高的压缩率,但由于被置0的连接零散地分布在各个节点中,它们虽然已经被删除,却仍然占用存储空间,需要通过专门的稀疏编码方式来存储才能实现真正的压缩和加速效果。因此,非结构化剪枝的实际应用依赖于专门的软件和硬件,应用范围受到限制。与非结构化剪枝不同,结构化剪枝通过移除节点、卷积核、模块等更大的单元来实现压缩与加速。这一区别带来的好处是,经过结构化剪枝的深度神经网络模型仅在节点等单元数量上与原来不同,不需要依赖专门的软件和硬件,更容易为现有神经网络框架所支持。但由于每次移除的是整个的节点,结构化剪枝对深度神经网络模型的性能影响较大,实现的压缩率较非结构化剪枝低。

现有的剪枝方法中,如何选择要删除的节点,是一个重要的问题。现有的基于剪枝的深度神经网络模型压缩和加速方法主要是通过节点的权重范数来衡量节点的重要性,如通过节点的L1、L2范数判断节点重要性,并将范数较小的节点删除。Han等人通过连接的L1范数来衡量其重要性,并删除范数较小的连接。Li等人通过卷积核的L1范数来衡量卷积核。然而,Zhuang等人的研究表明,范数较小的连接或节点,对模型的最终输出可能会有重要意义。为解决这一问题,Guo等人提出一种基于剪枝-恢复的迭代方法,他们仍以L1范数为衡量标准,并在剪枝的过程中,寻找已被剪去的重要的连接,将其恢复。由于这些方法仍然是基于连接或节点的权重范数,它们并不能很好地反映连接或节点对网络的意义。

如何处理剪枝过程中带来的模型性能下降,是剪枝方法需要应对的另一个重要问题。Han、Luo等人的方法中利用重训练来恢复剪枝后模型的性能。但由于在剪枝过程中,由于节点的大量移除,模型的性能迅速下降,如在移除节点的过程中不断进行迭代式的重训练,则其耗费的时间极长;如在移除所有节点后才进行重训练,则由于大量节点被删除,这些被删除节点在初次训练时学到的信息已经丢失,无法在重训练时被剩余节点所利用,因此重训练后的模型性能较差。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明公开了一种基于随机敏感度ST-SM的深度神经网络剪枝方法及系统,所述方法包括如下步骤:

步骤1,利用随机敏感度衡量剪除节点对后继层输出的影响、挑选需要剪除的节点,以减少剪枝过程对网络性能的损害;

步骤2,利用权重补偿重建被剪枝层的节点输出,以减少剪枝过程中的模型性能退化,用训练集样本构造补偿权重需满足的方程组,通过共轭梯度预处理正则方程CGPCNE方法解出该方程组,得到补偿权重值,并对剩余节点权重进行补偿;

步骤3,利用重训练改善剪枝后模型的性能。

更进一步地,所述步骤1进一步包括:所述步骤1进一步包括:采用随机敏感度衡量剪除该节点对后继层输出的影响。对深度神经网络模型进行权重扰动,设被剪枝层为深度神经网络中的第i层,则对后继层输出的影响可定义为扰动前后,第i+1层输出的变化量,即

ΔY

其中Y

随机敏感度定义为扰动前后,第i+1层输出变化量平方的期望在训练集的所有N个样本上的平均值,即

其中

其中N

w

得到扰动后的权重w

通过此种方法,即可求得第i层中每一个节点的随机敏感度ST-SM,将所有的点根据随机敏感度ST-SM值从小到大排序,随机敏感度ST-SM值小的节点被删除,直到该层的剪枝比例达到要求。

更进一步地,所述步骤2进一步包括:对经过剪枝的层,进行权重补偿以重新构建其原有输出,所述权重补偿的核心思想是,构造权重补偿向量,使得权重补偿向量带来的输出变化量,能够抵消被剪节点的原有输出,以保证后续各层接收到的输入不变。

对于全连接网络,设被剪枝的是第i层的第k个节点,对第i+1层,其接收到的原有输入为

X

此处Y

第i层剩余各节点共同贡献的部分为

此处N

即需要令剩余各节点在经过补偿后,其输出与原来相同。

由于剩余节点原有权重贡献的输出不变,且同时被等式两边所包含,上式可化简为

以上为一次仅剪去单个节点的情况。考虑多个节点被剪去的情况,设有K个节点被剪去,则该式可表示为

上式中,

更进一步地,所述步骤3进一步包括:通过重训练,改善剪枝后模型的性能。重训练是指,在步骤1、步骤2完成后,对剪枝后的深度神经网络模型,利用训练集样本进行重训练,其中训练所采用的学习率应远小于初次训练模型时的学习率。重训练在每次剪枝、补偿完一个网络层后进行。

本发明进一步公开了一种基于随机敏感度ST-SM的深度神经网络剪枝系统,其特征在于,所述系统包括如下模块:

节点剪除模块,利用随机敏感度衡量剪除节点对后继层输出的影响、挑选需要剪除的节点,以减少剪枝过程对网络性能的损害;

权重补偿模块,利用权重补偿重建被剪枝层的节点输出,以减少剪枝过程中的模型性能退化,用训练集样本构造补偿权重需满足的方程组,通过共轭梯度预处理正则方程CGPCNE方法解出该方程组,得到补偿权重值,并对剩余节点权重进行补偿;

重训练模块,利用重训练改善剪枝后模型的性能。

随着深度神经网络模型在各领域的广泛应用,剪枝凭借可观的压缩率和简便的操作成为解决深度神经网络模型空间和时间开销过大问题的较常用方法。然而,现有的剪枝方法通常用L1、L2范数等来作为选择待移除节点的指标,而这些指标并不能很好反映节点对整个网络模型的重要性,以及移除该节点,对该层及后续各层输出的影响。此外,现有的用于恢复剪枝后模型性能的重训练手段通常受制于时间—性能权衡问题,迭代式的重训练会消耗大量时间,而一次性的重训练则会因为剪枝过程中节点信息的大量丢失,导致重训练后的模型性能不佳。因此,本专利针对深度神经网络剪枝中的待删节点选择与重训练问题,提出了一种高效的剪枝方法。该方法通过随机敏感度(ST-SM)来选取待移除的节点,更有效地反映出删除该节点对输出的影响;同时,通过权重补偿重构被剪枝层的输出,减少剪枝过程中的信息丢失,让重训练过程能更快地收敛,同时取得更好的模型性能。

采用本发明产生的有益效果在于:

1、本发明提供一种基于随机敏感度的深度神经网络剪枝方法。在剪枝过程中,利用随机敏感度(ST-SM)衡量剪除节点对后继层输出的影响、挑选需要剪除的节点,以减少剪枝过程对网络性能的损害;

2、在进行剪枝后,利用权重补偿重建被剪枝层的节点输出,以减少剪枝过程中的模型性能退化,用训练集样本构造补偿权重需满足的方程组,通过共轭梯度预处理正则方程(CGPCNE)方法解出该方程组,得到补偿权重值,并对剩余节点权重进行补偿,改善性能。

3、最后,利用重训练改善剪枝后模型的性能,该方法能在维持模型原有性能的前提下,通过剪枝减少深度神经网络模型的参数数量,对深度神经网络模型进行压缩与加速,有效减少模型空间开销,提升运行效率。

附图说明

从以下结合附图的描述可以进一步理解本发明。图中的部件不一定按比例绘制,而是将重点放在示出实施例的原理上。在图中,在不同的视图中,相同的附图标记指定对应的部分。

图1为本发明逻辑流程示意图。

图2为本发明所使用的全连接网络权重补偿过程示意图。

图3为本发明所使用的卷积神经网络权重补偿过程示意图。

具体实施方式

实施例一

本发明提出的基于随机敏感度(Stochastic Sensitivity Measure,ST-SM)的深度神经网络剪枝(Deep Neural Network,DNN)方法是一种结构化剪枝方法,它通过剪枝来达到压缩深度神经网络、减少其空间和时间开销的目的。在剪枝过程中,首先计算该层每个节点的随机敏感度ST-SM,并根据ST-SM进行排序,将ST-SM最小的那部分节点删除,然后进行权重补偿,通过往原有权重上添加计算出的补偿权重向量,重构该层的输出,使后继层接收到的输入保持不变,进而维护模型的性能。最后,对剪枝和补偿完的模型进行重训练,进一步改善被剪枝模型的性能。图1显示了该方法的算法流程图。

在本发明方法中,我们需要首先对被剪枝的层进行节点挑选,选出要被删除的节点。假如采用以往的基于范数的方法,这些方法通过计算节点的权重范数来决定它们的重要性,将范数较小的节点删除。然而,已有研究表明,范数较小的节点对模型的输出也会有重要影响,因此,这些基于范数的方法并不能很好地体现节点的重要性,以及删除该节点对模型带来的影响。本发明基于随机敏感度ST-SM的方法来挑选待删除的节点。这一方法通过计算节点的ST-SM来衡量删除该节点后,后继层输出的变化量。该方法能更有效的反映出删除这一节点对模型的影响,尽量选取对模型影响小的节点进行删除,减少了剪枝过程对模型性能的损害。对深度神经网络模型进行权重扰动,设被剪枝层为深度神经网络中的第i层,则对后继层输出的影响可定义为扰动前后,第i+1层输出的变化量,即

ΔY

其中Y

随机敏感度定义为扰动前后,第i+1层输出变化量平方的期望在训练集的所有N个样本上的平均值,即

其中

其中N

w

得到扰动后的权重w

通过此种方法,即可求得第i层中每一个节点的随机敏感度ST-SM,将所有的点根据随机敏感度ST-SM值从小到大排序,随机敏感度ST-SM值小的节点被删除,直到该层的剪枝比例达到要求。

对经过剪枝的层,进行权重补偿以重新构建其原有输出,所述权重补偿的核心思想是,构造权重补偿向量,使得权重补偿向量带来的输出变化量,能够抵消被剪节点的原有输出,以保证后续各层接收到的输入不变。

对于全连接网络,设被剪枝的是第i层的第k个节点,对第i+1层,其接收到的原有输入为

X

此处Y

第i层剩余各节点共同贡献的部分为

此处N

即需要令剩余各节点在经过补偿后,其输出与原来相同。

由于剩余节点原有权重贡献的输出不变,且同时被等式两边所包含,上式可化简为

以上为一次仅剪去单个节点的情况。考虑多个节点被剪去的情况,设有K个节点被剪去,则该式可表示为

上式中,

对于卷积神经网络(Convolutional Neural Network,CNN),网络节点以卷积核的形式出现。由于第i+1层中接收到的各个输入通道系由第i层中的各卷积核独立产生,互不影响,因此对第i层作补偿无法维持第i+1层的输入不变,应对第i+1层的卷积核作补偿,以保证第i+1层的输出不变,进而保持第i+2层及后续各层接收到的输入不变。

对于第i+1层的第k个卷积核,其输出可表示为

其中f()为激活函数。补偿的目标是使得经过剪枝和补偿后第i+1层的输出与剪枝前的相同,即

其中等式左边为第i+1层在剪枝前的原有输出,右边为进行剪枝和补偿后,第i+1层的输出。由于两边的激活函数相同,且激活函数为线性,函数值相同的情况下必然满足函数的输入也相同,因此可对等式两边去掉激活函数,即

对于剩余的卷积核,其原有权重前后不变,贡献的输出相同,因此可从等式两边减去,上式化简为

考虑剪除多个卷积核的情况,上式可表示为

其中,

最后,通过重训练,改善剪枝后模型的性能。重训练是指,在步骤1、步骤2完成后,对剪枝后的深度神经网络模型,用训练集样本进行重训练,其中训练所采用的学习率应远小于初次训练模型时的学习率。重训练在每次剪枝、补偿完一个网络层后进行。

本方法可以实现对深度神经网络模型的良好压缩和加速效果,有效减少深度神经网络模型的空间和时间开销。本实例所提出的方法和现有相关剪枝算法在模型和数据集VGG16+CIFAR-10,AlexNet+ILSVRC2012上的压缩和加速效果如表1、表2所示,表格中所对比的方法均为近年模型压缩领域的领先方法。在VGG16+CIFAR-10实验上,本专利所述方法在保持模型准确率不下降(且略有提升)的前提下,将模型的参数量减少了63.9%,远高于Synaptic Strength的51.8%,与PFEC相当,仅次于VariationalPruning;但其浮点运算减少量高于VariationalPruning与PFEC,仅次于Sypnatic Strength。在AlexNet+ILSVRC2012实验中,本专利所述方法在同样保持准确率基本不变(仅下降0.07%),仍实现了61.2%的参数减少量和49.7%的浮点运算减少量,高于NISP-D;该压缩和加速效果虽次于EfficientPruning,但模型准确率的下降值较EfficientPruning减少了3.67%。由以上数据对比可见本实例所发明方法的有效性。

表1

表2

图2对本专利所述方法在全连接网络上的实施过程进行了展示。图2(左)展示了原有的部分网络结构;图2(中)展示了对全连接网络进行剪枝的过程,通过随机敏感度(ST-SM)对节点进行评价,挑选出敏感度较小的节点进行删除,被删除的节点(虚线圆形)及其相关的连接(虚线箭头)均被移除;图2(右)展示了对全连接网络进行补偿的过程,计算出补偿向量后,将其加到原有权重上,起到重构输出的作用。

图3对本专利所述方法在卷积神经网络(CNN)上的实施过程进行了展示。图3第一行展示了原有的部分网络结构,每一层的输出经过卷积,作为后一层的输入;第二行展示了对卷积神经网络进行剪枝的过程,利用随机敏感度对节点(卷积核)进行评价,挑选出敏感度较小的卷积核进行删除,被删除的卷积核(第i层权重的虚线框)、第i+1层的对应输入通道(输入部分的虚线框)、第i+1层的对应权重通道(权重部分的虚线框)均被移除;第三行展示了对剪枝后的卷积神经网络进行补偿的过程,由于直接对第i层作补偿无法保证后面的层接收到的输入不变,对此做出调整,改为对第i+1层进行补偿,以保证第i+2层接收到的输入不变。除因网络结构不同而做出的调整导致补偿的层不同以外,整个过程的原理、计算过程、效果仍与本专利所述方法相同。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

虽然上面已经参考各种实施例描述了本发明,但是应当理解,在不脱离本发明的范围的情况下,可以进行许多改变和修改。因此,其旨在上述详细描述被认为是例示性的而非限制性的,并且应当理解,以下权利要求(包括所有等同物)旨在限定本发明的精神和范围。以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

相关技术
  • 一种基于随机敏感度ST-SM的深度神经网络剪枝方法及系统
  • 基于层恢复敏感度的分级剪枝方法
技术分类

06120112836094