CN109034372B - 一种基于概率的神经网络剪枝方法 - Google Patents
一种基于概率的神经网络剪枝方法 Download PDFInfo
- Publication number
- CN109034372B CN109034372B CN201810691867.4A CN201810691867A CN109034372B CN 109034372 B CN109034372 B CN 109034372B CN 201810691867 A CN201810691867 A CN 201810691867A CN 109034372 B CN109034372 B CN 109034372B
- Authority
- CN
- China
- Prior art keywords
- pruning
- probability
- neural network
- parameter
- model
- 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.)
- Active
Links
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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于概率的神经网络剪枝方法。在对一个神经网络模型进行剪枝时,为每一个参数分配一个参与概率p∈(0,1]。当p=1时表示该参数在训练过程中始终发挥作用;当p=0时表示该参数完全不参与训练,可以从网络中删除;剪枝过程中p从1开始逐渐递减,当p=0时该参数被完全删除。当网络中被完全删除的参数比重达到设定的目标值时,停止剪枝。然后对模型进行再训练,当模型的准确率不再有提高时,停止再训练,得到最终的模型。本发明方法解决了以卷积神经网络为代表的深度学习模型存储量大、计算量大的问题,使得深度学习模型可以部署在资源受限型设备(如手机、可穿戴设备等)上,推进智能算法在移动端的应用。
Description
技术领域
本发明涉及神经计算、模式识别、计算机视觉领域,特别涉及神经网络进行剪枝以增强其泛化能力、降低存储量、加快运行速度的方法。
背景技术
近年来,深度卷积神经网络(Convolutional Neural Network,CNN)通过利用大量数据的大规模网络学习,在分类、检测和分割等计算机视觉任务中取得了显着的成功。但是,CNN通常会占用大量计算资源和存储空间,阻碍了其在移动和嵌入式等资源受限型设备上的部署。为了降低计算和存储成本,许多研究工作对CNN模型进行压缩与加速探索,参数剪枝是其中的一种方法。
但是目前现有的参数剪枝方法存在以下几个问题。一是基于一定的重要性标准进行参数的重要性判断并剪枝,在接下去的训练过程中将不再恢复被剪枝的参数,这可能导致修剪完的神经网络的准确率较低;二是目前的剪枝方法采用逐层剪枝和模型再训练的方式,对于非常深的架构来说,剪枝和再训练将十分耗时;三是目前大多剪枝方法基于卷积核的修剪,由于卷积核是大而粗粒度的单位,因此该修剪方法可能会导致模型精度的明显下降。
发明内容
为了克服上述传统参数剪枝方法的弊端,本发明提供了一种基于概率的神经网络剪枝方法。该方法在剪枝过程中,为每一个参数设置一个参与到网络中的概率,使已经被修剪的参数在接下去的训练中可能被恢复,解决了传统算法中已修剪参数的不再利用的弊端。同时采用所有卷积层同时剪枝的方式,缩短了剪枝和再训练时间。最后,该方法为伸进网络每一层的参数按一定规则设置为不同的群组,参数剪枝于群组,解决了传统算法中剪枝方法直接作用于卷积核所带来的精度下降问题。
本发明的目的可以通过以下的技术方法实现:一种基于概率的神经网络剪枝方法,具体包括以下步骤:
(1)准备工作
对于待剪枝的神经网络模型,准备训练它的数据集、网络结构配置文件、训练过程配置文件,所使用的数据集、网络结构配置、训练过程配置均与原训练方法保持一致;
(2)概率剪枝
(2.1)为该神经网络的每一层l设置目标剪枝率为Rl∈[0,1),每隔t次迭代,更新一次参与概率p;
(2.2)对神经网络每一层的参数进行分群组,设第l层的群组的个数是Nl,同一个群组中的参数共享同一个参与概率p;
(2.3)将所有参与概率p初始化为1,开始训练;
(2.4)当训练的步数是t的整数倍时,减少一次参与概率p,设减少值为Δ;
(2.5)更新参与概率p:p=max(min(p-Δ,1),0);
(2.6)继续训练,当训练步数是t的整数倍时,回到步骤(2.4);
(2.7)当所有层均达到设定的目标剪枝率Rl时,步骤(2.4)-(2.6)的循环结束,概率剪枝终止;
(3)对剪枝完成的模型进行再训练,并对模型的准确率进行监测,当再训练的模型准确率不再上升时,得到剪枝后的神经网络模型。
进一步的,所述步骤(2.2)中的参数更新的方式具体为:
对于每个参数w,为其分配一个mask属于{0,1},当mask=0时,表示该参数在当前轮迭代中不发挥作用,当mask=1时,表示发挥作用,根据该参数所在群组的参与概率p为该参数分配一个mask,剪掉mask为0的参数。
进一步的,所述Δ的确定方法如下:
a、选择一种衡量不同群组在剪枝中相对重要性的标准C,以此标准给每个群组g分配一个重要性值C(g),每个群组g的重要性与其重要性值C(g)正相关;
b、对于每个群组,根据它的重要性值按照惩罚函数f(r)决定它们的Δ=f(C(g));
该惩罚函数需满足一下要求:
1)该函数为单调非增函数;
2)当C(g)<C(gth)时,f(C(g))>0;当C(g)≥C(gth)时,f(C(g))<0,其中gth表示对C(g)进行升序排序,位于第th名的群组,其中 表示向上取整函数,Ng表示该层的群组个数。
与现有技术相比,本发明具有如下优点:
(1)本发明对神经网络的每一个参数分配一个修剪概率,在训练过程中参与概率按一定规则进行更新,只有当概率达到0时,权重才能永久地从网络中消除。
(2)本发明同时剪枝整个神经网络而不是分层剪枝,因此当神经网络较深时,时间复杂度是可控的。
(3)本发明的剪枝单元是模型的参数列,与卷积核级别的剪枝相比,结构化单元更小,修剪后的模型的精度较高。
附图说明
图1为本发明实施例中惩罚函数f(r)的示意图。
具体实施方式
结合下面的实施例子,对本发明进行进一步的详细说明。但是本发明提出的神经网络概率剪枝算法并不限于这一种实施方法。
(1)准备工作
对于待剪枝的神经网络模型,准备训练它的数据集、网络结构配置文件、训练过程配置文件,所有使用到的数据集、网络结构配置、训练过程配置等均与原训练方法保持一致。在做模型为ResNet-50的神经网络概率剪枝实验中,所使用的数据集为ImageNet-2012,所使用的网络结构配置等文件均为ResNet-50原模型所使用的文件(下载链接为github.com/KaimingHe/deep-residual-networks)
(2)概率剪枝
(2.1)为该神经网络的每一层l设置目标剪枝率为Rl∈[0,1),每隔t次迭代,更新一次参与概率p;在ResNet-50的实验中,t设置为100。
(2.2)对神经网络每一层的参数进行分群组(Group),设第l层的群组的个数是Nl,同一个群组中的参数共享同一个参与概率p。在ResNet-50的实验中,将卷积层中每个卷积核中处于相同位置的参数划分在一个群组内。
(2.3)将所有参与概率初始化为0,开始训练。
(2.4)当训练的步数是t的整数倍时,减少一次参与概率,设减少值为Δ,Δ通过以下方式确定:
(2.4.1)将该层所分的群组按一定规则进行重要性大小的升序排序,例如说对于群组C1和C2,重要性规则为g(*),群组C1比群组C2较重要,则g(C1)>g(C2)。在ResNet-50的实验中,该重要性规则为参数的L1范数大小。
(2.4.2)对于每个群组,根据它的重要性值按照惩罚函数f(r)决定它们的Δ=f(C(g));该函数有以下两个特点:
一是函数呈单调非增趋势。在群组排序中,排在较前的群组的重要性较低,因此参与概率的减少量较大;排在较后的群组的重要性较高,因此参与概率的减少量较小。
二是减少量的函数存在零增量点。若参数划分的群组个数为Ng,剪枝率为R(0<R<1),则该算法的目标为修剪群组排序在R×Ng前的群组,因此在群组排序后,排在R×Ng前的群组的参与概率需减少(函数表现为Δ为正),排在R×Ng后的群组的参与概率需增加(函数表现为Δ为负),排在R×Ng的群组的参与概率不变(函数表现为Δ为0,即该减少量函数的零点)。
图1为本发明实施例中惩罚函数f(r)的示意图,在ResNet-50模型的实验中,该惩罚函数为:
在上述函数中,超参数A表示排名最差的群组的概率增量;超参数α是指数函数的衰减系数,公式为其中u是用来控制函数平坦性的超参数。自变量r表示群组重要性的排序。rth=R×Ng-1,表示临界排名。在ResNet-50的剪枝实验中,A设置为0.04,u设置为0.1。
(2.5)更新参与概率:p=max(min(p-Δ,1),0),其中max、min函数是为了保证p的范围在[0,1]。
(2.6)继续训练,当训练步数是t的整数倍时,回到步骤(2.4)。
(2.7)当所有层均达到设定的目标剪枝率Rl时,步骤(2.4)-(2.6)的循环结束,概率剪枝终止。
(3)对剪枝完成的模型进行再训练,并用测试集(如果没有测试集,则使用验证集)对模型的准确率进行监测。当再训练的模型准确率不再上升时,算法终止,得到剪枝后的神经网络模型。在模型为ResNet-50的概率剪枝实验中,原始的ResNet-50模型在数据集为ImageNet的top-5准确率为91.2%,经过设定2倍剪枝率的概率剪枝算法剪枝后,在ImageNet数据集上面的准确率为90.4%。
Claims (3)
1.一种基于概率的神经网络剪枝方法,其特征在于,具体包括以下步骤:
(1)准备工作
对于待剪枝的神经网络模型,准备训练它的数据集、网络结构配置文件、训练过程配置文件,所使用的数据集、网络结构配置、训练过程配置均与原训练方法保持一致;
在做神经网络模型为ResNet-50的神经网络概率剪枝实验中,所使用的数据集为ImageNet-2012,所使用的网络结构配置文件均为ResNet-50原模型所使用的文件;
(2)概率剪枝
(2.1)为该神经网络的每一层l设置目标剪枝率为Rl∈[0,1),每隔t次迭代,更新一次参与概率p;
(2.2)对神经网络每一层的参数进行分群组,设第l层的群组的个数是Nl,同一个群组中的参数共享同一个参与概率p;
(2.3)将所有参与概率p初始化为1,开始训练;
(2.4)当训练的步数是t的整数倍时,减少一次参与概率p,设减少值为Δ;
(2.5)更新参与概率p:p=max(min(p-Δ,1),0);
(2.6)继续训练,当训练步数是t的整数倍时,回到步骤(2.4);
(2.7)当所有层均达到设定的目标剪枝率Rl时,步骤(2.4)-(2.6)的循环结束,概率剪枝终止;
(3)对剪枝完成的模型进行再训练,并对模型的准确率进行监测,当再训练的模型准确率不再上升时,得到剪枝后的神经网络模型。
2.根据权利要求1所述的基于概率的神经网络剪枝方法,其特征在于,所述剪枝的方式具体为:
对于每个参数w,为其分配一个mask属于{0,1},当mask=0时,表示该参数在当前轮迭代中不发挥作用,当mask=1时,表示发挥作用,根据该参数所在群组的参与概率p为该参数分配一个mask,剪掉mask为0的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691867.4A CN109034372B (zh) | 2018-06-28 | 2018-06-28 | 一种基于概率的神经网络剪枝方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810691867.4A CN109034372B (zh) | 2018-06-28 | 2018-06-28 | 一种基于概率的神经网络剪枝方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109034372A CN109034372A (zh) | 2018-12-18 |
CN109034372B true CN109034372B (zh) | 2020-10-16 |
Family
ID=65520800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810691867.4A Active CN109034372B (zh) | 2018-06-28 | 2018-06-28 | 一种基于概率的神经网络剪枝方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109034372B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112561027A (zh) * | 2019-09-25 | 2021-03-26 | 华为技术有限公司 | 神经网络架构搜索方法、图像处理方法、装置和存储介质 |
CN111723915B (zh) * | 2020-08-24 | 2021-02-19 | 国网浙江省电力有限公司 | 一种基于深度卷积神经网络的目标检测方法 |
CN112183747A (zh) * | 2020-09-29 | 2021-01-05 | 华为技术有限公司 | 神经网络训练的方法、神经网络的压缩方法以及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104751227A (zh) * | 2013-12-31 | 2015-07-01 | 安徽科大讯飞信息科技股份有限公司 | 深度神经网络的构建方法及系统 |
CN105701540A (zh) * | 2016-01-11 | 2016-06-22 | 清华大学 | 一种自生成神经网络构建方法 |
CN107317583A (zh) * | 2017-05-18 | 2017-11-03 | 湖北工业大学 | 基于循环神经网络的可变步长分布式压缩感知重建方法 |
US20180101768A1 (en) * | 2016-10-07 | 2018-04-12 | Nvidia Corporation | Temporal ensembling for semi-supervised learning |
-
2018
- 2018-06-28 CN CN201810691867.4A patent/CN109034372B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104751227A (zh) * | 2013-12-31 | 2015-07-01 | 安徽科大讯飞信息科技股份有限公司 | 深度神经网络的构建方法及系统 |
CN105701540A (zh) * | 2016-01-11 | 2016-06-22 | 清华大学 | 一种自生成神经网络构建方法 |
US20180101768A1 (en) * | 2016-10-07 | 2018-04-12 | Nvidia Corporation | Temporal ensembling for semi-supervised learning |
CN107317583A (zh) * | 2017-05-18 | 2017-11-03 | 湖北工业大学 | 基于循环神经网络的可变步长分布式压缩感知重建方法 |
Non-Patent Citations (3)
Title |
---|
Nit.ish Srivastava etal..Dropout: a simple way to prevent neural netAvorks from overfitting.《JMLR》.2014,第15卷(第1期), * |
X.Zhang etal..Accelerating very deep convolutional networks for classification arid detection.《PAMI》.2016,第38卷(第10期), * |
人工神经树网络模型的优化研究与应用;齐峰;《中国博士学位论文全文数据库 信息科技辑》;20110815;第9-49页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109034372A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034372B (zh) | 一种基于概率的神经网络剪枝方法 | |
CN107247973A (zh) | 一种基于spark的支持向量机参数优选并行粒子群寻优方法 | |
CN113408561B (zh) | 模型生成方法、目标检测方法、装置、设备及存储介质 | |
CN112149721A (zh) | 一种基于主动学习降低标注需求的目标检测方法 | |
CN111723915A (zh) | 深度卷积神经网络的剪枝方法、计算机设备及应用方法 | |
CN113850281A (zh) | 一种基于meanshift优化的数据处理方法和装置 | |
CN112990420A (zh) | 一种用于卷积神经网络模型的剪枝方法 | |
CN111199126A (zh) | 一种碎片天线的快速优化设计方法 | |
CN113919484A (zh) | 基于深度卷积神经网络模型的结构化剪枝方法和装置 | |
CN112270405A (zh) | 基于范数的卷积神经网络模型的滤波器剪枝方法和系统 | |
Ye et al. | K-means clustering algorithm based on improved Cuckoo search algorithm and its application | |
CN114091650A (zh) | 一种深度卷积神经网络架构的搜索方法和应用 | |
CN114819143A (zh) | 一种适用于通信网现场维护的模型压缩方法 | |
CN117037006B (zh) | 一种高续航能力的无人机跟踪方法 | |
CN114417095A (zh) | 一种数据集划分方法及装置 | |
CN113239503B (zh) | 基于改进k-means聚类算法的新能源出力场景分析方法及系统 | |
CN113609763A (zh) | 基于不确定性的卫星组件布局温度场预测方法 | |
CN115907079B (zh) | 一种基于注意力时空图卷积网络的空域交通流量预测方法 | |
CN112068088A (zh) | 一种基于优化bp神经网络的雷达辐射源威胁评估方法 | |
CN110837885A (zh) | 一种基于概率分布的Sigmoid函数拟合方法 | |
CN116415144A (zh) | 一种基于循环神经网络的模型压缩和加速方法 | |
CN113052810B (zh) | 一种适用于移动应用的小巧医学影像病灶分割方法 | |
CN113126052A (zh) | 基于逐级分段训练的高分辨距离像目标识别在线建库方法 | |
CN114077924A (zh) | 考虑极端大风天气的风电功率预测大风数据增强方法 | |
CN108932550B (zh) | 一种基于模糊密集稀疏密集算法进行图像分类的方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |