基于神经网络相邻结构依存关系的网络剪枝方法与流程

专利2022-06-29  104


本发明属于神经网络模型压缩领域,特别涉及一种神经网络的通道裁剪方法。



背景技术:

近年来,随着深度学习的发展,卷积神经网络(cnn)在许多计算机视觉任务上取得了优良的性能。然而,卷积神经网络在评测时往往需要高性能的计算资源的支持,这一点便限制了其在移动设备上的应用。网络剪枝便是一种降低神经网络的计算复杂度,同时尽可能小地损失精度的网络压缩方法。在网络剪枝中,通道剪枝能够得到结构化的网络结构,可以更方便地集成到现代深度学习的框架(如pytorch,tensorflow等)中,因此,通道剪枝有着更广阔的实际应用前景。

一般的网络剪枝方法分为三步:1)以稀疏化正则训练一个过度参数化的大网络;2)评估网络每个通道的重要性,并裁减掉重要性较低的通道;3)微调裁剪后的模型以恢复性能。国际上对网络剪枝,尤其是通道剪枝的研究大体上可分为两类:a)基于数据的通道剪枝和b)不基于数据的通道剪枝。基于数据的通道剪枝利用训练样本决定各通道的重要性,代表工作有povlomolchanov等人提出的importanceestimationforneuralnetworkpruning等。另一方面,不基于数据的通道剪枝仅根据模型的参数本身确定通道重要性,代表工作有haoli等人提出的pruningfiltersforefficientconvnet,zhuangliu等人提出的learningefficientconvolutionalnetworksthroughnetworkslimming和yanghe等人提出的filterpruningviageometricmedianfordeepconvolutionalneuralnetworksacceleration等。以上技术均根据网络的单层参数计算该层各通道的重要性,而忽略了相邻网络结构之间的依存关系。



技术实现要素:

本发明的目的是解决在不影响精度的前提下,压缩神经网络的参数量和计算复杂度的核心问题。以往方法在裁剪某一层的通道时均仅考虑了单一结构的参数信息,而本发明涉及的方法核心便在于网络相邻结构之间的依存关系,因此能够更加精确地估计每个通道的重要性,从而尽可能小地损失性能,并达到更优的裁剪后网络结构。

为实现本发明的目的所采用的技术方案为,基于神经网络相邻结构依存关系的网络剪枝方法,该方法包括下述步骤:

a)卷积层和相邻的批量归一化(bn)层的参数共同决定网络的通道重要性;

定义神经网络的通道重要性为相邻卷积层和相邻的批量归一化(bn)层的参数模长的乘积;

b)在某一层内部比较通道重要性,以确定待剪枝的通道;

针对以往方法忽视网络各层间参数量级的内在差异的改进,本发明方法仅比较某一层内部各通道的重要性,并将通道重要性从大到小排序,然后裁减掉重要性小于通道重要性最大值的某一事先指定的系数(如1%)的所有通道;

c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度;

本发明提出了一种动态调节稀疏化正则系数的机制,以达到预期的稀疏化程度,具体地,根据当前网络的稀疏程度确定是否增加或减小稀疏性正则系数。

本发明的优点和有益效果为,

1)更精确的通道重要性估计,消融实验表明,仅考虑相邻结构的相关性便可以提升以往剪枝方法的精度;2)更优的剪枝后网络结构,由于通道重要性的局部比较和动态调节稀疏化系数的机制,本发明方法可以得到更加平衡的剪枝后网络结构。如图4,本发明可避免某一层中通道数的裁减比例过高;3)稳定的剪枝结果,重复实验表明,本发明方法有较好的稳定性和可复现性。

附图说明

图1是现有技术中一般的网络剪枝流程图;

图2是网络相邻结构相关关系的示意图;

图3是本发明方法中动态调节稀疏性正则系数的算法流程图;

图4是本发明方法得到的裁剪后的网络各层通道数统计直方图。

具体实施方式

基于神经网络相邻结构依存关系的网络剪枝方法,该方法的具体步骤如下:

a)卷积层和相邻的批量归一化(bn)层的参数共同决定网络的通道重要性:

一般地,我们假设一个卷积神经网络由多个卷积层、批量归一化(bn)层和非线性层序贯叠加构成(如图2)。在批量归一化(bn)层和非线性层中,每个通道都是独立变换的,而通道间的信息由卷积层融合。为了裁剪通道而对网络输出影响最小,现分析每一通道在卷积层中所起的作用如下:

为在第l个批量归一化层中归一化后,而缩放前的激活值,其中cl、hl和wl分别表示xl的通道数、高度和宽度。那么缩放后的激活值yl

其中为第l个批量归一化层对应第c个通道的尺度参数。(简单起见,我们忽略批量归一化层中的偏置参数,和卷积层中的偏置项。)然后,一个lipschitz连续的非线性项σ作用在yl上,即

zl=σ(yl).

随即,激活值zl中的各通道被下一个卷积层融合为其中,cl 1、hl 1和wl 1分别表示fl 1的通道数、高度和宽度;在这之中,zl的各通道对融合特征fl 1的贡献不同。严格地说,记为第(l 1)个卷积层的卷积核,其中k为卷积核大小,则有

其中,表示卷积操作。

由于尺度参数与随后的卷积层的第c个通道的参数wcl 1共同参与第c个通道隐藏激活值xcl的变换,本发明方法用来度量网络第l层中第c个通道的重要性,并将其作为剪枝的标准,而以往主流的方法均基于单一结构的参数确定通道重要性。

b)在各层内部比较通道重要性,以确定待剪枝的通道:

本发明方法采用网络的某一层重要性数值确定该层被剪枝的通道。在第l层中,重要性小于该层中最大值的p倍的通道将被裁剪掉;沿用以上符号系统,第l层中被裁剪的通道构成的集合为其中,p∈(0,1)为阈值。例如,某一卷积层有四个通道,经步骤a)计算得各通道重要性为{1.1,2.5,0.001,0.02},p=0.01,则第三、四通道被裁减掉。

c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度

本发明方法提出一种自动调整稀疏性正则系数的算法,算法流程图见图3。直观来说,在每一轮次训练之后计算网络整体的稀疏性。如果稀疏性小于某一预先指定的值(如50%)且稀疏性的增量为达到预期,则增大稀疏性正则的系数;如果稀疏性大于预先指定的值,则减小稀疏性正则的系数。具体地,设第t轮次训练的正则系数为λt,指定正则系数变化量为δλ,第t轮次训练后模型的稀疏程度为st,目标稀疏程度为r,总训练轮次为n。若在本轮次的训练中模型稀疏程度的增加未达到预期,即则增加正则系数λt 1=λt δλ;如模型稀疏程度超过目标稀疏程度,即st>r,则增加正则系数λt 1=λt-δλ。如总共训练20个轮次,第10轮训练完模型稀疏程度为30%,第11轮训练完模型稀疏程度为31.5%,目标稀疏程度为50%,第11轮的正则系数为λ11=4×10-5,正则系数变化量为δλ=1×10-5,则在第11轮训练结束后增大正则系数λ12=λ11 δλ=5×10-5;若第18轮训练完模型稀疏程度为55%,第11轮的正则系数为λ18=9×10-5,则在第18轮训练结束后减小正则系数λ19=λ18-δλ=8×10-5


技术特征:

1.一种基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,该方法包括下述步骤:a)网络的通道重要性由卷积层和相邻的批量归一化(bn)层的参数共同决定;b)在某一层内部比较通道重要性,以确定待剪枝的通道;c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度。

2.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤a)所述网络通道重要性的确定方法是,定义通道重要性为相邻卷积层和批量归一化(bn)层的参数模长的乘积。

3.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤b)所述在某一层内部比较通道重要性的方法是,在每一层内部将通道重要性从大到小排序,裁减掉重要性小于通道重要性最大值的某一事先指定的系数的所有通道。

4.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤c)所述的动态调整稀疏性正则系数的方法是,根据当前网络的稀疏程度确定是否增加或减小稀疏性正则系数。

技术总结
基于神经网络相邻结构依存关系的网络剪枝方法,属于神经网络模型压缩领域,该方法包含如下步骤:a)网络的通道重要性由卷积层和相邻的批量归一化(BN)层的参数共同决定;b)在某一层内部比较通道重要性,以确定待剪枝的通道;c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度。使用该方法进行网络剪枝,可以得到更高的剪枝后性能,更优的剪枝后网络结构和更好的稳定性。

技术研发人员:张鑫禹;赵凯;韩琦;程明明
受保护的技术使用者:南开大学
技术研发日:2020.01.16
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-15956.html

最新回复(0)