CN114118402A - 基于分组注意力机制的自适应剪枝模型压缩算法 - Google Patents
基于分组注意力机制的自适应剪枝模型压缩算法 Download PDFInfo
- Publication number
- CN114118402A CN114118402A CN202111189126.4A CN202111189126A CN114118402A CN 114118402 A CN114118402 A CN 114118402A CN 202111189126 A CN202111189126 A CN 202111189126A CN 114118402 A CN114118402 A CN 114118402A
- Authority
- CN
- China
- Prior art keywords
- pruning
- model
- layer
- convolution kernel
- convolution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 330
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 60
- 238000007906 compression Methods 0.000 title claims abstract description 49
- 230000006835 compression Effects 0.000 title claims abstract description 48
- 230000007246 mechanism Effects 0.000 title claims description 31
- 238000000034 method Methods 0.000 claims abstract description 105
- 230000006870 function Effects 0.000 claims abstract description 19
- 230000002787 reinforcement Effects 0.000 claims abstract description 9
- 238000012549 training Methods 0.000 claims description 37
- 238000002474 experimental method Methods 0.000 claims description 23
- 238000010586 diagram Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 20
- 238000013528 artificial neural network Methods 0.000 claims description 19
- 230000003044 adaptive effect Effects 0.000 claims description 18
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 16
- 238000011156 evaluation Methods 0.000 claims description 16
- 238000009826 distribution Methods 0.000 claims description 15
- 230000035945 sensitivity Effects 0.000 claims description 15
- 230000001133 acceleration Effects 0.000 claims description 14
- 238000012360 testing method Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 8
- 238000013135 deep learning Methods 0.000 claims description 7
- 230000003213 activating effect Effects 0.000 claims description 6
- 238000005520 cutting process Methods 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 238000011160 research Methods 0.000 claims description 4
- 238000012935 Averaging Methods 0.000 claims description 3
- 101100153591 Cricetulus griseus TOP1 gene Proteins 0.000 claims description 3
- RTAQQCXQSZGOHL-UHFFFAOYSA-N Titanium Chemical compound [Ti] RTAQQCXQSZGOHL-UHFFFAOYSA-N 0.000 claims description 3
- 230000000052 comparative effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 claims description 3
- 230000002401 inhibitory effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 238000005728 strengthening Methods 0.000 claims description 3
- 238000012800 visualization Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims 1
- 235000019580 granularity Nutrition 0.000 description 5
- 238000009966 trimming Methods 0.000 description 5
- 230000001537 neural effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 101100153586 Caenorhabditis elegans top-1 gene Proteins 0.000 description 1
- 101100136092 Drosophila melanogaster peng gene Proteins 0.000 description 1
- -1 JI R Proteins 0.000 description 1
- 101100128278 Mus musculus Lins1 gene Proteins 0.000 description 1
- 101100370075 Mus musculus Top1 gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明属于网络压缩技术领域,具体涉及基于分组注意力机制的自适应剪枝模型压缩算法,包括基于注意力机制的通道剪枝方法和基于强化学习的模型相关剪枝策略,通过设置分组注意力剪枝模块,不仅实现了卷积核评价的功能,而且也完成了剪枝任务,分组注意力模块可以为每个卷积核生成一个重要性分值,与传统注意力模块的区别在于可以体现出前一层剪枝对后面层剪枝的影响,可以针对输入数据的不同,选择不同的参数参与前后向的运算,模型的容量不会减少,造成的精度损失会大幅降低,为不同数据自适应评估每个卷积核的重要性,将分数低的卷积核忽略,不参与运算,可以有效地提高模型推理速度。
Description
技术领域
本发明涉及网络压缩技术领域,具体为基于分组注意力机制的自适应剪枝模型压缩算法。
背景技术
卷积神经网络的成功得益于大量卷积层的堆叠,提高了模型对图像数据的感受野,但是也造成实际应用中推理速度下降的问题,为提高模型的推理速度,又不过多地牺牲性能指标,提出了数据相关的自适应剪枝算法,该方法由两部分组成,分别为基于注意力机制的通道剪枝方法与基于强化学习的模型相关剪枝策略,在CIFAR-100数据集上开展实验,本文提出的剪枝算法在对VGG19和ResNet56两个大网络剪枝后,性能仅分别降低了2.05%和1.93%,但是加速比分别达到3.63与3.35,综合剪枝性能最优,除此之外,将重构模型在Imagenet数据集进行剪枝方法泛化性的评价,表现出最优异的泛化性,验证了方法的数据相关性;
深度学习是机器学习的分支,具备模拟人类学习和认知的能力,可以对数据进行抽象和表征,从而达到近似人类对数据的分析水平,深度学习技术的核心是深度神经网络,它是由大量处理单元也称神经元互相连接组成的非线性信息处理系统,通过模拟人类大脑行为,理解声音,图像和文本(出处: LeCun,Yann,Yoshua Bengio,and Geoffrey Hinton.“Deep learning.” nature 521.7553(2015):436-444.),尽管深度网络在许多相关领域取得重大的突破,模型的大小和计算量却成为网络在实际应用中的瓶颈,对于一个 VGG-16网络,它有138.34M参数个数,在单一图片分类任务上需要进行近31 兆浮点运算(出处:Ge,Shiming,et al.“Compressing deep neural networks for efficient visualinference.”2017IEEE International Conference on Multimedia and Expo(ICME).IEEE,2017.),将深度网络直接应用在现实场景,需要依附硬件的快速计算能力、大量存储空间和电池容量,为了促进深度模型的实际落地,对神经网络进行压缩成为了必不可少的选项;
在众多网络压缩技术中,剪枝(Pruning)是减少模型复杂度的最佳方法之一(出处:Buciluǎ,Cristian,Rich Caruana,and Alexandru Niculescu-Mizil.“Modelcompression.”Proceedings of the 12th ACM SIGKDD international conference onKnowledge discovery and data mining. 2006.),深度神经网络存在一定的冗余性,模型剪枝方法试图去除网络中不必要的参数,以减少网络总体的参数数量,一个典型的神经网络剪枝流程通常遵照以下三步:1)确定权重的重要性;2)删除不必要的权重;3)微调网络以恢复精度,其中,如何衡量权重的重要程度成为了各剪枝算法的核心问题(出处:Carreira-Perpinán,Miguel A.,and Yerlan Idelbayev. “‘learning-compression’algorithmsfor neural net pruning.” Proceedings of the IEEE Conference on ComputerVision and Pattern Recognition.2018.),最简单的方法是通过权重的绝对值大小来衡量,Han等人(出处:HAN S,POOL J,TRAN J,et al.Learning both weights andconnections forefficient neural network[C]//Advances in Neural InformationProcessing Systems(NeurIPS).2015:1135-1143.)提出了迭代式的神经网络剪枝算法,该方法认为当一条connection的权重低于某一阈值时,则应当将该连接删除,这种方法可以显著地降低模型参数量,并不牺牲过多的网络性能,这种方法得到的结构化的稀疏模型,容易造成网络过于稀疏,从而造成内存寻址上的不连续性,为模型部署带来困难;
为了避免非结构化稀疏模型所带来的弊端,结构化剪枝逐渐成为了人们关注的热点,结构化剪枝方法试图在参数张量中产生结构化稀疏,即以参数张量为基本单位进行剪枝,根据剪枝粒度的不同,可以将结构化剪枝算法分为连接级剪枝、向量级剪枝、通道级剪枝与滤波器级剪枝(出处:Krishnan, Gokul,Xiaocong Du,and Yu Cao.“StructuralPruning in Deep Neural Networks:A Small-World Approach.”arXiv preprint arXiv:1911.04453 (2019).),Mao等人(出处:MAO H,HAN S,POOL J,et al.Exploring thegranularity of sparsity in convo-lutional neural networks[C]//Proceedings ofthe IEEE Conference on ComputerVision and Pattern Recognition Workshops(CVPRWorkshops).2017:13-20.)则探讨了不同粒度剪枝的影响,实现了从连接级到滤波器级的不同的剪枝算法,并分析了模型在不同粒度下的存储量与硬件运算效率,他们发现粗粒度的剪枝算法(如滤波器级别)可以节约更多的存储空间,获得更大的压缩率,对硬件效率的提升也很有帮助,本文也主要关注粗粒度的剪枝算法,这是因为可以减少对原本网络结构的破坏,剪枝得到的模型完美适配现有深度学习库,剪枝完的模型可以完成无缝部署,而无需依赖于特定的软硬件设备,而且,由于网络结构没有发生根本变化,剪枝完的模型还可以与其它压缩算法相结合,进一步降低计算量;
粗粒度级别的剪枝算法主要难点来源于两个方面:卷积核重要性评估和剪枝后模型精度下降的问题,卷积核重要性评估是剪枝任务中非常重要的环节,完成对每个卷积核的评估后,会选择重要性较低的卷积核按照一定比例和一定顺序剪掉(出处:Wu,Rih-Teng,et al.“Pruning deep convolutional neural networks for efficient edgecomputing in condition assessment of infrastructures.”Computer-Aided Civiland Infrastructure Engineering 34.9(2019):774-789.);
目前的研究基本上是先给定一个大模型,对模型中的参数或者参数集合本身进行计算和估计,然后通过给这部分参数打分确定重要性分数,进而作为剪枝的依据,Li等人(出处:LI H,KADAV A,DURDANOVIC I,et al.Pruning filters for efficient ConvNets[C]//International Conference on Learning Representations(ICLR).2017.)提出了滤波器剪枝算法,他们将每一个滤波器的绝对值之和作为衡量该滤波器重要程度的标准,如果某个滤波器的绝对值之和低于预设定的阈值,那么该滤波器就可以被视为冗余的, Hu等人(出处:HU H,PENG R,TAI Y W,et al.Network trimming:A data-driven neu-ronpruning approach towards efficient deep architectures[J].arXiv preprintarXiv:1607.03250,2016.)认为,如果某个滤波器的输出几乎总为零,那么我们就有足够的理由相信该滤波器是冗余的,因此他们统计每个滤波器的输出信息,通过统计每个滤波器输出张量中零的比例来作为该滤波器重要性的衡量标准,显而易见,如果零的比例越高,该滤波器就越不重要,为了更精确地量化滤波器的重要性,He等人(出处:[11]HE Y,ZHANG X,SUNJ.Channel pruning for accelerating very deep neural net-works[C]//Proceedingsof the IEEE International Conference on Computer Vision(ICCV).2017:1389-1397.)提出了基于Lasso 回归和最小重构误差的剪枝算法来衡量滤波器的重要程度,在模型大小与预测精度之间取得了很好的平衡,但是采用这种方法时,范数的标准差太小,导致大部分滤波器具有相同的重要性,无法确定该移除哪个滤波器,Lin等人 (出处:LIN S,JIR,YAN C,et al.Towards optimal structured CNN pruning viagenerativeadversarial learning[C]//Proceedings of the IEEE Conference onComputer Visionand Pattern Recognition(CVPR).2019: 2790-2799.)引入放缩因子来指示滤波器的重要性,他们借鉴了生成式对抗网络(Generative Adversarial Networks,简称GAN)的思路,将生成式对抗学习(Generative Adversarial Learning)引入到神经网络的剪枝训练中,取得了很好的效果,这类方法由于没有考虑数据集输入对特征图的数值影响,直接从模型参数本身做评估,因此评估速度较快,但却无法度量每个卷积核对模型输出的实际贡献;
上述方法针对特定数据集或特定任务可以取得良好的效果,但是作者在实验过程中比较不同的卷积核评估方法,实验发现对于某些输入数据,应用数据无关的评估方法A更有效,对于某些输入数据,应用评估方法B更有效,已有的方法中卷积核的挑选均与数据集本身无关,数据无关的评估方法对个人经验有很强的依赖,为了提高剪枝方法的泛化能力,提高剪枝后模型在多个数据集上的精度,本文将提出数据相关的评估方法,需要在做卷积核评估的时候考虑数据集中的每一个数据,使得对于每一个输入数据,都能挑选出一个卷积核子集,使其对模型精度影响最小,为了解决现有方法的不足,本文将提出数据感知的评价方法,该方法使卷积核评价方法对任何数据都有效,并针对不同的数据选择不同的卷积核子集;
此外,目前研究提出的卷积核评估方法,大多忽略了不同层之间卷积核在剪枝时的相互影响,实际上,对某一层的卷积核进行剪枝,必然对下一层的剪枝策略产生影响。
发明内容
本发明的目的在于提供基于分组注意力机制的自适应剪枝模型压缩算法,能够有效地提高模型推理速度。
为实现上述目的,本发明提供如下技术方案:基于分组注意力机制的自适应剪枝模型压缩算法,包括基于注意力机制的通道剪枝方法和基于强化学习的模型相关剪枝策略;
基于注意力机制的通道剪枝方法具体过程为:
第一步:卷积核重要性评估;
第二步:剪枝;
第三步:重训练;
自适应剪枝算法处理流程分为两个方面:给定一个训练好的CNN模型,一方面利用分组注意力机制模块完成目标层的通道剪枝,另一方面利用强化学习算法结合模型剪枝效果进行跨层的剪枝位置决策;
具体过程为:
(1)数据集
Cifar-100(出处:KRIZHEVSKY A.Learning multiple layers of features fromtiny images[D].University of Toronto,2009.)和Imagenet (出处:RUSSAKOVSKY O,DENG J,SU H,et al.ImageNet large scale visual recog-nition challenge[J].International Journal of Computer Vision, 2015,115(3):211-252.),Cifar-100数据集对剪枝算法进行评价,ImageNet 用于对剪枝后网络的泛化性进行评价,以验证剪枝模型对数据集的敏感程度,这两个数据集全部来自于官方版本,下载后包括训练集和测试集两部分,训练集用于对重构后的剪枝模型进行训练,训练完毕后在测试集测试分类准确度,在对数据集的处理方面,首先对训练集和测试集的样本做归一化预处理,进一步,为了丰富训练样本,对Cifar-100和Imagenet数据集做数据增强处理,增强手段包括:随机翻转和随机裁剪;
(2)模型结构
用于做自适应剪枝实验的模型结构包括VGG19全卷积网络(出处: SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale imagerecognition[C]//International Conference on Learning Representa-tions(ICLR).2015.)和ResNet56残差模型(出处: HE K,ZHANG X,REN S,et al.Deep residuallearning for image recognition[C]//Proceedings of the IEEE conference onComputer Vision and Pattern Recognition(CVPR).2016:770-778.),这两个模型的结构比较有代表性,分别代表了全卷积神经网络与带残差连接的神经网络,也是目前卷积神经网络中广泛应用的模型结构;
(3)对比实验
Filter pruning(FP)(出处:Luo,Jian-Hao,Jianxin Wu,and Weiyao Lin.“Thinet:A filter level pruning method for deep neural network compression.”Proceedings of the IEEE international conference on computer vision.2017.):利用L1范数评估每层每个卷积核的重要性,L1 范数较大的卷积核被认为重要,反之认为不重要,在评估完成后,按照逐层剪枝或者贪心的全局剪枝方式对模型进行剪枝,每层剪枝比例的设定,通过敏感度实验测试,敏感度较高的网络层剪枝率设置高值,敏感度较高的网络层剪枝率设置低值;
Network slimming(NSP)(出处:Liu,Zhuang,et al.“Learning efficientconvolutional networks through network slimming.” Proceedings of the IEEEInternational Conference on Computer Vision. 2017.):通过Batch Norm层中的gamma系数建模通道的重要性,并在损失函数中增加针对gamma系数的L1正则约束,使得模型自动稀疏化,通过这种方式,在训练完成后,模型中的很多gamma系数值被固定在零,作者设置一个全局阈值,将模型中gamma系数最贴近零的阈值对应的卷积核和通道连接去除,该网络瘦身方法能重复多次,对模型进行多次压缩;
Channel Pruning(CP)(出处:Peng,Hanyu,et al.“Collaborative channelpruning for deep networks.”International Conference on Machine Learning.PMLR,2019.):通过交替两个优化步骤实现卷积核维度的剪枝,在第一个步骤,利用Lasso回归挑选出待剪枝的特征通道,对通道进行剪枝,则意味着对其对应的卷积核剪枝,在第二个步骤,对卷积核参数进行优化,最小化剪枝后与剪枝前的输出差值,交替这两个步骤,并逐层剪枝,最终得到轻量化模型;
Soft Pruning(SP)(出处:Shi,Yuhan,et al.“A soft-pruning method appliedduring training of spiking neural networks for in-memory computingapplications.”Frontiers in neuroscience 13(2019):405.):一种软剪枝的思路,在每一轮对基线模型训练的过程中,用L2范数评估卷积核的重要性,并将低重要性的卷积核置零,在下一轮参数更新后卷积核的参数会发生调整,然后再一次利用L2范数评估每个卷积核的重要性,重新置零部分卷积核,直到训练完成,将最终零权值的卷积核和对应连接从模型中去除,该论文预先设定每层剪枝比例,按照比例置零每层的卷积核参数,该方法具有一定的容错性,当部分卷积核被置零后,在下一轮重新调整参数值;
(4)实现细节
自适应剪枝算法的实验代码利用Python3实现,深度学习框架基于 PyTorch,并使用一张NVIDIA TITAN X显卡,配备cuda8.0处理器,下面以VGG19为例分析重构结构的方法,其它预训练模型的剪枝方法类似,首先对 SAC的Actor和Critic初始化,第一轮剪枝按默认参数逐层剪枝,然后根据剪枝模型的准确率误差更新模型参数,依次循环,直至模型推理速度收敛到预期目标,在VGG19中一共包含了16个卷积层,需在15个卷积层部署GAP 结构,由于VGG模型结构每一个卷积层的卷积核数较多,将通道压缩率阈值设为50%,根据不同模型的特点选择不同通道压缩率;
在重构模型的微调过程中,以0.1的学习率进行训练,重构模型最多轮次设为200轮,最终推理速度设为基准模型推理速度的5倍,使用随机梯度下降算法作为优化器,更新重构模型的参数,获得更好的分类结果和加强注意力机制的权重生成;
优选的,注意力机制时通常会用Softmax激活函数对关系系数α进行归一化,激活函数Softmax满足下式:
其中αv表示第v个关系系数变量,N代表关系变量的个数;
GAP模块的输入有2个来源,依次为第L-1层剪枝后的卷积核与第L层待剪枝的卷积核,输出第L层剪枝后的卷积核,定义第L层特征图为XL∈RC×W×H, C、W和H分别为特征图XL的通道数、宽度和高度,为了计算通道间的关系系数,首先用全局平均池化降低特征图XL的维度,获得仅保留特征通道维度的特征ZL∈RC,如下式:
其中,XL(h,w)为特征图XL在高度h和宽度w处的通道向量;
通过矩阵乘法计算第L-1层特征图的关系系数αL-1∈RC-1:
αL-1=AL-1·ZL
为避免在计算注意力机制时不同语义特征间的抑制作用,采用了特征关系系数分组激活的方法,增强同类语义特征在不同通道之间的差异,由于训练中卷积核的重要性动态变化,因此引入掩码进行动态剪枝,分组激活并完成特征图剪枝的公式如式所示:
注意力模块的计算流程如下:(1)将第L层特征图XL-1和关系系数αL-1分成K组,即i∈[1,...,K]和i∈[1,...,K];(2)每组关系系数分别进行 Softmax激活函数归一化;(3)将权重值小于定阈值δ的置零;(4)完成第L 层特征图的剪枝。
优选的,GAP模块会同时在多个网络层部署,当需要在第i层剪枝,则在第i-l层构造GAP模块,并将输出的权重向量重标定第i层的输出特征图,在剪枝任务中,并非每一层的每组卷积核都需要剪枝,因此必须设计一种跨层的剪枝策略;
跨层剪枝决策本质属于一种搜索任务,本文引入强化学习算法SAC(Soft Actor-Critic),利用SAC将所有卷积层的压缩率作为动作空间A∈RL,L代表卷积层的层数,A1=0.5代表第一个卷积层的压缩率ε为0.5,即该层有一半的卷积核需要被剪枝;A3=0代表第三个卷积层的压缩率为0,即该层无需剪枝,首先利用GAP模块对卷积核的重要性进行排序(假设某层共有N个卷积核),再根据SAC输出的压缩率ε将其中N(1-ε)个卷积核对应权重置零,这样就完成了剪枝操作,nX1-丢掉70%;
将新网络的预测精度与原网络的预测精度作差,并作为SAC训练的奖励信号之一,除此之外,模型压缩的目的除了需要保证准确率不下降太多,还应降低计算的复杂度,本文设计如下奖励函数:
其中,Error代表剪枝模型与原模型的准确率之差;Paramt代表第t轮剪枝的模型卷积核数量;Paraminit代表模型初始卷积核数量,该奖励函数对模型精度和模型计算量都很敏感,能加速收敛到最优剪枝模型,
SAC的状态空间设计决定了剪枝策略对数据本身的敏感程度,进而影响了最终剪枝得到的模型是否与数据相关,SAC的状态空间S∈RL,且对于第l层,在第t轮剪枝中的状态表示为以下元组:
其中,l代表层数;n代表第l层滤波器的个数;cl代表当前第l层总通道数;at代表第t轮剪枝的决策变量(即压缩率),
由于本文的状态空间较大,为更快速地找到最优剪枝,因此在采用SAC 算法,在原有直接最大化奖励期望的基础上引入最大熵:
H为剪枝策略状态St时的动作的熵,λ为平衡奖励与熵的系数,通过引入熵到优化问题中,鼓励策略搜索到更优的剪枝动作;
基于分组注意力机制的自适应剪枝模型压缩算法,具体步骤包括:
(1)对基准网络的剪枝效果
在Cifar-100数据集上预训练的基准网络在不同剪枝算法下的模型压缩效果见图4,表中所有的精度均根据单张图中心裁剪进行测试,其中B是“billion”的缩写,加速比根据FLOPs理论计算;
无论是VGG19还是ResNet56,Filter pruning都能取得最快的推理加速,但是其剪枝方式比较激进,导致准确率下降明显,相比其余方法,本文提出的方法推理加速最多,即便本文方法在提高推理速度上有优势,同时在准确率方面也取得了理想的结果,对VGG19基线模型的剪枝模型取得了TOP-1准确率的最优性能,对ResNet56基线模型的剪枝模型取得了TOP-5准确率的最优性能,虽然Channel Pruning和Soft Pruning在准确率方面性能也较高,但是由于引入了相对复杂的运算,导致推理速度提升有限,图4的结果是进行了3次实验取平均值的结果,在实验中发现,采用本文方法有时得到的重构模型相比基线模型能取得更高的准确率,这是因为注意力机制在进行卷积核剪枝挑选的同时,为其它卷积核重标定了权重,使得部分其负向作用的卷积核不被计入;
采用不同剪枝算法时,加速比随剪枝轮数的变化情况,FP算法直接将所有小于阈值的卷积核设置为零,所以在第15轮修剪时收敛,剪枝速度过快的后果是一些有价值的卷积核不能参与后续的计算,本文提出的剪枝算法的加速比比其它算法具有更快的收敛速度,这是由于SAC算法的探索机制,能快速找到分类任务的低值卷积核;
(2)剪枝模型的泛化性
在剪枝之后,小模型在其它数据集上可能会存在一定的泛化性能损失,为了进一步研究剪枝后的模型的泛化能力,我们在Imagenet数据集上对小模型的迁移学习能力进行了研究,在本实验中,模型仅在目标数据集上进行微调,但不再进行剪枝;
在Imagenet数据集上的表现远优于其它方法,在剪枝过程中保留了与数据本身相关的卷积核,而非盲目地裁剪掉对性能影响不大的连接,Soft Pruning的性能损失比较明显,这说明了该方法在剪枝过程中将一些必要的卷积核过滤掉,进而无法从新数据集中提取有价值的信息,剪枝模型在原数据集上存在过度拟合的问题,
(3)自适应剪枝分布可视化
自适应剪枝算法的核心在于数据依赖的卷积核挑选策略,即为不同的数据挑选不同的卷积核子集作为剪枝对象,为了直观观察自适应剪枝如何为不同数据挑选卷积核,作者在剪枝模型上进行卷积核分布实验,以在Cifar-100 数据集上基线模型ResNet56的剪枝模型为例,作者统计出该模型最后两个残差块的第一个卷积层的卷积核剪枝情况;
剪枝模型最后一个残差块(a)和倒数第二个残差块(b)的被剪枝卷积核在Cifar-100数据集上的分布图;(a)代表最后一个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为32;(b)代表倒数第二个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为39;红色条状表示该卷积核对于任何输入数据都会被忽略,绿色条状表示只在部分输入数据下忽略该卷积核,图的横坐标表示卷积核索引,范围从1到64;纵坐标表示样本数量,由于测试集包括10000个样本,纵坐标范围从0到10000,图中的每个柱体表示该卷积核在多少输入样本下会被忽略运算;
其中,部分卷积核在任何输入样本下都会被挑选为剪枝对象而部分卷积核只在某些输入样本被挑选为剪枝对象,一些卷积核对应的纵坐标为0,表示这些卷积核对于任何输入总是起到重要的作用,从来不会被忽略运算,因此,对于不同的输入数据,卷积核挑选策略是不同的,通过上述观察也印证了本文提出的剪枝方法在剪枝过程中的确应用了图像数据自身的特性。
与现有技术相比,本发明的有益效果如下:
通过设置分组注意力剪枝模块,不仅实现了卷积核评价的功能,而且也完成了剪枝任务,分组注意力模块可以为每个卷积核生成一个重要性分值,与传统注意力模块的区别在于可以体现出前一层剪枝对后面层剪枝的影响,可以针对输入数据的不同,选择不同的参数参与前后向的运算,因此模型的容量不会减少,造成的精度损失会大幅降低,为不同数据自适应评估每个卷积核的重要性,将分数低的卷积核忽略,不参与运算,可以有效地提高模型推理速度。
附图说明
图1为本发明的自适应剪枝算法处理流程;
图2为本发明分组注意力剪枝原理;
图3为本发明基于SAC的剪枝策略;
图4为本发明不同剪枝算法在Cifar-100数据集预训练模型上的性能表现;
图5为本发明随剪枝轮数变化的不同剪枝算法的加速比;
图6为本发明剪枝模型在Imagenet数据集上的Top-1准确率;
图7为本发明两个残差块的第一个卷积层的卷积核剪枝情况。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围,
请参阅图1-7,基于分组注意力机制的自适应剪枝模型压缩算法,包括基于注意力机制的通道剪枝方法和基于强化学习的模型相关剪枝策略;
基于注意力机制的通道剪枝方法具体过程为:
第一步:卷积核重要性评估;
第二步:剪枝;
第三步:重训练;
自适应剪枝算法处理流程分为两个方面:给定一个训练好的CNN模型,一方面利用分组注意力机制模块完成目标层的通道剪枝,另一方面利用强化学习算法结合模型剪枝效果进行跨层的剪枝位置决策;
具体过程为:
(1)数据集
Cifar-100(出处:KRIZHEVSKY A.Learning multiple layers of features fromtiny images[D].University of Toronto,2009.)和Imagenet (出处:RUSSAKOVSKY O,DENG J,SU H,et al.ImageNet large scale visual recog-nition challenge[J].International Journal of Computer Vision, 2015,115(3):211-252.),Cifar-100数据集对剪枝算法进行评价,ImageNet 用于对剪枝后网络的泛化性进行评价,以验证剪枝模型对数据集的敏感程度,这两个数据集全部来自于官方版本,下载后包括训练集和测试集两部分,训练集用于对重构后的剪枝模型进行训练,训练完毕后在测试集测试分类准确度,在对数据集的处理方面,首先对训练集和测试集的样本做归一化预处理,进一步,为了丰富训练样本,对Cifar-100和Imagenet数据集做数据增强处理,增强手段包括:随机翻转和随机裁剪;
(2)模型结构
用于做自适应剪枝实验的模型结构包括VGG19全卷积网络(出处: SIMONYAN K,ZISSERMAN A.Very deep convolutional networks for large-scale imagerecognition[C]//International Conference on Learning Representa-tions(ICLR).2015.)和ResNet56残差模型(出处: HE K,ZHANG X,REN S,et al.Deep residuallearning for image recognition[C]//Proceedings of the IEEE conference onComputer Vision and Pattern Recognition(CVPR).2016:770-778.),这两个模型的结构比较有代表性,分别代表了全卷积神经网络与带残差连接的神经网络,也是目前卷积神经网络中广泛应用的模型结构;
(3)对比实验
Filter pruning(FP)(出处:Luo,Jian-Hao,Jianxin Wu,and Weiyao Lin.“Thinet:A filter level pruning method for deep neural network compression.”Proceedings of the IEEE international conference on computer vision.2017.):利用L1范数评估每层每个卷积核的重要性,L1 范数较大的卷积核被认为重要,反之认为不重要,在评估完成后,按照逐层剪枝或者贪心的全局剪枝方式对模型进行剪枝,每层剪枝比例的设定,通过敏感度实验测试,敏感度较高的网络层剪枝率设置高值,敏感度较高的网络层剪枝率设置低值;
Network slimming(NSP)(出处:Liu,Zhuang,et al.“Learning efficientconvolutional networks through network slimming.” Proceedings of the IEEEInternational Conference on Computer Vision. 2017.):通过Batch Norm层中的gamma系数建模通道的重要性,并在损失函数中增加针对gamma系数的L1正则约束,使得模型自动稀疏化,通过这种方式,在训练完成后,模型中的很多gamma系数值被固定在零,作者设置一个全局阈值,将模型中gamma系数最贴近零的阈值对应的卷积核和通道连接去除,该网络瘦身方法能重复多次,对模型进行多次压缩;
Channel Pruning(CP)(出处:Peng,Hanyu,et al.“Collaborative channelpruning for deep networks.”International Conference on Machine Learning.PMLR,2019.):通过交替两个优化步骤实现卷积核维度的剪枝,在第一个步骤,利用Lasso回归挑选出待剪枝的特征通道,对通道进行剪枝,则意味着对其对应的卷积核剪枝,在第二个步骤,对卷积核参数进行优化,最小化剪枝后与剪枝前的输出差值,交替这两个步骤,并逐层剪枝,最终得到轻量化模型;
Soft Pruning(SP)(出处:Shi,Yuhan,et al.“A soft-pruning method appliedduring training of spiking neural networks for in-memory computingapplications.”Frontiers in neuroscience 13(2019):405.):一种软剪枝的思路,在每一轮对基线模型训练的过程中,用L2范数评估卷积核的重要性,并将低重要性的卷积核置零,在下一轮参数更新后卷积核的参数会发生调整,然后再一次利用L2范数评估每个卷积核的重要性,重新置零部分卷积核,直到训练完成,将最终零权值的卷积核和对应连接从模型中去除,该论文预先设定每层剪枝比例,按照比例置零每层的卷积核参数,该方法具有一定的容错性,当部分卷积核被置零后,在下一轮重新调整参数值;
(4)实现细节
自适应剪枝算法的实验代码利用Python3实现,深度学习框架基于 PyTorch,并使用一张NVIDIA TITAN X显卡,配备cuda8.0处理器,下面以 VGG19为例分析重构结构的方法,其它预训练模型的剪枝方法类似,首先对 SAC的Actor和Critic初始化,第一轮剪枝按默认参数逐层剪枝,然后根据剪枝模型的准确率误差更新模型参数,依次循环,直至模型推理速度收敛到预期目标,在VGG19中一共包含了16个卷积层,需在15个卷积层部署GAP 结构,由于VGG模型结构每一个卷积层的卷积核数较多,将通道压缩率阈值设为50%,根据不同模型的特点选择不同通道压缩率;
在重构模型的微调过程中,以0.1的学习率进行训练,重构模型最多轮次设为200轮,最终推理速度设为基准模型推理速度的5倍,使用随机梯度下降算法作为优化器,更新重构模型的参数,获得更好的分类结果和加强注意力机制的权重生成。
本实施例中,注意力机制时通常会用Softmax激活函数对关系系数α进行归一化,激活函数Softmax满足下式:
其中αv表示第v个关系系数变量,N代表关系变量的个数,
GAP模块的输入有2个来源,依次为第L-1层剪枝后的卷积核与第L层待剪枝的卷积核,输出第L层剪枝后的卷积核,定义第L层特征图为XL∈RC×W×H, C、W和H分别为特征图XL的通道数、宽度和高度,为了计算通道间的关系系数,首先用全局平均池化降低特征图XL的维度,获得仅保留特征通道维度的特征ZL∈RC,如下式:
其中,XL(h,w)为特征图XL在高度h和宽度w处的通道向量;
通过矩阵乘法计算第L-1层特征图的关系系数αL-1∈RC-1:
αL-1=AL-1·ZL
为避免在计算注意力机制时不同语义特征间的抑制作用,采用了特征关系系数分组激活的方法,增强同类语义特征在不同通道之间的差异,由于训练中卷积核的重要性动态变化,因此引入掩码进行动态剪枝,分组激活并完成特征图剪枝的公式如式所示:
注意力模块的计算流程如下:(1)将第L层特征图XL-1和关系系数αL-1分成K组,即i∈[1,...,K]和i∈[1,...,K];(2)每组关系系数分别进行 Softmax激活函数归一化;(3)将权重值小于定阈值δ的置零;(4)完成第L 层特征图的剪枝。
本实施例中,GAP模块会同时在多个网络层部署,当需要在第i层剪枝,则在第i-l层构造GAP模块,并将输出的权重向量重标定第i层的输出特征图,在剪枝任务中,并非每一层的每组卷积核都需要剪枝,因此必须设计一种跨层的剪枝策略;
跨层剪枝决策本质属于一种搜索任务,本文引入强化学习算法SAC(Soft Actor-Critic),利用SAC将所有卷积层的压缩率作为动作空间A∈RL,L代表卷积层的层数,A1=0.5代表第一个卷积层的压缩率ε为0.5,即该层有一半的卷积核需要被剪枝;A3=0代表第三个卷积层的压缩率为0,即该层无需剪枝,首先利用GAP模块对卷积核的重要性进行排序(假设某层共有N个卷积核),再根据SAC输出的压缩率ε将其中N(1-ε)个卷积核对应权重置零,这样就完成了剪枝操作,nX1-丢掉70%;
将新网络的预测精度与原网络的预测精度作差,并作为SAC训练的奖励信号之一,除此之外,模型压缩的目的除了需要保证准确率不下降太多,还应降低计算的复杂度,本文设计如下奖励函数:
其中,Error代表剪枝模型与原模型的准确率之差;Paramt代表第t轮剪枝的模型卷积核数量;Paraminit代表模型初始卷积核数量,该奖励函数对模型精度和模型计算量都很敏感,能加速收敛到最优剪枝模型;
SAC的状态空间设计决定了剪枝策略对数据本身的敏感程度,进而影响了最终剪枝得到的模型是否与数据相关,SAC的状态空间S∈RL,且对于第l层,在第t轮剪枝中的状态表示为以下元组:
其中,l代表层数;n代表第l层滤波器的个数;cl代表当前第l层总通道数;at代表第t轮剪枝的决策变量(即压缩率);
由于本文的状态空间较大,为更快速地找到最优剪枝,因此在采用SAC 算法,在原有直接最大化奖励期望的基础上引入最大熵:
H为剪枝策略状态St时的动作的熵,λ为平衡奖励与熵的系数,通过引入熵到优化问题中,鼓励策略搜索到更优的剪枝动作;
基于分组注意力机制的自适应剪枝模型压缩算法,具体步骤包括:
(1)对基准网络的剪枝效果
在Cifar-100数据集上预训练的基准网络在不同剪枝算法下的模型压缩效果见图4,表中所有的精度均根据单张图中心裁剪进行测试,其中B是“billion”的缩写,加速比根据FLOPs理论计算;
无论是VGG19还是ResNet56,Filter pruning都能取得最快的推理加速,但是其剪枝方式比较激进,导致准确率下降明显,相比其余方法,本文提出的方法推理加速最多,即便本文方法在提高推理速度上有优势,同时在准确率方面也取得了理想的结果,对VGG19基线模型的剪枝模型取得了TOP-1准确率的最优性能,对ResNet56基线模型的剪枝模型取得了TOP-5准确率的最优性能,虽然Channel Pruning和Soft Pruning在准确率方面性能也较高,但是由于引入了相对复杂的运算,导致推理速度提升有限,图4的结果是进行了3次实验取平均值的结果,在实验中发现,采用本文方法有时得到的重构模型相比基线模型能取得更高的准确率,这是因为注意力机制在进行卷积核剪枝挑选的同时,为其它卷积核重标定了权重,使得部分其负向作用的卷积核不被计入;
采用不同剪枝算法时,加速比随剪枝轮数的变化情况,FP算法直接将所有小于阈值的卷积核设置为零,所以在第15轮修剪时收敛,剪枝速度过快的后果是一些有价值的卷积核不能参与后续的计算,本文提出的剪枝算法的加速比比其它算法具有更快的收敛速度,这是由于SAC算法的探索机制,能快速找到分类任务的低值卷积核;
(2)剪枝模型的泛化性
在剪枝之后,小模型在其它数据集上可能会存在一定的泛化性能损失,为了进一步研究剪枝后的模型的泛化能力,我们在Imagenet数据集上对小模型的迁移学习能力进行了研究,在本实验中,模型仅在目标数据集上进行微调,但不再进行剪枝;
在Imagenet数据集上的表现远优于其它方法,在剪枝过程中保留了与数据本身相关的卷积核,而非盲目地裁剪掉对性能影响不大的连接,Soft Pruning的性能损失比较明显,这说明了该方法在剪枝过程中将一些必要的卷积核过滤掉,进而无法从新数据集中提取有价值的信息,剪枝模型在原数据集上存在过度拟合的问题,
(3)自适应剪枝分布可视化
自适应剪枝算法的核心在于数据依赖的卷积核挑选策略,即为不同的数据挑选不同的卷积核子集作为剪枝对象,为了直观观察自适应剪枝如何为不同数据挑选卷积核,作者在剪枝模型上进行卷积核分布实验,以在Cifar-100 数据集上基线模型ResNet56的剪枝模型为例,作者统计出该模型最后两个残差块的第一个卷积层的卷积核剪枝情况;
剪枝模型最后一个残差块(a)和倒数第二个残差块(b)的被剪枝卷积核在Cifar-100数据集上的分布图;(a)代表最后一个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为32;(b)代表倒数第二个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为39;红色条状表示该卷积核对于任何输入数据都会被忽略,绿色条状表示只在部分输入数据下忽略该卷积核,图的横坐标表示卷积核索引,范围从1到64;纵坐标表示样本数量,由于测试集包括10000个样本,纵坐标范围从0到10000,图中的每个柱体表示该卷积核在多少输入样本下会被忽略运算;
其中,部分卷积核在任何输入样本下都会被挑选为剪枝对象而部分卷积核只在某些输入样本被挑选为剪枝对象,一些卷积核对应的纵坐标为0,表示这些卷积核对于任何输入总是起到重要的作用,从来不会被忽略运算,因此,对于不同的输入数据,卷积核挑选策略是不同的,通过上述观察也印证了本文提出的剪枝方法在剪枝过程中的确应用了图像数据自身的特性。
通过设置分组注意力剪枝模块,不仅实现了卷积核评价的功能,而且也完成了剪枝任务,分组注意力模块可以为每个卷积核生成一个重要性分值,与传统注意力模块的区别在于可以体现出前一层剪枝对后面层剪枝的影响,可以针对输入数据的不同,选择不同的参数参与前后向的运算,因此模型的容量不会减少,造成的精度损失会大幅降低,为不同数据自适应评估每个卷积核的重要性,将分数低的卷积核忽略,不参与运算,可以有效地提高模型推理速度。
本文设计了基于特征通道的注意力模块,可以自动学习通道间关系和重要性,为每个通道生成重要性权重,从而实现加强和抑制某些通道特征,这种注意力构造方式,可以为不同的输入数据构造出不同的权重组,从而为每个数据样本选择出不同的低重要性卷积核集合,恰好实现了本文试图提出的卷积核评估方法;
本文的主要贡献在于为卷积核重要性评估和剪枝带来的精度下降问题带来新的思路,提出了保留模型容量并加速模型运算的方法,具体如下:(1) 利用分组注意力机制对不同层的卷积核情况评估,分析不同卷积核重要性,为不同层挑选不同的卷积核子集进行自适应剪枝;(2)利用强化学习方法对不同数据采取不同剪枝策略,进而使最终的剪枝模型可以适应不同数据集,本文提出的方法不会真正意义的剪掉模型参数,只是为不同的数据挑选不同的卷积核参与运算,这样做可以维持模型容量不变,维持模型可学习的特征知识空间不变,剪枝后模型精度损失会大幅降低,同时大大提高模型的推理速度。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.基于分组注意力机制的自适应剪枝模型压缩算法,其特征在于,包括基于注意力机制的通道剪枝方法和基于强化学习的模型相关剪枝策略,
基于注意力机制的通道剪枝方法具体过程为:
第一步:卷积核重要性评估;
第二步:剪枝;
第三步:重训练;
自适应剪枝算法处理流程分为两个方面:给定一个训练好的CNN模型,一方面利用分组注意力机制模块完成目标层的通道剪枝,另一方面利用强化学习算法结合模型剪枝效果进行跨层的剪枝位置决策;
具体过程为:
(1)数据集
Cifar-100数据集对剪枝算法进行评价,ImageNet用于对剪枝后网络的泛化性进行评价,以验证剪枝模型对数据集的敏感程度,这两个数据集全部来自于官方版本,下载后包括训练集和测试集两部分,训练集用于对重构后的剪枝模型进行训练,训练完毕后在测试集测试分类准确度,在对数据集的处理方面,首先对训练集和测试集的样本做归一化预处理,进一步,为了丰富训练样本,对Cifar-100和Imagenet数据集做数据增强处理,增强手段包括:随机翻转和随机裁剪;
(2)模型结构
用于做自适应剪枝实验的模型结构包括VGG19全卷积网络和ResNet56残差模型,这两个模型的结构比较有代表性,分别代表了全卷积神经网络与带残差连接的神经网络,也是目前卷积神经网络中广泛应用的模型结构;
(3)对比实验
Filter pruning:利用L1范数评估每层每个卷积核的重要性,L1范数较大的卷积核被认为重要,反之认为不重要,在评估完成后,按照逐层剪枝或者贪心的全局剪枝方式对模型进行剪枝,每层剪枝比例的设定,通过敏感度实验测试,敏感度较高的网络层剪枝率设置高值,敏感度较高的网络层剪枝率设置低值;
Network slimming:通过Batch Norm层中的gamma系数建模通道的重要性,并在损失函数中增加针对gamma系数的L1正则约束,使得模型自动稀疏化,通过这种方式,在训练完成后,模型中的很多gamma系数值被固定在零,作者设置一个全局阈值,将模型中gamma系数最贴近零的阈值对应的卷积核和通道连接去除,该网络瘦身方法能重复多次,对模型进行多次压缩;
Channel Pruning:通过交替两个优化步骤实现卷积核维度的剪枝,在第一个步骤,利用Lasso回归挑选出待剪枝的特征通道,对通道进行剪枝,则意味着对其对应的卷积核剪枝,在第二个步骤,对卷积核参数进行优化,最小化剪枝后与剪枝前的输出差值,交替这两个步骤,并逐层剪枝,最终得到轻量化模型;
Soft Pruning:一种软剪枝的思路,在每一轮对基线模型训练的过程中,用L2范数评估卷积核的重要性,并将低重要性的卷积核置零,在下一轮参数更新后卷积核的参数会发生调整,然后再一次利用L2范数评估每个卷积核的重要性,重新置零部分卷积核,直到训练完成,将最终零权值的卷积核和对应连接从模型中去除,该论文预先设定每层剪枝比例,按照比例置零每层的卷积核参数,该方法具有一定的容错性,当部分卷积核被置零后,在下一轮重新调整参数值;
(4)实现细节
自适应剪枝算法的实验代码利用Python3实现,深度学习框架基于PyTorch,并使用一张NVIDIA TITAN X显卡,配备cuda8.0处理器,下面以VGG19为例分析重构结构的方法,其它预训练模型的剪枝方法类似,首先对SAC的Actor和Critic初始化,第一轮剪枝按默认参数逐层剪枝,然后根据剪枝模型的准确率误差更新模型参数,依次循环,直至模型推理速度收敛到预期目标,在VGG19中一共包含了16个卷积层,需在15个卷积层部署GAP结构,由于VGG模型结构每一个卷积层的卷积核数较多,将通道压缩率阈值设为50%,根据不同模型的特点选择不同通道压缩率;
在重构模型的微调过程中,以0.1的学习率进行训练,重构模型最多轮次设为200轮,最终推理速度设为基准模型推理速度的5倍,使用随机梯度下降算法作为优化器,更新重构模型的参数,获得更好的分类结果和加强注意力机制的权重生成。
2.根据权利要求1所述的基于分组注意力机制的自适应剪枝模型压缩算法,其特征在于,注意力机制时通常会用Softmax激活函数对关系系数α进行归一化,激活函数Softmax满足下式:
其中αv表示第v个关系系数变量,N代表关系变量的个数,
GAP模块的输入有2个来源,依次为第L-1层剪枝后的卷积核与第L层待剪枝的卷积核,输出第L层剪枝后的卷积核,定义第L层特征图为XL∈RC×W×H,C、W和H分别为特征图XL的通道数、宽度和高度,为了计算通道间的关系系数,首先用全局平均池化降低特征图XL的维度,获得仅保留特征通道维度的特征ZL∈RC,如下式:
其中,XL(h,w)为特征图XL在高度h和宽度w处的通道向量;
通过矩阵乘法计算第L-1层特征图的关系系数αL-1∈RC-1:
αL-1=AL-1·ZL
为避免在计算注意力机制时不同语义特征间的抑制作用,采用了特征关系系数分组激活的方法,增强同类语义特征在不同通道之间的差异,由于训练中卷积核的重要性动态变化,因此引入掩码进行动态剪枝,分组激活并完成特征图剪枝的公式如式所示:
3.根据权利要求1所述的基于分组注意力机制的自适应剪枝模型压缩算法,其特征在于,GAP模块会同时在多个网络层部署,当需要在第i层剪枝,则在第i-l层构造GAP模块,并将输出的权重向量重标定第i层的输出特征图,在剪枝任务中,并非每一层的每组卷积核都需要剪枝,因此必须设计一种跨层的剪枝策略;
跨层剪枝决策本质属于一种搜索任务,本文引入强化学习算法SAC,利用SAC将所有卷积层的压缩率作为动作空间A∈RL,L代表卷积层的层数,A1=0.5代表第一个卷积层的压缩率ε为0.5,即该层有一半的卷积核需要被剪枝;A3=0代表第三个卷积层的压缩率为0,即该层无需剪枝,首先利用GAP模块对卷积核的重要性进行排序(假设某层共有N个卷积核),再根据SAC输出的压缩率ε将其中N(1-ε)个卷积核对应权重置零,这样就完成了剪枝操作,nX1-丢掉70%;
将新网络的预测精度与原网络的预测精度作差,并作为SAC训练的奖励信号之一,除此之外,模型压缩的目的除了需要保证准确率不下降太多,还应降低计算的复杂度,本文设计如下奖励函数:
SAC的状态空间设计决定了剪枝策略对数据本身的敏感程度,进而影响了最终剪枝得到的模型是否与数据相关,SAC的状态空间S∈RL,且对于第l层,在第t轮剪枝中的状态表示为以下元组:
其中,l代表层数;n代表第l层滤波器的个数;cl代表当前第l层总通道数;at代表第t轮剪枝的决策变量(即压缩率);
由于本文的状态空间较大,为更快速地找到最优剪枝,因此在采用SAC算法,在原有直接最大化奖励期望的基础上引入最大熵:
H为剪枝策略状态St时的动作的熵,λ为平衡奖励与熵的系数,通过引入熵到优化问题中,鼓励策略搜索到更优的剪枝动作。
4.根据权利要求1所述的基于分组注意力机制的自适应剪枝模型压缩算法,其特征在于,具体步骤包括:
(1)对基准网络的剪枝效果
在Cifar-100数据集上预训练的基准网络在不同剪枝算法下的模型压缩效果见图4,表中所有的精度均根据单张图中心裁剪进行测试,其中B是“billion”的缩写,加速比根据FLOPs理论计算;
无论是VGG19还是ResNet56,Filter pruning都能取得最快的推理加速,但是其剪枝方式比较激进,导致准确率下降明显,相比其余方法,本文提出的方法推理加速最多,即便本文方法在提高推理速度上有优势,同时在准确率方面也取得了理想的结果,对VGG19基线模型的剪枝模型取得了TOP-1准确率的最优性能,对ResNet56基线模型的剪枝模型取得了TOP-5准确率的最优性能,虽然Channel Pruning和Soft Pruning在准确率方面性能也较高,但是由于引入了相对复杂的运算,导致推理速度提升有限,图4的结果是进行了3次实验取平均值的结果,在实验中发现,采用本文方法有时得到的重构模型相比基线模型能取得更高的准确率,这是因为注意力机制在进行卷积核剪枝挑选的同时,为其它卷积核重标定了权重,使得部分其负向作用的卷积核不被计入;
采用不同剪枝算法时,加速比随剪枝轮数的变化情况,FP算法直接将所有小于阈值的卷积核设置为零,所以在第15轮修剪时收敛,剪枝速度过快的后果是一些有价值的卷积核不能参与后续的计算,本文提出的剪枝算法的加速比比其它算法具有更快的收敛速度,这是由于SAC算法的探索机制,能快速找到分类任务的低值卷积核;
(2)剪枝模型的泛化性
在剪枝之后,小模型在其它数据集上可能会存在一定的泛化性能损失,为了进一步研究剪枝后的模型的泛化能力,我们在Imagenet数据集上对小模型的迁移学习能力进行了研究,在本实验中,模型仅在目标数据集上进行微调,但不再进行剪枝;
在Imagenet数据集上的表现远优于其它方法,在剪枝过程中保留了与数据本身相关的卷积核,而非盲目地裁剪掉对性能影响不大的连接,Soft Pruning的性能损失比较明显,这说明了该方法在剪枝过程中将一些必要的卷积核过滤掉,进而无法从新数据集中提取有价值的信息,剪枝模型在原数据集上存在过度拟合的问题;
(3)自适应剪枝分布可视化
自适应剪枝算法的核心在于数据依赖的卷积核挑选策略,即为不同的数据挑选不同的卷积核子集作为剪枝对象,为了直观观察自适应剪枝如何为不同数据挑选卷积核,作者在剪枝模型上进行卷积核分布实验,以在Cifar-100数据集上基线模型ResNet56的剪枝模型为例,作者统计出该模型最后两个残差块的第一个卷积层的卷积核剪枝情况;
剪枝模型最后一个残差块(a)和倒数第二个残差块(b)的被剪枝卷积核在Cifar-100数据集上的分布图;(a)代表最后一个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为32;(b)代表倒数第二个残差块的自适应剪枝分布图,自适应卷积核剪枝数量为39;红色条状表示该卷积核对于任何输入数据都会被忽略,绿色条状表示只在部分输入数据下忽略该卷积核,图的横坐标表示卷积核索引,范围从1到64;纵坐标表示样本数量,由于测试集包括10000个样本,纵坐标范围从0到10000,图中的每个柱体表示该卷积核在多少输入样本下会被忽略运算;
其中,部分卷积核在任何输入样本下都会被挑选为剪枝对象而部分卷积核只在某些输入样本被挑选为剪枝对象,一些卷积核对应的纵坐标为0,表示这些卷积核对于任何输入总是起到重要的作用,从来不会被忽略运算,因此,对于不同的输入数据,卷积核挑选策略是不同的,通过上述观察也印证了本文提出的剪枝方法在剪枝过程中的确应用了图像数据自身的特性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189126.4A CN114118402A (zh) | 2021-10-12 | 2021-10-12 | 基于分组注意力机制的自适应剪枝模型压缩算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111189126.4A CN114118402A (zh) | 2021-10-12 | 2021-10-12 | 基于分组注意力机制的自适应剪枝模型压缩算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114118402A true CN114118402A (zh) | 2022-03-01 |
Family
ID=80375757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111189126.4A Withdrawn CN114118402A (zh) | 2021-10-12 | 2021-10-12 | 基于分组注意力机制的自适应剪枝模型压缩算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114118402A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN114422607A (zh) * | 2022-03-30 | 2022-04-29 | 三峡智控科技有限公司 | 一种实时数据的压缩传输方法 |
CN116032431A (zh) * | 2023-02-06 | 2023-04-28 | 哈尔滨工业大学(深圳) | 针对分布式学习的通信压缩方法以及相关设备 |
CN116129197A (zh) * | 2023-04-04 | 2023-05-16 | 中国科学院水生生物研究所 | 一种基于强化学习的鱼类分类方法、系统、设备及介质 |
CN116167430A (zh) * | 2023-04-23 | 2023-05-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 基于均值感知稀疏的目标检测模型全局剪枝方法及设备 |
CN116502698A (zh) * | 2023-06-29 | 2023-07-28 | 中国人民解放军国防科技大学 | 网络通道剪枝率自适应调整方法、装置、设备和存储介质 |
TWI817591B (zh) * | 2022-06-30 | 2023-10-01 | 創鑫智慧股份有限公司 | 神經網路模型的簡化裝置與簡化方法 |
CN117131908A (zh) * | 2023-10-20 | 2023-11-28 | 华东交通大学 | 一种基于退火衰减的深度卷积神经网络的压缩方法 |
CN117238458A (zh) * | 2023-09-14 | 2023-12-15 | 广东省第二人民医院(广东省卫生应急医院) | 基于云计算的重症护理跨机构协同平台系统 |
CN118468968A (zh) * | 2024-07-12 | 2024-08-09 | 杭州字节方舟科技有限公司 | 一种基于联合动态剪枝的深度神经网络压缩方法 |
CN118655788A (zh) * | 2024-08-21 | 2024-09-17 | 中国航空工业集团公司金城南京机电液压工程研究中心 | 基于智能体模型的涡轮冷却器控制模型压缩方法和装置 |
-
2021
- 2021-10-12 CN CN202111189126.4A patent/CN114118402A/zh not_active Withdrawn
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114330714A (zh) * | 2022-03-08 | 2022-04-12 | 北京环境特性研究所 | 卷积神经网络剪枝优化方法、装置、电子设备及存储介质 |
CN114422607A (zh) * | 2022-03-30 | 2022-04-29 | 三峡智控科技有限公司 | 一种实时数据的压缩传输方法 |
CN114422607B (zh) * | 2022-03-30 | 2022-06-10 | 三峡智控科技有限公司 | 一种实时数据的压缩传输方法 |
TWI817591B (zh) * | 2022-06-30 | 2023-10-01 | 創鑫智慧股份有限公司 | 神經網路模型的簡化裝置與簡化方法 |
CN116032431B (zh) * | 2023-02-06 | 2023-09-12 | 哈尔滨工业大学(深圳) | 针对分布式学习的通信压缩方法以及相关设备 |
CN116032431A (zh) * | 2023-02-06 | 2023-04-28 | 哈尔滨工业大学(深圳) | 针对分布式学习的通信压缩方法以及相关设备 |
CN116129197A (zh) * | 2023-04-04 | 2023-05-16 | 中国科学院水生生物研究所 | 一种基于强化学习的鱼类分类方法、系统、设备及介质 |
CN116167430A (zh) * | 2023-04-23 | 2023-05-26 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 基于均值感知稀疏的目标检测模型全局剪枝方法及设备 |
CN116167430B (zh) * | 2023-04-23 | 2023-07-18 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 基于均值感知稀疏的目标检测模型全局剪枝方法及设备 |
CN116502698B (zh) * | 2023-06-29 | 2023-08-29 | 中国人民解放军国防科技大学 | 网络通道剪枝率自适应调整方法、装置、设备和存储介质 |
CN116502698A (zh) * | 2023-06-29 | 2023-07-28 | 中国人民解放军国防科技大学 | 网络通道剪枝率自适应调整方法、装置、设备和存储介质 |
CN117238458A (zh) * | 2023-09-14 | 2023-12-15 | 广东省第二人民医院(广东省卫生应急医院) | 基于云计算的重症护理跨机构协同平台系统 |
CN117238458B (zh) * | 2023-09-14 | 2024-04-05 | 广东省第二人民医院(广东省卫生应急医院) | 基于云计算的重症护理跨机构协同平台系统 |
CN117131908A (zh) * | 2023-10-20 | 2023-11-28 | 华东交通大学 | 一种基于退火衰减的深度卷积神经网络的压缩方法 |
CN117131908B (zh) * | 2023-10-20 | 2024-01-30 | 华东交通大学 | 一种基于退火衰减的深度卷积神经网络的压缩方法 |
CN118468968A (zh) * | 2024-07-12 | 2024-08-09 | 杭州字节方舟科技有限公司 | 一种基于联合动态剪枝的深度神经网络压缩方法 |
CN118655788A (zh) * | 2024-08-21 | 2024-09-17 | 中国航空工业集团公司金城南京机电液压工程研究中心 | 基于智能体模型的涡轮冷却器控制模型压缩方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114118402A (zh) | 基于分组注意力机制的自适应剪枝模型压缩算法 | |
Dong et al. | Network pruning via transformable architecture search | |
He et al. | Asymptotic soft filter pruning for deep convolutional neural networks | |
Huang et al. | Learning to prune filters in convolutional neural networks | |
CN114037844B (zh) | 基于滤波器特征图的全局秩感知神经网络模型压缩方法 | |
Ding et al. | Where to prune: Using LSTM to guide data-dependent soft pruning | |
CN112101190A (zh) | 一种遥感图像分类方法、存储介质及计算设备 | |
Wang et al. | Filter pruning with a feature map entropy importance criterion for convolution neural networks compressing | |
Barlaud et al. | Learning sparse deep neural networks using efficient structured projections on convex constraints for green AI | |
CN113344182A (zh) | 一种基于深度学习的网络模型压缩方法 | |
Singh et al. | Acceleration of deep convolutional neural networks using adaptive filter pruning | |
Wang et al. | Efficient yolo: A lightweight model for embedded deep learning object detection | |
Zhang et al. | Layer pruning for obtaining shallower resnets | |
Zhang et al. | A channel pruning algorithm based on depth-wise separable convolution unit | |
CN114742997B (zh) | 一种面向图像分割的全卷积神经网络密度峰剪枝方法 | |
Zhu et al. | Progressive kernel pruning with saliency mapping of input-output channels | |
Yang et al. | Structured pruning via feature channels similarity and mutual learning for convolutional neural network compression | |
Li et al. | A graphical approach for filter pruning by exploring the similarity relation between feature maps | |
Kumar et al. | CorrNet: pearson correlation based pruning for efficient convolutional neural networks | |
CN113780550A (zh) | 一种量化特征图相似度的卷积神经网络剪枝方法及装置 | |
CN116956997A (zh) | 用于时序数据处理的lstm模型量化重训练方法、系统及设备 | |
CN116384471A (zh) | 模型剪枝方法、装置、计算机设备、存储介质和程序产品 | |
Kulkarni et al. | A survey on filter pruning techniques for optimization of deep neural networks | |
Rong et al. | Soft Taylor pruning for accelerating deep convolutional neural networks | |
Chen et al. | Fpar: Filter pruning via attention and rank enhancement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220301 |