CN111461322A - 一种深度神经网络模型压缩方法 - Google Patents
一种深度神经网络模型压缩方法 Download PDFInfo
- Publication number
- CN111461322A CN111461322A CN202010174807.2A CN202010174807A CN111461322A CN 111461322 A CN111461322 A CN 111461322A CN 202010174807 A CN202010174807 A CN 202010174807A CN 111461322 A CN111461322 A CN 111461322A
- Authority
- CN
- China
- Prior art keywords
- pruning
- neural network
- model
- layer
- unstructured
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000003062 neural network model Methods 0.000 title claims abstract description 35
- 230000006835 compression Effects 0.000 title claims abstract description 34
- 238000007906 compression Methods 0.000 title claims abstract description 34
- 238000013138 pruning Methods 0.000 claims abstract description 151
- 238000013528 artificial neural network Methods 0.000 claims abstract description 44
- 238000012549 training Methods 0.000 claims abstract description 38
- 230000008569 process Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 35
- 238000005457 optimization Methods 0.000 claims description 15
- 238000005520 cutting process Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 10
- 239000011159 matrix material Substances 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 5
- 239000000126 substance Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 238000005315 distribution function Methods 0.000 claims description 3
- 238000007667 floating Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000013519 translation Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种深度神经网络模型压缩方法,包括如下步骤:1)通过标准神经网络训练流程完成对复杂模型的训练,获得原始模型;2)按照下述公式之一利用结构化剪枝和非结构化剪枝对所述原始模型进行剪枝:{(s,st,u,ut)*(n‑1),(s,st,u)}或者{(u,ut,s,st)*(n‑1),(u,ut,s)};其中,s:结构化剪枝;st:结构化剪枝重训练;u:非结构化剪枝;ut:非结构化剪枝重训练;(s,st,u,ut)*(n‑1)表示将(s,st,u,ut)按照所述顺序重复n‑1次,(u,ut,s,st)*(n‑1)表示将(u,ut,s,st)按照所述顺序重复n‑1次,其中n大于等于1;3)对步骤2)经过剪枝获得的模型进行训练。
Description
技术领域
本发明属于人工智能领域,特别涉及一种深度神经网络模型压缩方法。
背景技术
深度神经网络因为其高层信息抽取和多层次表达能力,已经在很多领域内表现出相对于传统方法(如支持向量机,朴素贝叶斯方法等)的绝对优势。其典型的应用场景包括自动驾驶,语音识别,机器翻译,情感分析,推荐系统,辅助医疗,农业植保,安防检测以及围棋博弈等。
深度神经网络作为高度计算密集型和内存密集型的模型,对计算和存储资源提出了很高的要求。深度神经网络的深度与其表达能力有一定的正相关性,其深度越深,则训练的效果越好,对于具体的任务而言准确度就会越高。然而,神经网络的深度越深,则网络模型的参数越多,需要的存储空间越大。并且,在做前向推导的时候需要将这些参数加载到内存里,就需要更多的内存空间。深度神经网络的网络层需要进行卷积、维度变化、内积等操作,这些操作对应到CPU上就是大量的乘法与加法指令,导致程序运行时间增加。
嵌入式设备或移动设备由于体积、空间等限制因素,其计算和存储资源非常宝贵。深度神经网络模型因为模型大、计算量大以及耗电量大而难以部署到嵌入式设备或移动设备上。针对该问题,比较主流的解决方案是对一个已经训练好的深度学习模型,在保证准确率相当的前提下,尽可能的压缩网络,使压缩后的模型具有更小的结构和更少的参数,可以降低计算和存储开销,从而可以部署在受限的硬件环境中(如嵌入式设备或移动设备等)。
针对此问题,业界中提出了许多深度神经网络模型压缩方法,如网络剪枝、网络精馏、网络分解。其中,网络剪枝是在保证尽可能小的性能损失的前提下,将复杂神经网络模型多余的结构信息或者参数信息进行删除以达到模型压缩的目的。
主流的网络剪枝方法分为两大类:结构化剪枝方法与非结构化剪枝方法。
现有技术的结构化剪枝方法如图1所示,其是基于深度神经网络模型卷积核级或卷积层级的粗粒度剪枝方法,对于细粒度权重层次不做处理。在通过结构化剪枝后,模型能够保留精简的结构,但其内部仍难免有冗余参数,无法实现对模型的极大压缩。
现有技术的非结构化剪枝方法如图2所示,其是对模型权重进行优化,是细粒度的剪枝方法,但其模型结构保持不变,仅是对模型参数量的优化。
现有技术的缺陷是没有同时实现对模型结构的精简与冗余参数的优化。
发明内容
根据本发明的一个方面,提供一种深度神经网络模型压缩方法,包括如下步骤:
步骤1,获得利用标准神经网络训练流程得到的深度神经网络模型;
步骤2,按照下述公式之一利用结构化剪枝和非结构化剪枝对所述深度神经网络模型进行剪枝:
{(s,st,u,ut)*(n-1),(s,st,u)}或者{(u,ut,s,st)*(n-1),(u,ut,s)};
其中,s:结构化剪枝;
st:结构化剪枝重训练;
u:非结构化剪枝;
ut:非结构化剪枝重训练;
(s,st,u,ut)*(n-1)表示将(s,st,u,ut)按照所述顺序重复n-1次,(u,ut,s,st)*(n-1)表示将(u,ut,s,st)按照所述顺序重复n-1次,其中n大于等于1;
步骤3,对步骤2获得的模型进行训练。
优选的,所述结构化剪枝步骤采用基于L1-norm的方法,其步骤包括:
步骤2-1a-1,计算每一层中每一个卷积核的重量,对第i层第j个卷积核,每个卷积核由ni个2D内核(例如3x3)组成,采用如下公式计算卷积核的重量:
公式说明:
sj,表示第i层第j个卷积核的重量;
ni,表示第i层的卷积核包含的内核的个数;
步骤2-1a-2,对步骤2-1a-1得到每一层的每一个卷积核的sj值进行评价,找出每个卷积核在该层中的贡献度;
步骤2-1a-3,根据贡献度的大小,裁剪掉具有最小贡献度的卷积核,同时删除与其对应的特征图,裁剪之后,特征映射对应下一层的卷积层中的卷积核也将被裁剪;
步骤2-1a-4,为第i层和第i+1层创建一个新的内核矩阵,并将该层中剩下的贡献值高的内核权重复制到新模型中,保存为裁剪后的结构。
优选的,所述结构化剪枝步骤还包括:
步骤2-1a-5,对结构化剪枝后的模型进行重训练。
优选的,所述结构化剪枝步骤采用基于BN层的神经网络通道剪枝方法,其步骤包括:
步骤2-1b-1,对于卷积神经网络的每一个卷积层,在BN层上引入一个缩放因子γ,构建剪枝优化操作,具体公式如下:
其中,
zin:BN层的输入,
zout:BN层的输出,
∈:小浮点数,避免分母为0,
γ:缩放因子,
β:位移参数;
步骤2-1b-2,定义目标函数为
其中,
L是目标函数,
x是训练的数据集,
y是目标标签,
f是神经网络,
l是损失函数,
W是网络中可训练参数,
λ是两项的平衡因子,
γ是缩放因子,
Γ是缩放因子的集合,
g(.)是在缩放因子上的惩罚项,选择g(.)=|s|,即L1正则化,s是超参数;
步骤2-1b-3,给定模型的剪枝惩罚项超参数,根据目标函数对模型进行权重参数以及缩放因子等相关参数的学习训练;
步骤2-1b-4,按照给定的要进行裁剪的比例,对BN层的参数信息进行计算,在一定比例之下的对应的卷积核将会被裁剪掉,同时裁剪对应输出的特征图;
步骤2-1b-5,微调模型,恢复原始模型精度。
优选的,所述非结构化剪枝步骤采用基于L0正则化的模型稀疏方法。
优选的,所述非结构化剪枝步骤包括:
步骤2-3-1,对模型进行冗余参数优化,其优化目标为如下公式:
公式说明:
|θ|,表示神经网络参数的维度;
sj,表示随机变量矢量s中第j个随机变量;
q,随机变量sj的概率分布;
φj,表示sj的概率分布q的参数;
Φ,由φj构成的参数矢量;
N,表示神经网络数据集中包含N对输入输出;
i,表示第i对数据;
xi,神经网络数据集的输入;
⊙,表示对应元素相乘;
yi,神经网络数据集的输出;
h(·),表示神经网络;
λ,是权重因数;
j,表示第j个神经网络参数;
Q(·),表示随机变量s的累积分布函数;
min(·),表示取两个参数的最小值;
max(·),表示取两个参数的最大值;
其中,公式等号右侧的第一项代表的是模型拟合在训练数据集上产生的损失,第二项代表的是对模型复杂程度的额外惩罚。
优选的,所述非结构化剪枝步骤还包括:
步骤2-3-2,对非结构化剪枝后的模型进行重训练。
根据本发明的另一个方面,提供一种深度神经网络模型压缩装置,包括:
模型预训练模块,用于利用标准神经网络训练流程对深度神经网络模型进行训练;
级联剪枝模块,用于按照下述公式之一利用结构化剪枝和非结构化剪枝对所述深度神经网络模型进行剪枝:
{(s,st,u,ut)*(n-1),(s,st,u)}或者{(u,ut,s,st)*(n-1),(u,ut,s)};
其中,s:结构化剪枝;
st:结构化剪枝重训练;
u:非结构化剪枝;
ut:非结构化剪枝重训练;
(s,st,u,ut)*(n-1)表示将(s,st,u,ut)按照所述顺序重复n-1次,(u,ut,s,st)*(n-1)表示将(u,ut,s,st)按照所述顺序重复n-1次,其中n大于等于1;
模型重训练模块,用于对所述级联剪枝模块获得的模型进行训练。
根据本发明的再一方面,提供一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述任意一项深度神经网络模型压缩方法。
根据本发明的其他方面,提供一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于所述处理器执行所述程序时实现上述任意一项深度神经网络模型压缩方法。
本发明引入一套新的剪枝流程,对结构化剪枝方法与非结构化剪枝方法进行一定的耦合,实现对深度学习神经网络模型的压缩,既能够保留模型的精简结构,又能够实现深度学习神经网络模型冗余参数的细粒度优化。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1是现有技术的结构化剪枝方法的示意图。
图2是现有技术的非结构化剪枝方法的示意图。
图3是现有技术主流剪枝流程图。
图4是现有技术的包含结构化剪枝的主流剪枝流程图。
图5是现有技术包含非结构化剪枝的主流剪枝流程图。
图6是本发明的包含级联器的剪枝流程图。
图7是根据本发明的一个实施例的包含一组级联器的结构化与非结构化级联模型压缩方法的流程图。
图8是根据本发明的一个实施例的包含两组级联器的结构化与非结构化级联模型压缩方法的流程图。
图9是根据本发明的一个实施例的包含两组及以上级联器的结构化与非结构化级联模型压缩方法的流程图。
图10是根据本发明的一个实施例的第(n-1)组级联器的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
如上所述,现在主流的剪枝压缩方法基本上可以分为非结构化方法与结构化方法两大类,现有技术主流剪枝的流程基本是一致的,如图3所示,分为3步:首先恢复原始的模型,之后对原始的按照预定设置的规则进行模型剪枝,将该剪枝压缩后的模型进行训练重新训练。发明人发现,在现有的网络剪枝步骤中存在以下问题:目前的技术只是孤立的采用非结构化方法或结构化方法,如图4的现有技术的包含结构化剪枝的主流剪枝流程中只采用了结构化剪枝方法,图5的现有技术包含非结构化剪枝的主流剪枝流程中只采用了非结构化剪枝方法。这两种方法各有缺点:结构化剪枝针对的更多是粗粒度上的裁剪,如网络中的过滤器(filter)级、层(layer)级等,但对于细粒度权重层次是不做处理,模型在通过结构化剪枝后能够保留模型的精简结构,但是其模型内部难免仍然会有一些冗余的参数,无法实现对模型的极大压缩;非结构化剪枝方法虽然可以能够实现对模型到权重上细粒度的优化,但是其模型的结构是保持不变,仅仅只是对模型参数量的优化。
针对上述存在的问题,发明人经过研究,提出一种将结构化剪枝与非结构化剪枝方法进行合理耦合形成级联器的剪枝方法,用以替换现有流程中的剪枝步骤,使得既能够保留模型的精简结构,又能够实现深度神经网络模型冗余参数的细粒度优化,达到对深度神经网络模型极大压缩的效果。
以下结合附图来说明本发明的结构化剪枝与非结构化剪枝耦合的剪枝方法。
概括说来,本发明的包含级联器的剪枝流程如图6所示,本发明用一个级联剪枝步骤替换图4中的结构化剪枝或图5中的非结构化剪枝步骤,从而构成一个新的模型压缩流程。这个级联剪枝步骤的构成方式可以有多种,以下结合图7先介绍根据本发明的一个实施例的包含一组级联器的结构化与非结构化级联模型压缩方法的流程。
如图7中的虚线方框所示,一级级联剪枝步骤分为三步:
步骤2-1,对原始模型进行结构化剪枝;
步骤2-2,对结构化剪枝后的模型进行重训练;
步骤2-3,进行非结构化剪枝。
最后,再对经过上述经过结构化剪枝和非结构化剪枝的模型进行训练,以尽可能让模型性能恢复到未剪枝前的状态。
根据本发明的一个实施例,在级联剪枝步骤的结构化剪枝步骤中(即步骤2-1),采用基于L1-norm的剪枝规则来对模型的卷积核进行裁剪,以使得级联剪枝步骤获得较好的压缩效果。
根据本发明的一个实施例,步骤2-1包括如下步骤:
步骤2-1a-1,计算每一层中每一个卷积核的重量,对第i层第j个卷积核,每个卷积核由ni个2D内核(例如3x3)组成,计算卷积核的重量:
公式说明:
sj,表示第i层第j个卷积核的重量;
ni,表示第i层的卷积核包含的内核的个数;
步骤2-1a-2,对步骤2-1-1得到每一层的每一个卷积核的sj值进行评价,找出每个卷积核在该层中的贡献度;
步骤2-1a-3,根据贡献度的大小,裁剪掉具有最小贡献度的卷积核,同时删除与其对应的特征图,裁剪之后,特征映射对应下一层的卷积层中的卷积核也将被裁剪;
步骤2-1a-4,通过贡献度裁剪后,模型网络的结构发生变化,为第i层和第i+1层创建一个新的内核矩阵,并将该层中剩下的贡献值高的内核权重复制到新模型中,保存为裁剪后的结构;
步骤2-1a-5,对结构化剪枝后的模型进行重训练。精简后的模型丢失了一部分的结构信息,处于欠拟合的状态,无法实现模型的原始性能。为了使模型能够尽可能的恢复模型的原始性能,需要对结构化剪枝后的模型进行重新训练,对保留下来的结构进行调整,使其得到模型的原始推理能力。
根据本发明的一个实施例,在级联剪枝步骤的结构化剪枝步骤中(即步骤2-1),采用基于BN层的神经网络通道剪枝方法对模型的卷积核进行裁剪,以使得级联剪枝步骤获得较好的压缩效果。
BN(Batch normalization)已经被大多数现代CNN网络采用,作为一种标准的方法来使得网络快速收敛并获得更好的性能。BN是一个非常有效的正则化方法,可以让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率也可以得到大幅提升。BN在用于神经网络某层时,会对每一个mini-batch数据的内部进行标准化处理,使输出规范化到N(0,1)的正态分布,减少了内部神经元分布的改变(Internal Covariate Shift),使得模型每一层的信息分布规范到相近的分布中。
基于BN层的神经网络通道剪枝方法在模型的每一个通道的BN层上引入一个缩放因子γ,将L1正则化施加到BN层的缩放因子上,进行联合稀疏化训练网络权重与缩放因子,L1正则化推动BN层的缩放因子趋向于零。因为每一个缩放因子都和一个特定的CNN卷积通道(或者全连接层的一个神经元)相关联,使得不重要的卷积层可以被鉴别出来,进而将小缩放因子的通道直接剪除,最后微调剪枝后的网络。
根据本发明的一个实施例,基于BN层的神经网络通道剪枝方法包括如下步骤:
步骤2-1b-1,对于卷积神经网络的每一个卷积层,在BN层上引入一个缩放因子γ,构建剪枝优化操作,具体公式如下:
zin:BN层的输入,
zout:BN层的输出,
∈:小浮点数,避免分母为0,
γ:缩放因子,
β:位移参数;
步骤2-1b-2,定义目标函数为
其中,
L是目标函数,
x是训练的数据集,
y是目标标签,
f是神经网络,
l是损失函数,
W是网络中可训练参数,
λ是两项的平衡因子,
γ是缩放因子,
Γ是缩放因子的集合,
g(.)是在缩放因子上的惩罚项,选择g(.)=|s|,即L1正则化,s是超参数;
目标函数第一项是CNN网络的训练损失函数,第二项惩罚项的加入使得模型权重在进行训练的时候,更加容易变得稀疏,相比于L2正则化,L1的稀疏特性更好,同时其在求导的过程中也比较简单。
步骤2-1b-3,给定模型的剪枝惩罚项超参数,根据目标函数对模型进行权重参数以及缩放因子等相关参数的学习训练;
通过上述的步骤进行训练后,BN层上的参数信息变得稀疏化,为接下来的卷积核剪枝提供评判基础。
步骤2-1b-4,按照给定的要进行裁剪的比例,对BN层的参数信息进行计算,在一定比例之下的对应的卷积核将会被裁剪掉,同时裁剪对应输出的特征图;
步骤2-1b-5,微调模型,恢复原始模型精度。
根据本发明的一个实施例,在级联器的非结构化剪枝步骤中(即步骤2-3)采用基于L0正则化的模型稀疏方法,能引导参数变得更加稀疏,有利于模型冗余参数优化,从而获得更佳的压缩效果。
根据本发明的一个实施例,所述步骤2-3包括:
步骤2-3-1,对模型进行冗余参数优化,其优化目标为公式(2)。
公式说明:
|θ|,表示神经网络参数的维度;
sj,表示随机变量矢量s中第j个随机变量;
q,随机变量sj的概率分布;
φj,表示sj的概率分布q的参数。
Φ,由φj构成的参数矢量;
N,表示神经网络数据集中包含N对输入输出;
i,表示第i对数据;
xi,神经网络数据集的输入;
⊙,表示对应元素相乘;
yi,神经网络数据集的输出;
h(·),表示神经网络;
λ,是权重因数;
j,表示第j个神经网络参数;
Q(·),表示随机变量s的累积分布函数;
min(·),表示取两个参数的最小值;
max(·),表示取两个参数的最大值;
其中,公式(2)等号右侧的第一项代表的是模型拟合在训练数据集上产生的损失,第二项代表的是对模型复杂程度的额外惩罚。
步骤2-3-2,对非结构化剪枝后的模型进行重训练。非结构化剪枝精简了模型的参数信息,模型丢失了一定的推理信息,导致模型推理能力下降,无法实现模型的原始性能。为了使模型尽可能的恢复模型的原始性能,需要对非结构化剪枝后的模型进行重新训练,使得保留下来的参数进行一定的调整,弥补丢失的信息,调整后的模型将能够得到与模型原始的推理能力相当的水平。
根据本发明的一个实施例,提供了一种包含两组级联器的结构化与非结构化级联模型压缩方法,其流程如图8所示。此处为方便叙述,采用以下字母缩写标记不同的操作步骤,
s:结构化剪枝;
st:结构化剪枝重训练;
u:非结构化剪枝;
ut:非结构化剪枝重训练。
采用以上标记,当为两组级联时,结构顺序为(见附图8):
(s,st,u,ut),(s,st,u)
此处需要注意,第二级的非结构化剪枝后没有重训练步骤。
根据本发明的一个实施例,提供一种包含两组及以上级联器的结构化与非结构化级联模型压缩方法,其流程如图9所示,其中,
n>=2,满足以下关系:
(s,st,u,ut)*(n-1),(s,st,u)
其中,(s,st,u,ut)*(n-1)表示将(s,st,u,ut)按照所述顺序重复n-1次。
需要注意,最后一组级联的非结构化剪枝后没有重训练步骤。
根据本发明的一个实施例,在级联剪枝步骤中,交换结构化剪枝与非结构化剪枝的顺序,也可达到同样的压缩效果;其中:
当为一组级联时,结构顺序如下:
u,ut,s
当为两组级联时,结构顺序如下:
(u,ut,s,st),(u,ut,s)
当n(n>=2)组级联时,满足以下关系:
(u,ut,s,st)*(n-1),(u,ut,s),
其中,(u,ut,s,st)*(n-1)表示将(u,ut,s,st)按照所述顺序重复n-1次。
在级联器剪枝步骤中,需要注意,无论是结构化还是非结构化剪枝,除了最后一组级联之外,其他的级联在每一次的剪枝压缩后,都需要通过重训练,使模型的推理能力能够达到与剪枝前相当的精度水平。
发明人研究认为,目前的剪枝方法众多,大体上分为结构化与非结构化剪枝方法,不同的方法具有不同的参数引导稀疏方式、卷积核的评判标准以及通道鉴别方式。这些不同的评价指标是基于模型一定规则设计而成,期间可能需要引入不同的参数信息进行处理。由此可知,不同的方法拥有不同的评价手段,这些评价方式大体上是无法通用的。因此,一个级联剪枝器中,只能包含结构化与非结构化剪枝两种不同类别的方法,在级联器剪枝操作完成之前,均不可以更改剪枝方法。
以上通过多个实施例对级联器进行详细的描述,发明人认为,通过级联器优化后的模型,无论是结构还是参数上,都达到了模型相对精简的程度,但由于剪枝压缩后,结构与参数内部信息存在一定的损坏。因此,在级联剪枝后,通过最终模型重训练,将完成对模型的有效参数部分的微调,使得模型能够尽可能的回复原来模型推理性能,保证模型在精简的结构下具有精简的参数而不损失模型性能,从而实现对模型极大压缩。
相对于现有技术,本发明实施例中所提供的结构化与非结构化级联模型压缩方法,同时实现了对模型的冗余结构与冗余参数量压缩。既能够保留模型的精简结构,又能够实现深度学习神经网络模型冗余参数的细粒度优化。
需要说明的是,上述实施例中介绍的各个步骤并非都是必须的,本领域技术人员可以根据实际需要进行适当的取舍、替换、修改等。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种深度神经网络模型压缩方法,包括如下步骤:
步骤1,获得利用标准神经网络训练流程得到的深度神经网络模型;
步骤2,按照下述公式之一利用结构化剪枝和非结构化剪枝对所述深度神经网络模型进行剪枝:
{(s,st,u,ut)*(n-1),(s,st,u)}或者{(u,ut,s,st)*(n-1),(u,ut,s)};
其中,s:结构化剪枝;
st:结构化剪枝重训练;
u:非结构化剪枝;
ut:非结构化剪枝重训练;
(s,st,u,ut)*(n-1)表示将(s,st,u,ut)按照所述顺序重复n-1次,(u,ut,s,st)*(n-1)表示将(u,ut,s,st)按照所述顺序重复n-1次,其中n大于等于1;
步骤3,对步骤2获得的模型进行训练。
2.如权利要求1所述的深度神经网络模型压缩方法,其中,所述结构化剪枝步骤采用基于L1-norm的方法,其步骤包括:
步骤2-1a-1,计算每一层中每一个卷积核的重量,对第i层第j个卷积核,每个卷积核由ni个2D内核(例如3x3)组成,采用如下公式计算卷积核的重量:
公式说明:
sj,表示第i层第j个卷积核的重量;
ni,表示第i层的卷积核包含的内核的个数;
步骤2-1a-2,对步骤2-1a-1得到每一层的每一个卷积核的sj值进行评价,找出每个卷积核在该层中的贡献度;
步骤2-1a-3,根据贡献度的大小,裁剪掉具有最小贡献度的卷积核,同时删除与其对应的特征图,裁剪之后,特征映射对应下一层的卷积层中的卷积核也将被裁剪;
步骤2-1a-4,为第i层和第i+1层创建一个新的内核矩阵,并将该层中剩下的贡献值高的内核权重复制到新模型中,保存为裁剪后的结构。
3.如权利要求2所述的深度神经网络模型压缩方法,所述结构化剪枝步骤还包括:
步骤2-1a-5,对结构化剪枝后的模型进行重训练。
4.如权利要求1所述的深度神经网络模型压缩方法,所述结构化剪枝步骤采用基于BN层的神经网络通道剪枝方法,其步骤包括:
步骤2-1b-1,对于卷积神经网络的每一个卷积层,在BN层上引入一个缩放因子γ,构建剪枝优化操作,具体公式如下:
其中,
zin:BN层的输入,
zout:BN层的输出,
∈:小浮点数,避免分母为0,
γ:缩放因子,
β:位移参数;
步骤2-1b-2,定义目标函数为
其中,
L是目标函数,
x是训练的数据集,
y是目标标签,
f是神经网络,
l是损失函数,
W是网络中可训练参数,
λ是两项的平衡因子,
γ是缩放因子,
Γ是缩放因子的集合,
g(.)是在缩放因子上的惩罚项,选择g(.)=|s|,即L1正则化,s是超参数;
步骤2-1b-3,给定模型的剪枝惩罚项超参数,根据目标函数对模型进行权重参数以及缩放因子等相关参数的学习训练;
步骤2-1b-4,按照给定的要进行裁剪的比例,对BN层的参数信息进行计算,在一定比例之下的对应的卷积核将会被裁剪掉,同时裁剪对应输出的特征图;
步骤2-1b-5,微调模型,恢复原始模型精度。
5.如权利要求1-4之一所述的深度神经网络模型压缩方法,所述非结构化剪枝步骤采用基于L0正则化的模型稀疏方法。
6.如权利要求5所述的神经网络模型级联剪枝方法,其所述非结构化剪枝步骤包括:
步骤2-3-1,对模型进行冗余参数优化,其优化目标为如下公式:
公式说明:
|θ|,表示神经网络参数的维度;
sj,表示随机变量矢量s中第j个随机变量;
q,随机变量sj的概率分布;
φj,表示sj的概率分布q的参数;
Φ,由φj构成的参数矢量;
N,表示神经网络数据集中包含N对输入输出;
i,表示第i对数据;
xi,神经网络数据集的输入;
⊙,表示对应元素相乘;
yi,神经网络数据集的输出;
h(·),表示神经网络;
λ,是权重因数;
j,表示第j个神经网络参数;
Q(·),表示随机变量s的累积分布函数;
min(·),表示取两个参数的最小值;
max(·),表示取两个参数的最大值;
其中,公式等号右侧的第一项代表的是模型拟合在训练数据集上产生的损失,第二项代表的是对模型复杂程度的额外惩罚。
7.如权利要求6所述的神经网络模型级联剪枝方法,所述非结构化剪枝步骤还包括:
步骤2-3-2,对非结构化剪枝后的模型进行重训练。
8.一种深度神经网络模型压缩装置,包括:
模型预训练模块,用于利用标准神经网络训练流程对深度神经网络模型进行训练;
级联剪枝模块,用于按照下述公式之一利用结构化剪枝和非结构化剪枝对所述深度神经网络模型进行剪枝:
{(s,st,u,ut)*(n-1),(s,st,u)}或者{(u,ut,s,st)*(n-1),(u,ut,s)};
其中,s:结构化剪枝;
st:结构化剪枝重训练;
u:非结构化剪枝;
ut:非结构化剪枝重训练;
(s,st,u,ut)*(n-1)表示将(s,st,u,ut)按照所述顺序重复n-1次,(u,ut,s,st)*(n-1)表示将(u,ut,s,st)按照所述顺序重复n-1次,其中n大于等于1;
模型重训练模块,用于对所述级联剪枝模块获得的模型进行训练。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1-7中任意一项所述的深度神经网络模型压缩方法。
10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于所述处理器执行所述程序时实现根据权利要求1-7任意一项所述的深度神经网络模型压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174807.2A CN111461322B (zh) | 2020-03-13 | 2020-03-13 | 一种深度神经网络模型压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010174807.2A CN111461322B (zh) | 2020-03-13 | 2020-03-13 | 一种深度神经网络模型压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461322A true CN111461322A (zh) | 2020-07-28 |
CN111461322B CN111461322B (zh) | 2024-03-08 |
Family
ID=71682774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010174807.2A Active CN111461322B (zh) | 2020-03-13 | 2020-03-13 | 一种深度神经网络模型压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461322B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932690A (zh) * | 2020-09-17 | 2020-11-13 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN112132219A (zh) * | 2020-09-24 | 2020-12-25 | 天津锋物科技有限公司 | 一种基于移动端的深度学习检测模型的通用部署方案 |
CN112149805A (zh) * | 2020-09-24 | 2020-12-29 | 济南大学 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112529165A (zh) * | 2020-12-22 | 2021-03-19 | 上海有个机器人有限公司 | 深度神经网络剪枝方法、装置、终端及存储介质 |
CN112836819A (zh) * | 2021-01-26 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
CN112884149A (zh) * | 2021-03-19 | 2021-06-01 | 华南理工大学 | 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统 |
CN113344182A (zh) * | 2021-06-01 | 2021-09-03 | 电子科技大学 | 一种基于深度学习的网络模型压缩方法 |
CN113516240A (zh) * | 2021-06-23 | 2021-10-19 | 之江实验室 | 一种神经网络结构化渐进剪枝方法及系统 |
CN114330644A (zh) * | 2021-12-06 | 2022-04-12 | 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) | 一种基于结构搜索和通道剪枝的神经网络模型压缩方法 |
CN114565078A (zh) * | 2022-02-22 | 2022-05-31 | 平安科技(深圳)有限公司 | 模型剪枝方法、装置、计算设备及存储介质 |
CN114611690A (zh) * | 2022-03-09 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015170963A1 (en) * | 2014-05-05 | 2015-11-12 | Mimos Berhad | System and method for automatically generating a knowledge base |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN110210620A (zh) * | 2019-06-04 | 2019-09-06 | 北京邮电大学 | 一种用于深度神经网络的通道剪枝方法 |
CN110210618A (zh) * | 2019-05-22 | 2019-09-06 | 东南大学 | 动态修剪深度神经网络权重和权重共享的压缩方法 |
CN110309919A (zh) * | 2019-07-09 | 2019-10-08 | 西北工业大学 | 基于结构化贝叶斯后验概率估计的神经网络压缩方法 |
CN110807514A (zh) * | 2019-10-25 | 2020-02-18 | 中国科学院计算技术研究所 | 一种基于lo正则的神经网络剪枝方法 |
-
2020
- 2020-03-13 CN CN202010174807.2A patent/CN111461322B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015170963A1 (en) * | 2014-05-05 | 2015-11-12 | Mimos Berhad | System and method for automatically generating a knowledge base |
CN109886397A (zh) * | 2019-03-21 | 2019-06-14 | 西安交通大学 | 一种针对卷积层的神经网络结构化剪枝压缩优化方法 |
CN110210618A (zh) * | 2019-05-22 | 2019-09-06 | 东南大学 | 动态修剪深度神经网络权重和权重共享的压缩方法 |
CN110210620A (zh) * | 2019-06-04 | 2019-09-06 | 北京邮电大学 | 一种用于深度神经网络的通道剪枝方法 |
CN110309919A (zh) * | 2019-07-09 | 2019-10-08 | 西北工业大学 | 基于结构化贝叶斯后验概率估计的神经网络压缩方法 |
CN110807514A (zh) * | 2019-10-25 | 2020-02-18 | 中国科学院计算技术研究所 | 一种基于lo正则的神经网络剪枝方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932690B (zh) * | 2020-09-17 | 2022-02-22 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN111932690A (zh) * | 2020-09-17 | 2020-11-13 | 北京主线科技有限公司 | 基于3d点云神经网络模型的剪枝方法及装置 |
CN112132219A (zh) * | 2020-09-24 | 2020-12-25 | 天津锋物科技有限公司 | 一种基于移动端的深度学习检测模型的通用部署方案 |
CN112149805A (zh) * | 2020-09-24 | 2020-12-29 | 济南大学 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112149805B (zh) * | 2020-09-24 | 2023-08-22 | 法正互联(北京)科技有限公司 | 基于框架搜索的深度神经网络的加速与压缩方法及系统 |
CN112529165A (zh) * | 2020-12-22 | 2021-03-19 | 上海有个机器人有限公司 | 深度神经网络剪枝方法、装置、终端及存储介质 |
CN112529165B (zh) * | 2020-12-22 | 2024-02-02 | 上海有个机器人有限公司 | 深度神经网络剪枝方法、装置、终端及存储介质 |
CN112836819A (zh) * | 2021-01-26 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
CN112836819B (zh) * | 2021-01-26 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 一种神经网络模型生成方法及装置 |
CN112884149A (zh) * | 2021-03-19 | 2021-06-01 | 华南理工大学 | 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统 |
CN112884149B (zh) * | 2021-03-19 | 2024-03-22 | 华南理工大学 | 一种基于随机敏感度st-sm的深度神经网络剪枝方法及系统 |
CN113344182A (zh) * | 2021-06-01 | 2021-09-03 | 电子科技大学 | 一种基于深度学习的网络模型压缩方法 |
CN113516240A (zh) * | 2021-06-23 | 2021-10-19 | 之江实验室 | 一种神经网络结构化渐进剪枝方法及系统 |
CN114330644A (zh) * | 2021-12-06 | 2022-04-12 | 华中光电技术研究所(中国船舶重工集团公司第七一七研究所) | 一种基于结构搜索和通道剪枝的神经网络模型压缩方法 |
CN114565078A (zh) * | 2022-02-22 | 2022-05-31 | 平安科技(深圳)有限公司 | 模型剪枝方法、装置、计算设备及存储介质 |
WO2023159751A1 (zh) * | 2022-02-22 | 2023-08-31 | 平安科技(深圳)有限公司 | 模型剪枝方法、装置、计算设备及存储介质 |
CN114611690A (zh) * | 2022-03-09 | 2022-06-10 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111461322B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461322A (zh) | 一种深度神经网络模型压缩方法 | |
Li et al. | Performance guaranteed network acceleration via high-order residual quantization | |
Yang et al. | Feed-forward neural network training using sparse representation | |
Kim et al. | Neuron merging: Compensating for pruned neurons | |
Wong et al. | A truly online learning algorithm using hybrid fuzzy ARTMAP and online extreme learning machine for pattern classification | |
Agapitos et al. | A survey of statistical machine learning elements in genetic programming | |
Glauner | Comparison of training methods for deep neural networks | |
Ma et al. | Good students play big lottery better | |
Pietron et al. | Retrain or not retrain?-efficient pruning methods of deep cnn networks | |
Liu et al. | EACP: An effective automatic channel pruning for neural networks | |
Shirahata et al. | Memory reduction method for deep neural network training | |
Qian | Exploration of machine algorithms based on deep learning model and feature extraction | |
Shokouhifar et al. | A hybrid approach for effective feature selection using neural networks and artificial bee colony optimization | |
Li et al. | Filter pruning via probabilistic model-based optimization for accelerating deep convolutional neural networks | |
Shin et al. | A novel method for fashion clothing image classification based on deep learning | |
Alnemari et al. | Efficient deep neural networks for edge computing | |
Zhou et al. | Multi-objective evolutionary generative adversarial network compression for image translation | |
Du et al. | CGaP: Continuous growth and pruning for efficient deep learning | |
Msuya et al. | Deep Learning Model Compression Techniques: Advances, Opportunities, and Perspective | |
Guo et al. | Dynamic neural network structure: A review for its theories and applications | |
Xie et al. | Pruning filters base on extending filter group lasso | |
Ziv et al. | Stochastic weight pruning and the role of regularization in shaping network structure | |
Xia et al. | Efficient synthesis of compact deep neural networks | |
Tang et al. | Training Compact DNNs with ℓ1/2 Regularization | |
Zhao et al. | Iterative activation-based structured pruning |
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 |