CN109784474A - 一种深度学习模型压缩方法、装置、存储介质及终端设备 - Google Patents
一种深度学习模型压缩方法、装置、存储介质及终端设备 Download PDFInfo
- Publication number
- CN109784474A CN109784474A CN201811581950.2A CN201811581950A CN109784474A CN 109784474 A CN109784474 A CN 109784474A CN 201811581950 A CN201811581950 A CN 201811581950A CN 109784474 A CN109784474 A CN 109784474A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- model
- learning model
- value
- weight
- 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
- 238000013136 deep learning model Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000006835 compression Effects 0.000 title claims abstract description 52
- 238000007906 compression Methods 0.000 title claims abstract description 52
- 238000003860 storage Methods 0.000 title claims abstract description 26
- 230000006870 function Effects 0.000 claims abstract description 75
- 230000000644 propagated effect Effects 0.000 claims abstract description 23
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 230000004913 activation Effects 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012217 deletion Methods 0.000 claims description 13
- 230000037430 deletion Effects 0.000 claims description 13
- 238000004422 calculation algorithm Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 abstract description 11
- 238000012549 training Methods 0.000 abstract description 11
- 230000003247 decreasing effect Effects 0.000 abstract description 5
- 238000009826 distribution Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000005284 excitation Effects 0.000 description 4
- 238000012417 linear regression Methods 0.000 description 4
- 238000012512 characterization method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000007170 pathology Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Landscapes
- Machine Translation (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种深度学习模型压缩方法、装置、存储介质及终端设备,通过前向传播算法计算深度学习模型每层的输出,最后得到深度学习模型的输出值,通过计算每个结点的联结权重均值,删除均值为零的节点,实现模型中冗余的参数稀疏化,从而去除掉这部分多余的参数。并且通过损失函数保证模型精度,在保证模型精度不发生明显下降的前提下,实现大幅度减小模型参数量、大幅度降低训练过程中的运算量,从而使模型能够在资源受限的边缘计算设备上运行。本发明所述的一种深度学习模型压缩方法,解决了目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
Description
技术领域
本发明涉及云计算环境中的边缘计算领域,尤其涉及一种深度学习模型压缩方法、装置、存储介质及终端设备。
背景技术
深度学习解决了许多具有挑战的问题,其成果已经广泛地应用于计算机视觉、语音识别、自然语言处理等领域。基于深度学习图像识别、视频处理、语音识别等技术在边缘计算系统的端设备上有巨大的应用前景和需求。然而训练和执行深度学习模型通常需要大量数据存储空间以及超强的计算能力。现有的边缘计算设备,计算能力、存储能力、网络带宽和电力等资源不足以运行深度学习模型。深度学习模型参数庞大、需要大量的计算能力,在边缘计算系统上实现需要相应配套的软件实现和硬件加速技术。为了实现在边缘设备上运行深度学习模型,学术界和产业界在硬件和算法框架方面都开展了许多工作。然而,现有的这些框架和压缩算法针对手机等存储和计算能力较强的终端设备,尚不能在资源十分受限的设备上部署。对此实际生产中需要一种可以对深度学习模型进行压缩的方法,针对资源受限设备网络通信能力弱、计算和存储资源受限等特性,对现有的主流深度学习模型进行压缩,实现在可穿戴设备等资源十分受限设备上运行深度学习模型。
发明内容
本发明提供了一种深度学习模型压缩方法、装置、存储介质及终端设备,旨在解决目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
为实现上述目的,本发明提供了一实施例为一种深度学习模型压缩方法,包括:
模型初始化步骤:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播步骤:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除步骤:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算步骤:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新步骤:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
与现有技术相比,本发明公开的一种深度学习模型压缩方法,通过前向传播算法计算深度学习模型每层的输出,最后得到深度学习模型的输出值,所述模型的输出值为输出层的激励值,所述激活值为每层处理值经过激活函数处理之后的输出,所述处理值为每层输入值经过联结权重处理后的输出,通过计算每个结点的联结权重均值,删除均值为零的节点,实现模型中冗余的参数稀疏化(趋近于0),从而去除掉这部分多余的参数。并且通过损失函数保证模型精度,在保证模型精度不发生明显下降的前提下,实现大幅度减小模型参数量、大幅度降低训练过程中的运算量,从而使模型能够在资源受限的边缘计算设备上运行。对于未能满足损失函数阈值要求的模型,本发明通过权重更新对模型进行继续训练,直至得到的模型满足损失函数阈值要求,以保证得到的深度学习模型在经过压缩后依旧保障模型精度。本发明所述的一种深度学习模型压缩方法针对资源受限设备网络通信能力弱、计算和存储资源受限等特性,对现有的主流深度学习模型进行压缩,实现在可穿戴设备等资源十分受限设备上运行深度学习模型,解决了目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
进一步的,所述损失函数为相对熵与交叉熵之和。
根据信息论的原理,初始的损失函数为所述I(hi;hi-1)是第i层hi与上次hi-1的互信息,I(hi;y)是第i层hi与目标输出之间的互信息,γi是用来平衡精度与压缩率的系数,L为网络的层数。但是,由于直接计算I(hi;hi-1)和I(hi;y)比较困难,难以计算,故而,本发明一个优选的实施例中,采用交叉熵表示I(hi;hi-1),采用相对熵表示I(hi;y),交叉熵项用来表征模型与真实数据分布的接近程度(可以理解为模型算出来的值与实际值的差距)。把相对熵项加进来的原因是为了在保证模型精度的前提下尽可能的减少模型的参数冗余度,从而实现模型压缩的目的。故而,本实施例中所述损失函数为相对熵与交叉熵之和。
进一步的,所述相对熵由计算式得到。
进一步的,所述交叉熵由计算式-LE{x,y}~D,h~p(h|x)[logq(y|hL)]得到。
进一步的,所述以学习率和偏导数更新模型中每个结点的联结权重中的联结权重更新规则为,新联结权重等于原联结权重加上学习率和偏导数的积。
进一步的,所述激活函数选定为sigmoid函数,其函数形式为
进一步的,所述误差函数选定为所述yk为深度学习模型中输出层的第k个输出的输出值,所述tk为深度学习模型中输出层的第k个输出的实际值。
为实现上述目的,本发明提供了另一实施例为一种深度学习模型压缩装置,包括:
模型初始化单元:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播单元:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除单元:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算单元:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新单元:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
为实现上述目的,本发明提供了另一实施例为一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一实施例所述的深度学习模型压缩方法。
为实现上述目的,本发明提供了另一实施例为一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述任一实施例所述的深度学习模型压缩方法。
与现有技术相比,本发明公开的一种深度学习模型压缩方法、装置、存储介质及终端设备,通过前向传播算法计算深度学习模型每层的输出,最后得到深度学习模型的输出值,所述模型的输出值为输出层的激励值,所述激活值为每层处理值经过激活函数处理之后的输出,所述处理值为每层输入值经过联结权重处理后的输出,通过计算每个结点的联结权重均值,删除均值为零的节点,实现模型中冗余的参数稀疏化(趋近于0),从而去除掉这部分多余的参数。并且通过损失函数保证模型精度,在保证模型精度不发生明显下降的前提下,实现大幅度减小模型参数量、大幅度降低训练过程中的运算量,从而使模型能够在资源受限的边缘计算设备上运行。对于未能满足损失函数阈值要求的模型,本发明通过权重更新对模型进行继续训练,直至得到的模型满足损失函数阈值要求,以保证得到的深度学习模型在经过压缩后依旧保障模型精度。本发明所述的一种深度学习模型压缩方法针对资源受限设备网络通信能力弱、计算和存储资源受限等特性,对现有的主流深度学习模型进行压缩,实现在可穿戴设备等资源十分受限设备上运行深度学习模型,解决了目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
附图说明
图1是本发明一种深度学习模型压缩方法的一个实施例流程图;
图2是本发明一种深度学习模型压缩装置的一个实施例结构框图;
图3是本发明一种深度学习模型压缩方法的具体示例中的网络示意图;
图4是本发明一种终端设备的一个实施例的结构框图。
具体实施方式
如图1所示,本发明所述一种深度学习模型压缩方法,包括:
模型初始化步骤:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播步骤:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除步骤:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算步骤:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新步骤:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
与现有技术相比,本发明公开的一种深度学习模型压缩方法,通过前向传播算法计算深度学习模型每层的输出,最后得到深度学习模型的输出值,所述模型的输出值为输出层的激励值,所述激活值为每层处理值经过激活函数处理之后的输出,所述处理值为每层输入值经过联结权重处理后的输出,通过计算每个结点的联结权重均值,删除均值为零的节点,实现模型中冗余的参数稀疏化(趋近于0),从而去除掉这部分多余的参数。并且通过损失函数保证模型精度,在保证模型精度不发生明显下降的前提下,实现大幅度减小模型参数量、大幅度降低训练过程中的运算量,从而使模型能够在资源受限的边缘计算设备上运行。对于未能满足损失函数阈值要求的模型,本发明通过权重更新对模型进行继续训练,直至得到的模型满足损失函数阈值要求,以保证得到的深度学习模型在经过压缩后依旧保障模型精度。本发明所述的一种深度学习模型压缩方法针对资源受限设备网络通信能力弱、计算和存储资源受限等特性,对现有的主流深度学习模型进行压缩,实现在可穿戴设备等资源十分受限设备上运行深度学习模型,解决了目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
进一步的,所述损失函数为相对熵与交叉熵之和。根据信息论的原理,初始的损失函数为所述I(hi;hi-1)是第i层hi与上次hi-1的互信息,I(hi;y)是第i层hi与目标输出之间的互信息,γi是用来平衡精度与压缩率的系数,L为网络的层数。但是,由于直接计算I(hi;hi-1)和I(hi;y)比较困难,难以计算,故而,本发明一个优选的实施例中,采用交叉熵表示I(hi;hi-1),采用相对熵表示I(hi;y),交叉熵项用来表征模型与真实数据分布的接近程度(可以理解为模型算出来的值与实际值的差距)。把相对熵项加进来的原因是为了在保证模型精度的前提下尽可能的减少模型的参数冗余度,从而实现模型压缩的目的。故而,本实施例中所述损失函数为相对熵与交叉熵之和。
进一步的,所述相对熵由计算式得到。
进一步的,所述交叉熵由计算式-LE{x,y}~D,h~p(h|x)[logq(y|hL)]得到。
在本发明的一个优选的实施例中,采用变分推断对I(hi;hi-1)进行近似,采用弹性回归来构造变分推断的后验分布。
弹性回归就是岭回归(L2正则化)和Lasso回归(L1正则化)的组合。
正则化是一种常见的防止过拟合的方法,一般原理是在代价函数后面加上一个对参数的约束项,这个约束项被叫做正则化项(regularizer)。在线性回归模型中,通常有两种不同的正则化项:
加上所有参数(不包括θ0)的绝对值之和,即l1范数,此时叫做Lasso回归;加上所有参数(不包括θ0)的平方和,即l2范数,此时叫做岭回归.
Lasso回归:Lasso回归是估计稀疏系数的线性模型。它在一些情况下是有用的,因为它倾向于使用具有较少参数值的情况,有效地减少给定解决方案所依赖变量的数量。因此,Lasso及其变体是压缩感知领域的基础。在一定条件下,它可以恢复一组非零权重的精确集。
在数学公式表达上,它由一个带有先验的正则项的线性模型组成。其最小化的目标函数是:
lasso估计解决了加上罚项α||w||1的最小二乘法的最小化,其中,α是一个常数,||w||1是参数向量的范数。Lasso类的实现使用了coordinate descent(坐标下降算法)来拟合系数。
岭回归:岭回归(英文名:ridge regression,Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。
对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”。有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态。对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征。
回归分析中常用的最小二乘法是一种无偏估计。对于一个适定问题,X通常是列满秩的Xθ=y。采用最小二乘法,定义损失函数为残差的平方,最小化损失函数||Xθ-y||2。上述优化问题可以采用梯度下降法进行求解,也可以采用如下公式进行直接求解θ=(XTX)- 1XTy。
当X不是列满秩时,或者某些列之间的线性相关性比较大时,XTX的行列式接近于0,即XTX接近于奇异,上述问题变为一个不适定问题,此时,计算(XTX)-1时误差会很大,传统的最小二乘法缺乏稳定性与可靠性。岭回归是对最小二乘回归的一种补充,它损失了无偏性,来换取高的数值稳定性,从而得到较高的计算精度。
弹性回归是一种使用L1和L2先验作为正则化矩阵的线性回归模型.这种组合用于只有很少的权重非零的稀疏模型,我们可以使用l1_ratio参数来调节L1和L2的凸组合(一类特殊的线性组合)。当多个特征和另一个特征相关的时候弹性网络非常有用。Lasso倾向于随机选择其中一个,而弹性网络更倾向于选择两个。
在实践中,Lasso和Ridge之间权衡的一个优势是它允许在循环过程(Underrotate)中继承Ridge的稳定性。
采用弹性回归后得到最终损失函数如下:
变分推断的后验分布为N为高斯分布,Laplace为拉普拉斯分布。μi是均值向量,σi是标准差向量,μi,j是μi的第j个元素,表示第i层第j个神经元的权重向量的均值,σi,j是σi的第j个元素,表示第i层第j个神经元的权重向量的标准差。ri是第i层的神经元结点数。D为数据的真实分布,h定义为p(h|x)是每一层的先验分布,q(y|hL)是用来逼近最后一层先验分布p(y|hL)的后验分布。在模型训练过程中,对满足μi,j=0的神经元结点进行删除。
进一步的,所述以学习率和偏导数更新模型中每个结点的联结权重中的联结权重更新规则为,新联结权重等于原联结权重加上学习率和偏导数的积。
本发明一个优选的实施例中,利用用初始化的联结权重计算的输出层值和实际值肯定会有很大的偏差,我们需要对连接权重进行优化,此时就需要使用反向传播算法。后向传播算法是通过梯度下降的方法对联结权重进行优化,所以需要计算误差函数对联结权重的偏导数δ。先根据输出层的误差,计算出输出层对应的δ,然后再依次反向往前推出隐藏层的δ。其实第k层的某个δk,相当于从第k+1层的δk+1中分配了一部分误差过来,而这个分配的权重,就是前向传播算法中使用的连接权重W,所以这类似于一个反复的过程。故而,权重更新过程中,参数W的更新规则是按照下面的公式进行的:Wk=Wk+αδWk。其中,Wk是第k层的参数矩阵,α是学习率,决定着目标损失函数能否收敛到局部最小值以及何时收敛到最小值,δWk是第k层的偏导数。
进一步的,所述激活函数选定为sigmoid函数,其函数形式为本发明一个优选的实施例中,选择激活函数为sigmoid函数,由于sigmoid函数是激活函数的常用函数,本发明采用该函数作为激活函数,保障了本方法的实用性。
进一步的,所述误差函数选定为所述yk为深度学习模型中输出层的第k个输出的输出值,所述tk为深度学习模型中输出层的第k个输出的实际值。
本发明一个优选的实施例中,现在假设经过前向传播算法计算的某个输出值为yk,表示输出层的第k个输出,而其实际的值为tk(训练样本的标签值是已知的)。将误差函数定义如下:通过后向传播算法是通过梯度下降的方法对联结权重进行优化,所以需要计算误差函数对联结权重的偏导数δ。先根据输出层的误差,计算出输出层对应的δ,然后再依次反向往前推出隐藏层的δ,帮助实现权重更新。
如图2所示,本发明提供了另一实施例为一种深度学习模型压缩装置,包括:
模型初始化单元:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播单元:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除单元:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算单元:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新单元:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
进一步的,所述损失函数为相对熵与交叉熵之和。
进一步的,所述相对熵由计算式得到。
进一步的,所述交叉熵由计算式-LE{x,y}~D,h~p(h|x)[logq(y|hL)]得到。
进一步的,所述以学习率和偏导数更新模型中每个结点的联结权重中的联结权重更新规则为,新联结权重等于原联结权重加上学习率和偏导数的积。
进一步的,所述激活函数选定为sigmoid函数,其函数形式为
进一步的,所述误差函数选定为所述yk为深度学习模型中输出层的第k个输出的输出值,所述tk为深度学习模型中输出层的第k个输出的实际值。
本发明实施例供的一种深度学习模型压缩装置,能够实现上述任一实施例所述的深度学习模型压缩方法的所有流程,装置中的各个模块、单元的作用以及实现的技术效果分别与上述实施例所述的深度学习模型压缩方法的作用以及实现的技术效果对应相同,这里不再赘述。
如图3所示,本发明一个具体的示例为,图中{x1,x2,x3}表示输入,wi,j(k)表示联结权重,其中i表示每次输入中的第i个元素,j表示经过联结权重处理之后的输出中的第j个元素,k指明是第k层到第(k+1)层之间的联结权重。ai,j表示经过联结权重处理后的输出,其中i表示第i层,j表示第j个输出;H(x)表示激活函数,Zi,j表示ai,j经过激活函数处理之后的输出,即Zi,j=H(ai,j)。{y1,y2,y3}表示经过神经网络处理之后最终的输出。
(2)前向传播。
对给定的网络中每个结点的权重赋初始值,并且选定一个激活函数,选定sigmoid函数作为函数,其函数形式为:
有了联结权重W和激活函数H(x)之后,就可以由前往后计算,依次算出所有的a值,z值,最终算出输出层的y值。这就是前向传播算法。
权重赋初始值问题:
这里我们是对别人已经训练好的模型进行压缩,权重初始值是训练好的模型的初始值。对权重赋值以后通过进一步训练使模型中冗余的参数稀疏化(趋近于0),从而去除掉这部分多余的参数。
(3)结点删除。
对每一层中满足μi,j=0的神经元结点进行删除,例如示意图中对隐藏层一中的Z21,如果w11(2)+w12(2)+w13(2)=0,则删除该结点。
(4)误差计算。
根据上面所述最终损失函数,计算网络输出的误差。若误差小于指定阈值,结束训练;若大于阈值,接续训练。
损失函数计算输出的误差问题:
损失函数分为两项,第一项是KL散度的近似项,用来表征网络层与层之间的冗余度,第二项-LE{x,y}~D,h~p(h|x)[logq(y|hL)]是交叉熵项,用来表征模型与真实数据分布的接近程度(可以理解为模型算出来的值与实际值的差距)。把第一项加进来的原因是为了在保证模型精度的前提下尽可能的减少模型的参数冗余度,从而实现模型压缩的目的。
(5)反向传播、权重更新。
前面用初始化的联结权重计算的输出层值和实际值肯定会有很大的偏差,我们需要对连接权重进行优化,此时就需要使用反向传播算法。
现在假设经过前向传播算法计算的某个输出值为yk,表示输出层的第k个输出,而其实际的值为tk(训练样本的标签值是已知的)。那么误差函数定义如下:
后向传播算法是通过梯度下降的方法对联结权重进行优化,所以需要计算误差函数对联结权重的偏导数δ。先根据输出层的误差,计算出输出层对应的δ,然后再依次反向往前推出隐藏层的δ。其实第k层的某个δk,相当于从第k+1层的δk+1中分配了一部分误差过来,而这个分配的权重,就是前向传播算法中使用的连接权重W,所以这类似于一个反复的过程。
权重更新:
参数W的更新规则是按照下面的公式进行的:Wk=Wk+αδWk。
其中,Wk是第k层的参数矩阵,α是学习率,决定着目标损失函数能否收敛到局部最小值以及何时收敛到最小值,δWk是第k层的偏导数。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一实施例所述的深度学习模型压缩方法。
如图4所示,本发明实施例还提供了一种终端设备,所述终端设备包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10在执行所述计算机程序时实现上述任一实施例所述的深度学习模型压缩方法。
优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、······),所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
所述处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者所述处理器10也可以是任何常规的处理器,所述处理器10是所述终端设备的控制中心,利用各种接口和线路连接所述终端设备的各个部分。
所述存储器20主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储器20可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或所述存储器20也可以是其他易失性固态存储器件。
需要说明的是,上述终端设备可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图3结构框图仅仅是上述终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
综上,本发明实施例所提供的一种深度学习模型压缩方法、装置、存储介质及终端设备,通过前向传播算法计算深度学习模型每层的输出,最后得到深度学习模型的输出值,所述模型的输出值为输出层的激励值,所述激活值为每层处理值经过激活函数处理之后的输出,所述处理值为每层输入值经过联结权重处理后的输出,通过计算每个结点的联结权重均值,删除均值为零的节点,实现模型中冗余的参数稀疏化(趋近于0),从而去除掉这部分多余的参数。并且通过损失函数保证模型精度,在保证模型精度不发生明显下降的前提下,实现大幅度减小模型参数量、大幅度降低训练过程中的运算量,从而使模型能够在资源受限的边缘计算设备上运行。对于未能满足损失函数阈值要求的模型,本发明通过权重更新对模型进行继续训练,直至得到的模型满足损失函数阈值要求,以保证得到的深度学习模型在经过压缩后依旧保障模型精度。本发明所述的一种深度学习模型压缩方法针对资源受限设备网络通信能力弱、计算和存储资源受限等特性,对现有的主流深度学习模型进行压缩,实现在可穿戴设备等资源十分受限设备上运行深度学习模型,解决了目前缺乏对深度学习模型进行压缩的方法,致使深度学习模型难以在资源受限设备上运行的问题。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种深度学习模型压缩方法,其特征在于,包括:
模型初始化步骤:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播步骤:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除步骤:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算步骤:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新步骤:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
2.根据权利要求1所述的一种深度学习模型压缩方法,其特征在于,所述损失函数为相对熵与交叉熵之和。
3.根据权利要求2所述的一种深度学习模型压缩方法,其特征在于,所述相对熵由计算式得到。
4.根据权利要求2所述的一种深度学习模型压缩方法,其特征在于,所述交叉熵由计算式-LE{x,y}~D,h~p(h|x)[logq(y|hL)]得到。
5.根据权利要求1-4任一项所述的一种深度学习模型压缩方法,其特征在于,所述以学习率和偏导数更新模型中每个结点的联结权重中的联结权重更新规则为,新联结权重等于原联结权重加上学习率和偏导数的积。
6.根据权利要求1-4任一项所述的一种深度学习模型压缩方法,其特征在于,所述激活函数选定为sigmoid函数,其函数形式为
7.根据权利要求1-4任一项所述的一种深度学习模型压缩方法,其特征在于,所述误差函数选定为所述yk为深度学习模型中输出层的第k个输出的输出值,所述tk为深度学习模型中输出层的第k个输出的实际值。
8.一种深度学习模型压缩装置,其特征在于,包括:
模型初始化单元:对深度学习模型进行初始化,根据深度学习模型确定的模型中每个结点的联结权重的初始值并选定一个激活函数;
前向传播单元:根据联结权重和激活函数求得输入值在模型中每层的处理值和激活值,最后输出层的激活值即为计算得到的本模型输出值;
结点删除单元:计算每个结点的联结权重均值,删除均值为零的节点,得到新深度学习模型;
误差计算单元:使用损失函数计算新深度学习模型的输出误差,如果误差小于预设阈值则完成模型压缩,所述新深度学习模型即为压缩后得到的新模型,如果误差大于预设阈值则进入权重更新步骤;
权重更新单元:选定误差函数,以激活值结合误差函数依次求出输出层至输入层中每层的误差函数对接连权重的偏导数,选定模型学习率,以学习率和偏导数更新模型中每个结点的联结权重,以重新确定的联结权重进行前向传播步骤、结点删除步骤和误差计算步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1-4任一项所述的深度学习模型压缩方法。
10.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1-4任一项所述的深度学习模型压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811581950.2A CN109784474B (zh) | 2018-12-24 | 2018-12-24 | 一种深度学习模型压缩方法、装置、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811581950.2A CN109784474B (zh) | 2018-12-24 | 2018-12-24 | 一种深度学习模型压缩方法、装置、存储介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109784474A true CN109784474A (zh) | 2019-05-21 |
CN109784474B CN109784474B (zh) | 2020-12-11 |
Family
ID=66497591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811581950.2A Active CN109784474B (zh) | 2018-12-24 | 2018-12-24 | 一种深度学习模型压缩方法、装置、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109784474B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414673A (zh) * | 2019-07-31 | 2019-11-05 | 北京达佳互联信息技术有限公司 | 多媒体识别方法、装置、设备及存储介质 |
CN111783977A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN112036563A (zh) * | 2019-06-03 | 2020-12-04 | 国际商业机器公司 | 使用起源数据的深度学习模型洞察 |
CN112085195A (zh) * | 2020-09-04 | 2020-12-15 | 西北工业大学 | 一种基于x-admm的深度学习模型环境自适应方法 |
CN112085758A (zh) * | 2020-09-04 | 2020-12-15 | 西北工业大学 | 一种边端融合的终端情境自适应模型分割方法 |
CN112183734A (zh) * | 2019-07-03 | 2021-01-05 | 财团法人工业技术研究院 | 神经元电路 |
CN112215353A (zh) * | 2020-09-29 | 2021-01-12 | 电子科技大学 | 一种基于变分结构优化网络的通道剪枝方法 |
CN112465141A (zh) * | 2020-12-18 | 2021-03-09 | 平安科技(深圳)有限公司 | 模型压缩方法、装置、电子设备及介质 |
CN112598114A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 功耗模型构建方法、功耗测量方法、装置和电子设备 |
CN112926672A (zh) * | 2021-03-15 | 2021-06-08 | 中国科学院计算技术研究所 | 用于眼底检测仪数据的检测方法和系统 |
CN113128694A (zh) * | 2019-12-31 | 2021-07-16 | 北京超星未来科技有限公司 | 机器学习中的数据获取、数据处理的方法、装置及系统 |
CN113505774A (zh) * | 2021-07-14 | 2021-10-15 | 青岛全掌柜科技有限公司 | 一种新型保单识别模型尺寸压缩方法 |
WO2022104799A1 (zh) * | 2020-11-23 | 2022-05-27 | 北京小米移动软件有限公司 | 一种训练方法、训练装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171762A (zh) * | 2017-12-27 | 2018-06-15 | 河海大学常州校区 | 一种深度学习的压缩感知同类图像快速重构系统与方法 |
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
-
2018
- 2018-12-24 CN CN201811581950.2A patent/CN109784474B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171762A (zh) * | 2017-12-27 | 2018-06-15 | 河海大学常州校区 | 一种深度学习的压缩感知同类图像快速重构系统与方法 |
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112036563A (zh) * | 2019-06-03 | 2020-12-04 | 国际商业机器公司 | 使用起源数据的深度学习模型洞察 |
CN112183734A (zh) * | 2019-07-03 | 2021-01-05 | 财团法人工业技术研究院 | 神经元电路 |
CN110414673A (zh) * | 2019-07-31 | 2019-11-05 | 北京达佳互联信息技术有限公司 | 多媒体识别方法、装置、设备及存储介质 |
CN113128694A (zh) * | 2019-12-31 | 2021-07-16 | 北京超星未来科技有限公司 | 机器学习中的数据获取、数据处理的方法、装置及系统 |
CN111783977A (zh) * | 2020-04-21 | 2020-10-16 | 北京大学 | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN111783977B (zh) * | 2020-04-21 | 2024-04-05 | 北京大学 | 一种基于分区域梯度更新的神经网络训练过程中间值存储压缩方法和装置 |
CN112085195A (zh) * | 2020-09-04 | 2020-12-15 | 西北工业大学 | 一种基于x-admm的深度学习模型环境自适应方法 |
CN112085758A (zh) * | 2020-09-04 | 2020-12-15 | 西北工业大学 | 一种边端融合的终端情境自适应模型分割方法 |
CN112215353A (zh) * | 2020-09-29 | 2021-01-12 | 电子科技大学 | 一种基于变分结构优化网络的通道剪枝方法 |
CN112215353B (zh) * | 2020-09-29 | 2023-09-01 | 电子科技大学 | 一种基于变分结构优化网络的通道剪枝方法 |
WO2022104799A1 (zh) * | 2020-11-23 | 2022-05-27 | 北京小米移动软件有限公司 | 一种训练方法、训练装置及存储介质 |
CN112598114A (zh) * | 2020-12-17 | 2021-04-02 | 海光信息技术股份有限公司 | 功耗模型构建方法、功耗测量方法、装置和电子设备 |
CN112598114B (zh) * | 2020-12-17 | 2023-11-03 | 海光信息技术股份有限公司 | 功耗模型构建方法、功耗测量方法、装置和电子设备 |
CN112465141A (zh) * | 2020-12-18 | 2021-03-09 | 平安科技(深圳)有限公司 | 模型压缩方法、装置、电子设备及介质 |
CN112926672A (zh) * | 2021-03-15 | 2021-06-08 | 中国科学院计算技术研究所 | 用于眼底检测仪数据的检测方法和系统 |
CN113505774A (zh) * | 2021-07-14 | 2021-10-15 | 青岛全掌柜科技有限公司 | 一种新型保单识别模型尺寸压缩方法 |
CN113505774B (zh) * | 2021-07-14 | 2023-11-10 | 众淼创新科技(青岛)股份有限公司 | 一种保单识别模型尺寸压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109784474B (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784474A (zh) | 一种深度学习模型压缩方法、装置、存储介质及终端设备 | |
Onken et al. | Ot-flow: Fast and accurate continuous normalizing flows via optimal transport | |
US12079696B2 (en) | Machine learning model training method and device, and expression image classification method and device | |
Huang et al. | Building deep networks on grassmann manifolds | |
CN107358293B (zh) | 一种神经网络训练方法及装置 | |
KR102223296B1 (ko) | 콘볼루셔널 신경 네트워크들에서의 구조 학습 | |
CN111523621A (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
CN107844784A (zh) | 人脸识别方法、装置、计算机设备和可读存储介质 | |
CN111898547A (zh) | 人脸识别模型的训练方法、装置、设备及存储介质 | |
US20160140434A1 (en) | Method for pseudo-recurrent processing of data using a feedforward neural network architecture | |
Deutsch et al. | Zero shot learning via multi-scale manifold regularization | |
CN111008631B (zh) | 图像的关联方法及装置、存储介质和电子装置 | |
CN113505797B (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
Zhou et al. | Improved cross-label suppression dictionary learning for face recognition | |
US20200151570A1 (en) | Training System for Artificial Neural Networks Having a Global Weight Constrainer | |
CN111488498A (zh) | 基于图神经网络的“节点-图”跨层图匹配方法及系统 | |
CN112131261A (zh) | 基于社区网络的社区查询方法、装置和计算机设备 | |
Khan et al. | Bridgeout: stochastic bridge regularization for deep neural networks | |
CN111309923B (zh) | 对象向量确定、模型训练方法、装置、设备和存储介质 | |
CN116384471A (zh) | 模型剪枝方法、装置、计算机设备、存储介质和程序产品 | |
Paassen et al. | Gaussian process prediction for time series of structured data. | |
Rafati et al. | Trust-region minimization algorithm for training responses (TRMinATR): The rise of machine learning techniques | |
Palomo et al. | A new self-organizing neural gas model based on Bregman divergences | |
CN111428741B (zh) | 网络社区的发现方法、装置、电子设备及可读存储介质 | |
CN113627404A (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: No. 16 Keyun Road, Tianhe District, Guangzhou City, Guangdong Province, 510665, Self made Building 1, 1101, Self made Building 2 Patentee after: Guangdong Yitong Lianyun Intelligent Information Co.,Ltd. Address before: No. 16 Keyun Road, Tianhe District, Guangzhou City, Guangdong Province, 510665, Self made Building 1, 1101, Self made Building 2 Patentee before: YITONG CENTURY INTERNET OF THINGS RESEARCH INSTITUTE (GUANGZHOU) Co.,Ltd. |