CN109034372A - 一种基于概率的神经网络剪枝方法 - Google Patents

一种基于概率的神经网络剪枝方法 Download PDF

Info

Publication number
CN109034372A
CN109034372A CN201810691867.4A CN201810691867A CN109034372A CN 109034372 A CN109034372 A CN 109034372A CN 201810691867 A CN201810691867 A CN 201810691867A CN 109034372 A CN109034372 A CN 109034372A
Authority
CN
China
Prior art keywords
parameter
probability
group
model
beta pruning
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.)
Granted
Application number
CN201810691867.4A
Other languages
English (en)
Other versions
CN109034372B (zh
Inventor
王欢
胡浩基
王曰海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201810691867.4A priority Critical patent/CN109034372B/zh
Publication of CN109034372A publication Critical patent/CN109034372A/zh
Application granted granted Critical
Publication of CN109034372B publication Critical patent/CN109034372B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning 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)准备工作
对于待剪枝的神经网络模型,准备训练它的数据集、网络结构配置文件、训练过程配置文件,所使用的数据集、网络结构配置、训练过程配置均与原训练方法保持一致;
(2)概率剪枝
(2.1)为该神经网络的每一层1设置目标剪枝率为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所述的基于概率的神经网络剪枝方法,其特征在于,所述步骤(2.2)中的参数更新的方式具体为:
对于每个参数w,为其分配一个mask属于{0,1},当mask=0时,表示该参数在当前轮迭代中不发挥作用,当mask=1时,表示发挥作用,根据该参数所在群组的参与概率p为该参数分配一个mask,剪掉mask为0的参数。
3.根据权利要求1所述的基于概率的神经网络剪枝方法,其特征在于,所述Δ的确定方法如下:
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表示该层的群组个数。
CN201810691867.4A 2018-06-28 2018-06-28 一种基于概率的神经网络剪枝方法 Active CN109034372B (zh)

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 true CN109034372A (zh) 2018-12-18
CN109034372B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723915A (zh) * 2020-08-24 2020-09-29 国网浙江省电力有限公司 深度卷积神经网络的剪枝方法、计算机设备及应用方法
CN112183747A (zh) * 2020-09-29 2021-01-05 华为技术有限公司 神经网络训练的方法、神经网络的压缩方法以及相关设备
WO2021057056A1 (zh) * 2019-09-25 2021-04-01 华为技术有限公司 神经网络架构搜索方法、图像处理方法、装置和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
NIT.ISHSRIVASTAVA ETAL.: "Dropout:asimplewaytopreventneuralnetAvorksfromoverfitting", 《JMLR》 *
X.ZHANG ETAL.: "Acceleratingverydeepconvolutionalnetworksforclassificationariddetection", 《PAMI》 *
齐峰: "人工神经树网络模型的优化研究与应用", 《中国博士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021057056A1 (zh) * 2019-09-25 2021-04-01 华为技术有限公司 神经网络架构搜索方法、图像处理方法、装置和存储介质
CN111723915A (zh) * 2020-08-24 2020-09-29 国网浙江省电力有限公司 深度卷积神经网络的剪枝方法、计算机设备及应用方法
CN111723915B (zh) * 2020-08-24 2021-02-19 国网浙江省电力有限公司 一种基于深度卷积神经网络的目标检测方法
CN112183747A (zh) * 2020-09-29 2021-01-05 华为技术有限公司 神经网络训练的方法、神经网络的压缩方法以及相关设备
WO2022068314A1 (zh) * 2020-09-29 2022-04-07 华为技术有限公司 神经网络训练的方法、神经网络的压缩方法以及相关设备

Also Published As

Publication number Publication date
CN109034372B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN106228185B (zh) 一种基于神经网络的通用图像分类识别系统及方法
CN111047085B (zh) 一种基于元学习的混合动力车辆工况预测方法
CN110472778A (zh) 一种基于Blending集成学习的短期负荷预测方法
CN111950656B (zh) 图像识别模型生成方法、装置、计算机设备和存储介质
CN109034372A (zh) 一种基于概率的神经网络剪枝方法
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
CN108399428A (zh) 一种基于迹比准则的三元组损失函数设计方法
CN114912705A (zh) 一种联邦学习中异质模型融合的优化方法
CN113128355A (zh) 一种基于通道剪枝的无人机图像实时目标检测方法
CN112580801B (zh) 一种强化学习训练方法及基于强化学习的决策方法
CN110197307B (zh) 一种结合注意力机制的区域型海表面温度预测方法
CN112149721A (zh) 一种基于主动学习降低标注需求的目标检测方法
CN112288087A (zh) 一种神经网络剪枝方法、装置、电子设备及存储介质
CN113919484A (zh) 基于深度卷积神经网络模型的结构化剪枝方法和装置
CN109754122A (zh) 一种基于随机森林特征提取的bp神经网络的数值预测方法
CN108229536A (zh) 分类预测模型的优化方法、装置及终端设备
CN115544873A (zh) 个性化联邦学习的训练效率与个性化效果量化评估方法
CN117037006A (zh) 一种高续航能力的无人机跟踪方法
CN113076663A (zh) 一种动态混合精度模型构建方法及系统
CN116911459A (zh) 适应于虚拟电厂的多输入多输出超短期电力负荷预测方法
CN112561054A (zh) 一种基于批量特征热图的神经网络滤波器剪枝方法
CN108073979A (zh) 一种导入人工智能超深度学习用于图像识别的方法
CN107220993B (zh) 基于Mean shift聚类的粒子滤波机动目标追踪方法
CN113052810B (zh) 一种适用于移动应用的小巧医学影像病灶分割方法
CN116048785A (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