本发明属于神经网络模型压缩领域,特别涉及一种神经网络的通道裁剪方法。
背景技术:
近年来,随着深度学习的发展,卷积神经网络(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)层和非线性层中,每个通道都是独立变换的,而通道间的信息由卷积层融合。为了裁剪通道而对网络输出影响最小,现分析每一通道在卷积层中所起的作用如下:
设
其中
zl=σ(yl).
随即,激活值zl中的各通道被下一个卷积层融合为
其中,
由于尺度参数
b)在各层内部比较通道重要性,以确定待剪枝的通道:
本发明方法采用网络的某一层重要性数值确定该层被剪枝的通道。在第l层中,重要性小于该层中最大值的p倍的通道将被裁剪掉;沿用以上符号系统,第l层中被裁剪的通道构成的集合为
c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度
本发明方法提出一种自动调整稀疏性正则系数的算法,算法流程图见图3。直观来说,在每一轮次训练之后计算网络整体的稀疏性。如果稀疏性小于某一预先指定的值(如50%)且稀疏性的增量为达到预期,则增大稀疏性正则的系数;如果稀疏性大于预先指定的值,则减小稀疏性正则的系数。具体地,设第t轮次训练的正则系数为λt,指定正则系数变化量为δλ,第t轮次训练后模型的稀疏程度为st,目标稀疏程度为r,总训练轮次为n。若在本轮次的训练中模型稀疏程度的增加未达到预期,即
1.一种基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,该方法包括下述步骤:a)网络的通道重要性由卷积层和相邻的批量归一化(bn)层的参数共同决定;b)在某一层内部比较通道重要性,以确定待剪枝的通道;c)动态调整稀疏性正则系数,以达到预先指定的稀疏程度。
2.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤a)所述网络通道重要性的确定方法是,定义通道重要性为相邻卷积层和批量归一化(bn)层的参数模长的乘积。
3.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤b)所述在某一层内部比较通道重要性的方法是,在每一层内部将通道重要性从大到小排序,裁减掉重要性小于通道重要性最大值的某一事先指定的系数的所有通道。
4.根据权利要求1所述的基于神经网络相邻结构依存关系的网络剪枝方法,其特征在于,步骤c)所述的动态调整稀疏性正则系数的方法是,根据当前网络的稀疏程度确定是否增加或减小稀疏性正则系数。
技术总结