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

基于高斯分布特征的深层卷积神经网络压缩加速方法

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


基于高斯分布特征的深层卷积神经网络压缩加速方法

技术领域

本发明属于人工智能领域,特别适用于深度神经网络模型的压缩,尤其涉及一种基于高斯分布特征的深层卷积神经网络压缩加速方法,需要特别说明的是,本发明的处理对象为计算机中的“深度神经网络模型”,主要是对其进行的压缩处理。

背景技术

近年来,深度神经网络(DNN)在各个领域中取得了显着的性能,例如图像分类[1],人脸识别[2],物体检测[3],图像分割[4]。这些工作依赖于具有数百万甚至数十亿参数的深度网络,具有极高计算能力的GPU的可用性在其成功中起着关键作用。这些突破与现有的训练数据量和更强大的计算资源密切相关。然而,在许多深度学习的应用部署(例如,机器人,自动驾驶汽车)中,深度神经网络,受到模型的等待时间,能量和模型的大小的约束.这主要是嵌入式设备或移动设备由于本身的体积、空间等限制因素,本身无法转载高算力的资源,这使得其计算和存储资源非常宝贵,而庞大的神经网络参数使得自身成为高度计算密集型和内存密集型的模型也因此难以部署到边缘设备上。幸运的是,目前已经成功的提出了许多方法[5,6,7,8,9]通过模型压缩来改善神经网络在硬件部署上的问题。模型压缩是一种非常有效的方法,主要是在保证模型的性能没有明显的降低的前提下,通过裁剪模型冗余参数参数信息或者冗余的结构信息来实现模型的压缩与加速。

另一方面,发现,目前先进的模型压缩方法更多是关注于从smaller-norm-lessimportant[10,11],灵敏度[12],几何距离[8]等方面对卷积核进行评价,而缺乏从学习好的模型本身的特性信息进行评估。另一方面,根据目前所掌握的知识,模型在初始化阶段采用的一些分布方法对模型进行初始化,如random initialization、Xavier初始化[9]、MSRA初始化[17],可以提高模型训练收敛速度以及模型网络效果。

基于上述考虑,提出了一种新颖的深度学习模型压缩加速方法,基于高斯分布特征的深层卷积神经网络压缩加速方法。与目前先进的方法不同,剪枝过程是从特征基础上进行的,且剪枝的过程是自动化进行的而无需人为设定相关的压缩超参数信息。具体来说,剪枝方法是一种耦合的剪枝操作。将训练好后的模型进行逐层分布特性分析,保证模型能够恢复到原始的推理性能的前提下尽可能的裁剪掉在该层上分布不显著的卷积核。这意味着,剪枝后的模型的性能不会低于原始模型性能,且微调操作不是必须的。

参考文献:

[1]Karen Simonyan and Andrew Zisserman.Very deep convolutionalnetworks for large-scale image recognition.arXiv preprint arXiv:1409.1556,2014

[2]Nianyin Zeng,Hong Zhang,Baoye Song,Weibo Liu,Yurong Li,andAbdullahM Dobaie.Facial expression recognition via learning deep sparseautoencoders.Neurocomputing,273:643–649,2018

[3]Anup Deshmukh and Pratheeksha Nair.Yolo:Unifed,real-time objectdetection.2018

[4]Junwei Han,Dingwen Zhang,Gong Cheng,Nian Liu,and Dong Xu.Advanceddeep-learning techniques for salient and category-specifc object detection:asurvey.IEEE Signal ProcessingMagazine,35(1):84–100,2018

[5]Chong Wang,Xipeng Lan,and Yangang Zhang.Model distillation withknowledge transfer from face classifcation to alignment and verifcation.arXivpreprint arXiv:1709.02929,2017

[6]J.Gomez Robles and J.Vanschoren.Learning to reinforcement learnfor neural architecture search,2019

[7]Jungwook Choi,Zhuo Wang,Swagath Venkataramani,Pierce I-Jen Chuang,Vijayalakshmi Srinivasan,and Kailash Gopalakrishnan.Pact:Parameterizedclipping activation for quantized neural networks.arXiv preprint arXiv:1805.06085,2018.

[8]Yang He,Ping Liu,Ziwei Wang,Zhilan Hu,and Yi Yang.Filter pruningvia geometric median for deep convolutional neural networks acceleration.InProceedings of the IEEE Conference on Computer Vision and PatternRecognition,pages 4340–4349,2019

[9]Yihui He,Xiangyu Zhang,and Jian Sun.Channel pruning foraccelerating very deep neural networks.In Proceedings of the IEEEInternational Conference on ComputerVision,pages 1389–1397,2017.

[10]Yang He,Guoliang Kang,Xuanyi Dong,Yanwei Fu,and Yi Yang.Softflter pruning for accelerating deep convolutional neural networks.arXivpreprint arXiv:1808.06866,2018

[11]Christian Szegedy,Vincent Vanhoucke,Sergey Ioffe,Jon Shlens,andZbigniew Wojna.Rethinking the inception architecture for computer vision.InProceedings of the IEEE conference on computer vision and patternrecognition,pages 2818–2826,2016.

[12]Hao Li,Asim Kadav,Igor Durdanovic,Hanan Samet,and Hans PeterGraf.Pruning flters for efcient convnets.arXiv preprint arXiv:1608.08710,2016

发明内容

本发明要解决的技术问题是,提供一种基于高斯分布特征的深层卷积神经网络压缩加速方法,首先训练好一个原始的卷积神经网络,然后逐层对该网络进行高斯分析,根据分析的结果选择保留还是删除的卷积核,之后进训练,直到模型剪枝完成。具体的实现流程见附图1。

基于高斯分布特征的深层卷积神经网络压缩加速方法,具体包括以下步骤:

步骤1,基准模型训练。训练好一个需要进行模型压缩剪枝的卷积神经网络,生成模型压缩的基准模型,同时为接下来的分析提供基础压缩原始模型,同时用于模型压缩结束后进行压缩效果评估的基准。

步骤2,模型卷积核提取与高斯分布拟合。对基准模型进行逐层提取卷积核,之后对每一层的卷积核的高斯拟合。对该层拟合后的卷积核Fi进行高斯分布分析,提取分析结果,通过分析的结果来引导该层的剪枝。每一次提取模型的一层卷积核。

步骤3,根据高斯分布拟合的特征进行卷积核裁剪。卷积核裁剪与模型性能恢复。

步骤3.1,针对步骤2分析的结果,拟合后的模型,在模型训练的过程中呈现向高斯分布的某一中心收敛,为简化剪枝操作,本发明根据步骤2的结果选择高斯分布的中心为模型收敛中心,向两端拓展为模型的收敛区间,而在该收敛区间外的该层卷积核将被视为冗余部分,因此将被裁剪掉并丢弃,即裁剪在分布收敛区间之外的卷积核。分布收敛区间从模型的最大区间到最小区间采用网格算法的方式进行搜索。

步骤3.2,模型性能恢复。对该裁剪的卷积层进行重训练,而对其他剩下的卷积层进行模型微调训练,直到模型性能恢复。此时存在两种情况,模型性能恢复与模型性能无法恢复。

情况一:模型性能恢复正常。模型性能恢复正常说明该层的裁剪是有效的,同时表明该层的卷积核仍然可能存在一定的冗余。此时仍然回到步骤3.1,对该层的收敛区间进行缩小,直到寻找到最小的收敛区间,该层的裁剪才结束。

情况二:模型性能无法恢复。如果该次的裁剪结果无法实现模型的性能恢复,可能是本层裁剪过度或者是上一层的裁剪过度而导致模型无法恢复。

本层裁剪过度。回到步聚3.1,调整增大该层上一次的收敛区间,如果模型精度能够恢复,则表明寻找到该层的最佳模型压缩收敛区间。

上一层的裁剪过度。在进行本层裁剪过度恢复处理的过程中,会调整该层的分布收敛区间,如果分布收敛区间调整到最大,模型的精度仍然无法收敛,并累计出现3次及其以上,那么说明上一层的模型裁剪过大而导致该层无法收敛,则对上一层的裁剪结果进行重新调整,即扩大上一次(即上一层卷积层)分布收敛区间。

步骤3.3,回去步骤2,继续进行迭代,直到网络的所有层裁剪结束。在裁剪的过程中,裁剪的方向可以是从模型的前端裁剪到模型的末端或者是也可以是从模型的末端裁剪到模型的前端。

步骤4,模型微调训练。这个步骤不是必须的。另外,如果进行模型微调训练,模型的精度仍然可以进一步提升。

相关的参数约定

假设一个卷积神经网络有L层卷积层,即本发明裁剪技术操作对象,使用N

f(i,j)=|F

这一层的卷积核表示为:

F

相关分析

此处对应发明内容步骤1,2,模型卷积核提取与高斯分布拟合。训练好的baseline基准模型,任意一层N

模型在进行训练前后,在高斯分布函数上呈现出以下特征,如图2

1、随着模型学习的进行,f(i,j)在高斯函数的两端的卷积核信息分布数量稀疏

2、f(i,j)在高斯分布函数上表现为向高斯分布的某一中心收敛。

基于这样的特征,提出一下的假设:

假设1:分布假设。模型的任意一个卷积层的f(i,j)是服从高斯分布

假设2:收敛假设。在假设一的情况下,认为,在训练的过程中,f(i,j)应该向高斯分布的某一中心收敛,而无法向其收敛的卷积核可能是冗余信息,可以被裁剪掉,且分布在中心附近的卷积核f(i,j)具有更好的学习能力。在进行重训练阶段,使分布在中心的卷积核f(i,j)进行重新学习,能够重新学习到被认为是冗余的卷积核,但是实际上却是有效的卷积核信息。

基于以上的假设理论,认为,总是存在一个区间[a,b]包含该卷积层中的重要信息,而在这个区间之外的卷积核f(i,j)是可以被裁减掉的,而被错误被裁剪的卷积核在重训练阶段可以通过区间[a,b]内的卷积核重新学习到。

分布假设的合理性。将使用QQ图对不同模型的卷积核的分布信息与高斯分布函数进行粗略的验证。显示了在VGG-19总共16个卷积核在高斯分布上的合理性,如图3。发现,这些层的卷积核近似分布在直线附近。少数的卷积核在直线的两端出现了偏差较大,但总体数据上,始终分布在直线两端。因此有理由相信,的假设是合理的。

高斯分析的卷积核选择

此处对应发明内容步骤3,根据高斯分布拟合的特征进行卷积核裁剪。训练后的baseline基准模型的任意一层的卷积Fi来源于的分布总体Q(x)。模型在i层学习到的数据分布为Q

Q

T是i

argmin{Q

如果h(j)没有向高斯分布中心收敛,那么它可能是冗余的,因此可以被删除。模型压缩的过程相当于搜索集合T的子集S,分布在集合S两端的冗余数据将被裁剪掉,该过程表示为如下:

由此,有T=S∪T

T

argmin{Q

需要注意的是,每一层的h(j)分布在(μ-ασ,μ+ασ)区间两侧的数量并不是对称的。

与现有的技术相比,本发明在技术原理上是采用分布特征进行压缩剪枝的,从模型权重本身分布特征进行,而不是建立于一些相关性的评价。本发明在进行压缩剪枝过程中,采用的技术方案是根据分布收敛特征进行剪枝,在压缩的过程中没有引入其他的剪枝约束超参数,因此压缩的过程是自动化搜索的。同时,相比于现有的模型压缩方法,本发明的压缩结果是直接压缩出更小的模型,没有引入mask对权重进行操作,压缩的结果可以不依赖于相关的加速库而直接产生加速效果。另外,在现有的模型压缩方法中,大多数模型的压缩是要依赖模型微调训练才可以弥补模型压缩带来的精度损失,而本发明在压缩剪枝的过程中,始终让模型的性能保证在原来的基础上,即没有出现任何的精度损失下进行的。

附图说明

图1剪枝压缩流程图。

图2:说明卷积核卷积核f(i,j)在训练过程中的高斯分布特征;图中是在CIFAR-10上VGG-16的第二层卷积核在训练过程中的分布变化。高斯分布特征变化和密集程度变化。(a)初始化(b)16epochs(c)32epochs(d)160epochs。

图3,高斯合理性检验图。在CIFAR-10上VGG-19所有的卷积层在QQ图上的高斯分布合理性检验;.Q-Q′对应的点近似分布在直线附近。

图4,CIFAR-10数据集上,VGG-NET网络的剪枝效果。

图5,CIFAR-10数据集上,ResNet网络的剪枝效果。

具体实施方式

以下结合附图和实施例对本发明进行详细说明。

基于高斯分布特征的深层卷积神经网络压缩加速方法,步骤1,基准模型训练。训练好一个需要进行模型压缩剪枝的卷积神经网络,生成模型压缩的基准模型,同时为接下来的分析提供基础压缩原始模型,同时用于模型压缩结束后进行压缩效果评估的基准。

步骤2,模型卷积核提取与高斯分布拟合。对基准模型进行逐层提取卷积核,之后对每一层的卷积核的高斯拟合。对该层拟合后的卷积核Fi进行高斯分布分析,提取分析结果,通过分析的结果来引导该层的剪枝。每一次提取模型的一层卷积核。

步骤3,根据高斯分布拟合的特征进行卷积核裁剪。卷积核裁剪与模型性能恢复。

步骤3.1,针对步骤2分析的结果,拟合后的模型,在模型训练的过程中呈现向高斯分布的某一中心收敛,为简化剪枝操作,本发明根据步骤2的结果选择高斯分布的中心为模型收敛中心,向两端拓展为模型的收敛区间,而在该收敛区间外的该层卷积核将被视为冗余部分,因此将被裁剪掉并丢弃,即裁剪在分布收敛区间之外的卷积核。分布收敛区间从模型的最大区间到最小区间采用网格算法的方式进行搜索。

步骤3.2,模型性能恢复。对该裁剪的卷积层进行重训练,而对其他剩下的卷积层进行模型微调训练,直到模型性能恢复。此时存在两种情况,模型性能恢复与模型性能无法恢复。

情况一:模型性能恢复正常。模型性能恢复正常说明该层的裁剪是有效的,同时表明该层的卷积核仍然可能存在一定的冗余。此时仍然回到步骤3.1,对该层的收敛区间进行缩小,直到寻找到最小的收敛区间,该层的裁剪才结束。

情况二:模型性能无法恢复。如果该次的裁剪结果无法实现模型的性能恢复,可能是本层裁剪过度或者是上一层的裁剪过度而导致模型无法恢复。

本层裁剪过度。回到步聚3.1,调整增大该层上一次的收敛区间,如果模型精度能够恢复,则表明寻找到该层的最佳模型压缩收敛区间。

上一层的裁剪过度。在进行本层裁剪过度恢复处理的过程中,会调整该层的分布收敛区间,如果分布收敛区间调整到最大,模型的精度仍然无法收敛,并累计出现3次及其以上,那么说明上一层的模型裁剪过大而导致该层无法收敛,则对上一层的裁剪结果进行重新调整,即扩大上一次(即上一层卷积层)分布收敛区间。

步骤3.3,回去步骤2,继续进行迭代,直到网络的所有层裁剪结束。在裁剪的过程中,裁剪的方向可以是从模型的前端裁剪到模型的末端或者是也可以是从模型的末端裁剪到模型的前端。

步骤4,模型微调训练。这个步骤不是必须的。另外,如果进行模型微调训练,模型的精度仍然可以进一步提升。

以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。

相关技术
  • 基于高斯分布特征的深层卷积神经网络压缩加速方法
  • 基于高斯分布特征的深层卷积神经网络压缩加速方法
技术分类

06120112858456