CN110110853A - 一种深度神经网络压缩方法、装置及计算机可读介质 - Google Patents
一种深度神经网络压缩方法、装置及计算机可读介质 Download PDFInfo
- Publication number
- CN110110853A CN110110853A CN201810102299.XA CN201810102299A CN110110853A CN 110110853 A CN110110853 A CN 110110853A CN 201810102299 A CN201810102299 A CN 201810102299A CN 110110853 A CN110110853 A CN 110110853A
- Authority
- CN
- China
- Prior art keywords
- matrix
- parameter
- compression
- neural network
- calibration
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Abstract
提出了一种深度神经网络压缩方法、装置及计算机可读介质。根据本发明的一种深度神经网络压缩方法(500)包括:基于神经网络的输入数据与输出数据对参数进行校准(S510);对校准后的参数进行压缩,以获得压缩后的神经网络(S520)。校准的加入使得本发明的神经网络压缩技术可以减少因压缩而产生的精度损失,进而缩短重训的时间。
Description
技术领域
本发明涉及人工神经网络,更具体涉及一种深度神经网络压缩方法、装置及计算机可读介质。
背景技术
人工神经网络(Artificial Neural Networks, ANN),也简称神经网络(NNs),是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。近年来,神经网络发展很快,被广泛应用于诸多领域,如图像识别、语音识别、自然语言处理、天气预报、基因表达、内容推送等等。
神经网络中,有大量彼此连接的节点 (也称 “神经元”),并且具备两个特性:1)每个神经元,通过某种特定的输出函数 (也叫激活函数,activation function),计算处理来自其它相邻神经元的加权输入值;2) 神经元之间的信息传递强度,用所谓权值来定义,算法会不断自我学习,调整这个加权值。
早期的神经网络只有输入和输出层两层,无法处理复杂的逻辑,限制了其实用性。而深度神经网络(Deep Neural Network, DNN)通过在输入和输出层之间添加隐藏的中间层,革命性地改变了这一点。图1示出了一种深度神经网络的模型。
语音识别(Speech Recognition),是将语音的模拟信号顺序映射到一个具体的单词集合上。近年来,人工神经网络的方法在语音识别领域取得的效果已经远远超出了所有传统方法,正在成为全行业的主流。其中,深度神经网络有着极为广泛的应用。
循环神经网络(Recurrent Neural Networks, RNN)是一种常用的深度神经网络模型,不同于传统前向神经网络(Feed-forward Neural Network)的是,循环神经网络引入了定向循环,能够处理那些输入之间前后关联的问题。在语音识别中,信号的前后关联很强,例如识别句子中的单词,和该单词前面的单词序列关系十分紧密。因此,循环神经网络在语音识别领域有着非常广泛的应用。
为了解决对长期信息的记忆问题,Hochreiter和Schmidhuber于1997年提出了长短时记忆(Long Short-Term Memory, LSTM)模型。LSTM神经网络是RNN的一种,将普通RNN当中简单的重复神经网络模块改变为复杂的连接交互关系。LSTM神经网络在语音识别中也取得了非常好的应用效果。
图2示出了一种应用于语音识别领域的LSTM网络模型。
然而,通过近几年的迅速发展,神经网络的规模不断增长,已公开的比较先进的神经网络可达数百层、数亿个连接,属于计算和访存密集型应用。在神经网络逐渐变大的情况下,模型压缩就变得极为重要。
深度神经网络中,神经元的连接关系是通过一系列矩阵来体现。经过训练后的网络虽然预测准确,效果奇佳,但其矩阵都是稠密的,即“矩阵中充满了非零元素”,从而导致大量的存储和计算资源被消耗,不但降低速度,而且增加成本,这样一来,在移动端的推广就面临着巨大的困难,极大的制约了神经网络的应用空间。
近年来,广泛的研究表明,通过训练得到的神经网络模型矩阵中,仅有部分权值较大的元素代表着重要连接,而其他权值较小的元素可以被移除(置为零),与此同时对应的神经元也被剪枝(pruning)。剪枝后的网络精度会下降,但是可以通过重训(finetune),对仍然保留在模型矩阵中权值的大小进行调整,从而减小精度损失。剪枝可以将神经网络中的稠密矩阵稀疏化,能够有效的降低存储量、减少计算量,在保持网络预测精度的同时实现加速。
图3示出了利用剪枝、重训来压缩神经网络的示意图。图4示出了剪枝前后的神经网络的示意图。
目前经常使用的现有的压缩技术核心部分是剪枝,就是保留权重中比较重要的部分同时其余部分置零,之后结合DSD(Dense-Sparse-Dense,即稠密-稀疏-稠密)静态掩码(mask)重训或使用边训边压的动态掩码重训使保留的权重重新生长分配以达到最高精度。然而,通过剪枝等方法对网络进行压缩,几乎无法避免地会使得网络由于稀疏化而造成精度损失。由于网络精度上的损失,必然会加重重训的负担,造成重训时间与复杂度的增加。
发明内容
本发明实施例提供一种深度神经网络压缩方法、装置及计算机可读介质,用以解决现有压缩技术中网络精度损失较大使得重训负担加重的缺陷,实现减少因压缩而产生的精度损失,进而缩短重训时间。
根据本发明的第一方面,提供一种深度神经网络压缩方法。所述方法可以包括:基于神经网络的输入数据与输出数据对参数进行校准;对校准后的参数进行压缩,以获得压缩后的神经网络。
优选地,所述的基于神经网络的输入数据与输出数据对参数进行校准的步骤可以进一步包括:通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
具体地说,可以采用最小二乘法,求解使得为最小值的解,其中,A为
输入数据矩阵,B为输出数据矩阵,解X为校准后的参数矩阵。
优选地,对于对时序没有依赖性的参数矩阵,可以采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。这里所述的部分压缩是指压缩所有与得到输入数据矩阵A相关的参数。
优选地,对于对时序有依赖性的参数矩阵,可以采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
当选用方式(2)时,在缓存A的过程中,可以选用压缩的或未压缩的参数矩阵。
当选用方式(3)时,可以在缓存B的过程中,选用压缩的或未压缩的参数矩阵。
当选用方式(4)时,可以通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
优选地,所述压缩步骤可以进一步包括:通过敏感度扫描来确定压缩率;采用所确定的压缩率来对校准后的参数进行压缩。
这里所述的通过敏感度扫描来确定压缩率可以进一步包括:单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;针对每种参数,找到使得精度损失不超过阈值的压缩率;统计所有参数的压缩率,确定整个网络的压缩率。
一方面,可以采用使得精度损失不超过阈值的最大压缩率来进行压缩。
另一方面,可以采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩。此时,根据本发明第一方面的方法可以进一步包括:重复地进行所述校准步骤和所述压缩步骤。
优选地,根据本发明第一方面的方法可以进一步包括重训步骤,用于对所述压缩后的神经网络进行重训。
根据本发明的第二方面,提供一种深度神经网络压缩装置。该装置可以包括:校准单元,用于基于神经网络的输入数据与输出数据对参数进行校准;压缩单元,用于对校准后的参数进行压缩,以获得压缩后的神经网络。
优选地,所述校准单元可以进一步用于:通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
具体地说,所述校准单元可以采用最小二乘法,求解使得为最小值的
解,其中,A为输入数据矩阵,B为输出数据矩阵,解X为校准后的参数矩阵。
优选地,对于对时序没有依赖性的参数矩阵,所述校准单元可以采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。更优选地,对于对时序没有依赖性的参数矩阵,所述校准单元可以采用压缩所有与得到输入数据矩阵A相关的参数的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。
优选地,对于对时序有依赖性的参数矩阵,所述校准单元可以采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
当选用方式(2)时,在缓存A的过程中,所述校准单元可以选用压缩的或未压缩的参数矩阵。
当选用方式(3)时,在缓存B的过程中,所述校准单元也可以选用压缩的或未压缩的参数矩阵。
当选用方式(4)时,所述校准单元可以通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
优选地,所述压缩单元可以进一步包括压缩率确定子单元,用于通过敏感度扫描来确定压缩率。所述压缩单元则进一步用于采用所确定的压缩率来对校准后的参数进行压缩。
这里所述的压缩率确定子单元可以进一步用于:单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;针对每种参数,找到使得精度损失不超过阈值的压缩率;统计所有参数的压缩率,确定整个网络的压缩率。
一方面,所述压缩单元可以采用使得精度损失不超过阈值的最大压缩率来进行压缩。
另一方面,所述压缩单元可以采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩。此时,所述校准单元和所述压缩单元可以重复地进行各自的操作。
优选地,根据本发明第二方面的装置可以进一步包括神经网络重训单元,用于对所述压缩后的神经网络进行重训。
根据本发明的第三方面,提供一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行深度神经网络压缩方法,包括如下操作:基于神经网络的输入数据与输出数据对参数进行校准;对校准后的参数进行压缩,以获得压缩后的神经网络。
如前所述,校准的原理是采用数学方法对某一部分参与运算的参数进行校准,使得这部分参数在校准后能够“补偿”之前运算中因为压缩而造成的损失。
根据本发明所述的一种深度神经网络压缩方法、装置及计算机可读介质,通过校准模块实现了在重训之前对参数进行优化分配,被优化的参数可以参与或不参与压缩,减少因压缩而产生的精度损失,进而缩短重训的时间。
附图说明
下面参考附图结合实施例说明本发明。
图1示出了一种深度神经网络的模型。
图2示出了一种应用于语音识别领域的LSTM网络模型。
图3示出了利用剪枝、重训来压缩神经网络的示意图。
图4示出了剪枝前后的神经网络的示意图。
图5是根据本发明的深度神经网络压缩方法的流程图。
图6是根据本发明的深度神经网络压缩装置的示意框图。
具体实施方式
附图仅用于示例说明,不能理解为对本发明的限制。下面结合附图和实施例对本发明的技术方案做进一步的说明。
下文中,通过LSTM神经网络中先校准后压缩的示例来作为本发明的一个优选实施例,用于具体地描述根据本发明的深度神经网络压缩方法和装置。
LSTM神经网络中,前向计算主要是一系列矩阵与向量乘法的组合,如下公式所示:
公式中给出了两种LSTM:右边是最简单的LSTM结构;左边是LSTMP结构,其主要特点是在简单LSTM的基础上添加了窥视(peephole)和投影(projection)操作。无论是LSTM还是LSTMP结构,其中都主要包括c(单元cell)、i(输入门input gate)、f(遗忘门forget gate)、o(输出门output gate)四种矩阵,即Wcx、Wix、Wfx、Wox、Wcr(h)、Wir(h)、Wfr(h)、Wor(h),以及Wym。前四种矩阵可以统称为Wcifo_x,接下来四种矩阵可以统称为Wcifo_r,而Wym对应于LSTMP结构,LSTM计算结构没有这一参数。
基于校准的压缩技术也就是对这些被选择的参数进行校准,然后再压缩。相对于现有压缩技术的直接剪枝,本发明所述压缩技术采用校准模块对被压缩的参数先进行校准,从而减小精度损失。
根据本发明所述压缩方法中的涉及的校准是通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。根据本发明的优选实施例,校准的原理可以是采用最小二乘法,也就是求如下过程的解:
。
以上公式中,A是输入数据矩阵,B是输出数据矩阵,这一公式得到的解X就是校准
后的参数矩阵。X需要和输入数据矩阵A进行计算得到输出数据矩阵B,理想情况下AX与B完
全相同,也即为0,从而这一步计算过程没有精度损失。实际过程中很难解得
无精度损失的结果,只能尽量使得AX与B接近从而减小。一般会采用部分压缩
的模型(即压缩所有与得到A相关的参数)计算输入数据矩阵A,而未压缩的模型计算输出数
据矩阵B,旨在使得校准后的参数可以弥补因为压缩而损失的精度。
根据上述计算过程,校准技术的核心是选择正确的输入数据矩阵A和输出数据矩阵B从而确定X。A和B需要是只和参数相关且对参数没有影响的输入和输出数据矩阵,且需要尽量多的和参数发生作用。只有满足这种要求才能起到校准的效果。基于此,对不同参数的校准数据的选择也不相同,这与不同参数参与整个LSTM计算过程的方式有关。
从以上公式中可以看出,Wcifo_x对时序没有依赖,可以找到和Wcifo_x这一参数相关的输入和输出,也即公式中合适的A和B;对于Wcifo_r和Wym则不存在可以直接得到的合适的A、B选择,因为这两个参数有时序依赖性,它们影响每一时间帧的输入参数,得到的结果会继续影响下一时间帧的输入参数。这一情况和不同参数的作用方式相关。Wcifo_x是输入门参数,只对直接输入LSTM的每一帧进行计算,不对隐藏状态的改变负责,所以没有时序依赖。Wcifo_r负责对每一时间点的隐藏状态进行描述,再用结果影响下一时间状态的输入,所以对事件有依赖性。Wym负责对结果进行降维,以此来减小计算量,由于每一帧的计算结果会经过Wcifo_r作用到下一帧上,所以Wym这一对结果处理的参数也具有时序依赖性。
鉴于此,对于Wcifo_r和Wym进行校准时选择A和B有不同的策略。
方式一:只选用最开始作用的一帧的输入和输出。两种LSTM计算过程中t=0的时候的计算过程中涉及到了Wcifo_r和Wym,但是由于t=0的时间节点上前一帧输出状态为全0(一般初始隐藏状态默认为全0状态),所以在这一帧计算过程中Wcifo_r作用无法体现;故对于提取用于校准Wym的数据可以采用t=0时的mt作为输入数据矩阵A,yt作为输出数据矩阵B;对于提取用于校准Wcifo_r的数据可以采用t=1时的y(t-1)作为输入数据矩阵A,这一步骤结束后的中间结果作为输出数据矩阵B。
方式二:选用未压缩的模型进行计算,缓存下所有与Wcifo_r和Wym相关的输出结果作为相应的B。再选用部分压缩的模型,缓存下所有与Wcifo_r以及Wym相关的输入作为相应的A。这一模式也可以为分两种情况,就是缓存A的过程中选用被压缩的Wcifo_r和Wym以及这一过程中选用未被压缩的Wcifo_r和Wym。
方式三:与第二种模式相反,缓存B的过程选用部分压缩后的模型,缓存A的过程中选择未被压缩的模型,同样包含两种情况,也就是缓存B的过程中Wcifo_r和Wym是否被压缩。
方式四:采用未压缩的模型计算缓存输出数据矩阵B,在缓存A的过程中,对Wcifo_r和Wym进行变换,也即对Wcifo_r/Wym和另一方阵进行计算得到虚拟的Wcifo_r/Wym,以此得到输入数据矩阵A。这种模式旨在对校准模式相关参数的产生进行“学习”,即选用机器学习的方法学习用于制作虚拟Wcifo_r和Wym的方阵,训练数据可以采用缓存得到的A、B和压缩率,标签则选用精度损失。通过这一学习过程可以确定对应的方阵,用于指导校准过程中参数的选择。
对于不同的应用场景和数据集,可以采用实验的方式确定何种模式能得到最好的结果。模式选择的目的是尽量减少需要校准的参数对时序的依赖性。
除去输入和输出数据矩阵A和B的选择,本发明所述的压缩技术同现有压缩技术相同,也需要知道每一参数的压缩率,压缩率的确定采用敏感度扫描方式,即单独压缩某一参数,对得到的全过程结果进行分析对比精度损失。设定损失阈值来确定最保险的压缩率,最后统计所有的压缩率作为压缩模型的参数。采用校准技术的本发明压缩模式,由于多出了校准这一模块,所以每次压缩过程中除去剪枝,参数各个位置上的数值也会有变动,这一过程可以理解为一个轻量级的“重训”。基于这一特点,现有压缩技术的“单次深压”可以改变为本发明压缩技术的“多次校准压缩”,也即每次用一个比较小的压缩率进行边校准边压缩,相当于在压缩过程中加入了多次轻量级的“重训”。
在压缩过程之后,可以仍然对压缩后的神经网络进行重训,以进一步提高精度。
综上所述,校准的核心是选择正确的输入和输出数据矩阵A和B,从而对参数进行校准。对于提高精度可以选择单次校准深压或者多次校准浅压。对于LSTM的校准,难度是选择对应的A和B,可以通过实验的方式确定最合适的方法。
尽管在优选实施例中,神经网络被具体化为LSTM神经网络,但本领域技术人员应该理解,本发明的思想同样适用于更一般的人工神经网络、深度神经网络或循环神经网络(RNN)。
下面将根据本发明,给出更一般的方法与装置的实施例。
图5是根据本发明的深度神经网络压缩方法的流程图。
如图5所示,根据本发明的深度神经网络压缩方法500开始于步骤S510,基于神经网络的输入数据与输出数据对参数进行校准。
在本发明的优选实施例中,如前所述,基于神经网络的输入数据与输出数据对参数进行校准可以进一步包括通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
更具体地,以上可以采用最小二乘法,求解使得为最小值的解,其中,A
为输入数据矩阵,B为输出数据矩阵,解X为校准后的参数矩阵。但是,本领域普通技术人员
应该理解,校准步骤也可以使用其他的原理,只要其能够通过对参数进行校准,使得在重训
之前对参数进行优化分配,被优化的参数可以参与或不参与压缩,这种校准模块可以减少
因压缩而产生的损失,进而减小重训的时间。
在使用最小二乘法的优选实施例中,针对两种不同的参数矩阵,会有不同的处理方式。
一方面,对于对时序没有依赖性的参数矩阵,例如之前的优选实施例中所提到的Wcifo_x,采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。这里所述的部分压缩是指压缩所有与得到输入数据矩阵A相关的参数。
另一方面,对于对时序有依赖性的参数矩阵,例如之前的优选实施例中所提到的Wcifo_r和Wym,采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
如前文所述,对于不同的应用场景和数据集,可以采用实验的方式确定何种模式能得到最好的结果。模式选择的目的是尽量减少需要校准的参数对时序的依赖性。
当选用方式(2)时,在缓存A的过程中,可以选用压缩的参数矩阵,也可以选用未压缩的参数矩阵。
类似地,当选用方式(3)时,在缓存B的过程中,可以选用压缩的参数矩阵,也可以选用未压缩的参数矩阵。
当选用方式(4)时,通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
再来看方法500的流程图。在步骤S520,对校准后的参数进行压缩,以获得压缩后的神经网络。
具体地说,这里所述的对校准后的参数进行压缩,以获得压缩后的神经网络的步骤可以进一步包括:通过敏感度扫描来确定压缩率,然后采用所确定的压缩率来对校准后的参数进行压缩。
在通过敏感度扫描来确定压缩率时,可以考虑如下的方式:单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;针对每种参数,找到使得精度损失不超过阈值的压缩率;统计所有参数的压缩率,从而确定整个网络的压缩率。
实践中,可以考虑采用使得精度损失不超过阈值的最大压缩率来进行压缩,即前文所述的“单次校准深压”。
也可以考虑采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩,然后重复地进行方法500的校准步骤S510和压缩步骤S520,即前文所述的“多次校准浅压”。
可选地,本方法可以进一步包括对所述压缩后的神经网络进行重训(未示出)。由此,在不改变压缩率的情况下提升其预测准确率,以减小压缩带来的精度损失。
根据之前的解释与描述,所述神经网络可以是循环神经网络(RNN),更具体而言,可以是长短时记忆(LSTM)神经网络。
综上所述,校准的核心是选择正确的A和B,从而对参数进行校准。对于提高精度可以选择单次校准深压或者多次校准浅压。对于LSTM的校准,难度是选择对应的A和B,可以通过实验的方式确定最合适的方法。
如前所述,在本发明中,通过加入校准的步骤,使得本发明所述的压缩技术可以在重训之前对参数进行优化分配,被优化的参数可以参与或不参与压缩,这种校准模块可以减少因压缩而产生的损失,进而减小重训的时间。
图6是根据本发明的深度神经网络压缩装置的示意框图。
如图6中所示,根据本发明的深度神经网络压缩装置600至少包括校准单元610,用于基于神经网络的输入数据与输出数据对参数进行校准。校准单元610与图5中的步骤S510相对应。
在本发明的优选实施例中,校准单元610可以进一步用于通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
更具体地,校准单元610可以采用最小二乘法,求解使得为最小值的解,
其中,A为输入数据矩阵,B为输出数据矩阵,解X为校准后的参数矩阵。但是,本领域普通技
术人员应该理解,校准步骤也可以使用其他的原理,只要其能够通过对参数进行校准,使得
在重训之前对参数进行优化分配,被优化的参数可以参与或不参与压缩,这种校准模块可
以减少因压缩而产生的损失,进而减小重训的时间。
在使用最小二乘法的优选实施例中,针对两种不同的参数矩阵,校准单元610会有不同的处理方式。
一方面,对于对时序没有依赖性的参数矩阵,例如之前的优选实施例中所提到的Wcifo_x,校准单元610采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。更具体地说,对于对时序没有依赖性的参数矩阵,例如之前的优选实施例中所提到的Wcifo_x,校准单元610采用压缩所有与得到输入数据矩阵A相关的参数的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。
另一方面,对于对时序有依赖性的参数矩阵,例如之前的优选实施例中所提到的Wcifo_r和Wym,校准单元610采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
如前文所述,对于不同的应用场景和数据集,可以采用实验的方式确定何种模式能得到最好的结果。模式选择的目的是尽量减少需要校准的参数对时序的依赖性。
当选用方式(2)时,在缓存A的过程中,校准单元610可以选用压缩的参数矩阵,也可以选用未压缩的参数矩阵。
类似地,当选用方式(3)时,在缓存B的过程中,校准单元610可以选用压缩的参数矩阵,也可以选用未压缩的参数矩阵。
当选用方式(4)时,校准单元610通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
装置600还包括压缩单元620,用于对校准后的参数进行压缩,以获得压缩后的神经网络。压缩单元620与图5中的步骤S520相对应。
具体地说,这里所述的压缩单元620可以进一步包括压缩率确定子单元(未示出),用于通过敏感度扫描来确定压缩率。然后,压缩单元620采用所确定的压缩率来对校准后的参数进行压缩。
在压缩率确定子单元通过敏感度扫描来确定压缩率时,可以考虑如下的方式:单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;针对每种参数,找到使得精度损失不超过阈值的压缩率;统计所有参数的压缩率,从而确定整个网络的压缩率。
实践中,可以考虑压缩单元620采用使得精度损失不超过阈值的最大压缩率来进行压缩,即前文所述的“单次校准深压”。
也可以考虑压缩单元620采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩,然后校准单元610和压缩单元620重复地进行各自的操作,即前文所述的“多次校准浅压”。
尽管未示出,装置600还可以包括神经网络重训单元,用于对所述压缩后的神经网络进行重训。由此,在不改变压缩率的情况下提升其预测准确率,以减小压缩带来的精度损失。
本领域普通技术人员应该认识到,本发明的方法可以实现为计算机程序。如上结合图5和6所述,根据上述实施例的方法可以执行一个或多个程序,包括指令来使得计算机或处理器执行结合附图所述的算法。这些程序可以使用各种类型的非瞬时计算机可读介质存储并提供给计算机或处理器。非瞬时计算机可读介质包括各种类型的有形存贮介质。非瞬时计算机可读介质的示例包括磁性记录介质(诸如软盘、磁带和硬盘驱动器)、磁光记录介质(诸如磁光盘)、CD-ROM(紧凑盘只读存储器)、CD-R、CD-R/W以及半导体存储器(诸如ROM、PROM(可编程ROM)、EPROM(可擦写PROM)、闪存ROM和RAM(随机存取存储器))。进一步,这些程序可以通过使用各种类型的瞬时计算机可读介质而提供给计算机。瞬时计算机可读介质的示例包括电信号、光信号和电磁波。瞬时计算机可读介质可以用于通过诸如电线和光纤的有线通信路径或无线通信路径提供程序给计算机。
因此,根据本发明,还可以提议一种计算机程序或一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行深度神经网络压缩方法,包括如下操作:基于神经网络的输入数据与输出数据对参数进行校准;对校准后的参数进行压缩,以获得压缩后的神经网络。
上面已经描述了本发明的各种实施例和实施情形。但是,本发明的精神和范围不限于此。本领域技术人员将能够根据本发明的教导而做出更多的应用,而这些应用都在本发明的范围之内。
也就是说,本发明的上述实施例仅仅是为清楚说明本发明所做的举例,而非对本发明实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、替换或改进等,均应包含在本发明权利要求的保护范围之内。
Claims (29)
1.一种深度神经网络压缩方法,其特征在于,所述方法包括:
基于神经网络的输入数据与输出数据对参数进行校准;
对校准后的参数进行压缩,以获得压缩后的神经网络。
2.如权利要求1所述的方法,其特征在于,所述的基于神经网络的输入数据与输出数据对参数进行校准的步骤进一步包括:通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
3.如权利要求2所述的方法,其特征在于,所述的通过分别选取输入数据矩阵和输出数据矩阵,获得校准后的参数矩阵的步骤进一步包括:
采用最小二乘法,求解使得为最小值的解,其中,A为输入数据矩阵,B为
输出数据矩阵,解X为校准后的参数矩阵。
4.如权利要求3所述的方法,其特征在于,对于对时序没有依赖性的参数矩阵,采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。
5.如权利要求4所述的方法,其特征在于,所述的部分压缩是指压缩所有与得到输入数据矩阵A相关的参数。
6.如权利要求3所述的方法,其特征在于,对于对时序有依赖性的参数矩阵,采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
7.如权利要求6所述的方法,其特征在于,当选用方式(2)时,在缓存A的过程中,选用压缩的或未压缩的参数矩阵。
8.如权利要求6所述的方法,其特征在于,当选用方式(3)时,在缓存B的过程中,选用压缩的或未压缩的参数矩阵。
9.如权利要求6所述的方法,其特征在于,当选用方式(4)时,通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
10.如权利要求1所述的方法,其特征在于,所述的对校准后的参数进行压缩,以获得压缩后的神经网络的步骤进一步包括:
通过敏感度扫描来确定压缩率;
采用所确定的压缩率来对校准后的参数进行压缩。
11.如权利要求10所述的方法,其特征在于,所述的通过敏感度扫描来确定压缩率的步骤进一步包括:
单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;
针对每种参数,找到使得精度损失不超过阈值的压缩率;
统计所有参数的压缩率,确定整个网络的压缩率。
12.如权利要求11所述的方法,其特征在于,采用使得精度损失不超过阈值的最大压缩率来进行压缩。
13.如权利要求11所述的方法,其特征在于,采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩,并且所述方法进一步包括:
重复地进行所述校准步骤和所述压缩步骤。
14.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
对所述压缩后的神经网络进行重训。
15.一种深度神经网络压缩装置,其特征在于,所述装置包括:
校准单元,用于基于神经网络的输入数据与输出数据对参数进行校准;
压缩单元,用于对校准后的参数进行压缩,以获得压缩后的神经网络。
16.如权利要求15所述的装置,其特征在于,所述校准单元进一步用于:通过分别选取输入数据矩阵和输出数据矩阵,对输入数据矩阵和输出数据矩阵之间的差异进行弥补来获得校准后的参数矩阵。
17.如权利要求16所述的装置,其特征在于,所述校准单元进一步用于:
采用最小二乘法,求解使得为最小值的解,其中,A为输入数据矩阵,B为输
出数据矩阵,解X为校准后的参数矩阵。
18.如权利要求17所述的装置,其特征在于,所述校准单元进一步用于:对于对时序没有依赖性的参数矩阵,采用部分压缩的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。
19.如权利要求18所述的装置,其特征在于,所述校准单元进一步用于:对于对时序没有依赖性的参数矩阵,采用压缩所有与得到输入数据矩阵A相关的参数的模型来计算输入数据矩阵A,并且采用未压缩的模型来计算输出数据矩阵B。
20.如权利要求17所述的装置,其特征在于,所述校准单元进一步用于:对于对时序有依赖性的参数矩阵,采用以下四种方式中的一种来计算输入数据矩阵A和输出数据矩阵B:
(1)只选用最开始作用的一帧的输入和输出作为A和B;
(2)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,再选用部分压缩模型,缓存所有与参数矩阵相关的输入作为A;
(3)选用未压缩模型进行计算,缓存所有与参数矩阵相关的输入作为A,再选用部分压缩模型,缓存所有与参数矩阵相关的输出结果作为B;
(4)采用未压缩模型进行计算,缓存所有与参数矩阵相关的输出结果作为B,通过将参数矩阵与另一变换方阵相乘得到虚拟参数矩阵,缓存所有与该虚拟参数矩阵相关的输入作为A。
21.如权利要求20所述的装置,其特征在于,所述校准单元进一步用于:当选用方式(2)时,在缓存A的过程中,选用压缩的或未压缩的参数矩阵。
22.如权利要求20所述的装置,其特征在于,所述校准单元进一步用于:当选用方式(3)时,在缓存B的过程中,选用压缩的或未压缩的参数矩阵。
23.如权利要求6所述的装置,其特征在于,所述校准单元进一步用于:当选用方式(4)时,通过采用缓存得到的A、B以及压缩率,控制精度损失,用机器学习的方法学习产生虚拟参数矩阵的所述变换方阵。
24.如权利要求15所述的装置,其特征在于,所述压缩单元进一步包括:
压缩率确定子单元,用于通过敏感度扫描来确定压缩率,
所述压缩单元进一步用于采用所确定的压缩率来对校准后的参数进行压缩。
25.如权利要求24所述的装置,其特征在于,所述压缩率确定子单元进一步用于:
单独压缩一种参数,针对得到的全过程结果,计算压缩前后的精度损失;
针对每种参数,找到使得精度损失不超过阈值的压缩率;
统计所有参数的压缩率,确定整个网络的压缩率。
26. 如权利要求25所述的装置,其特征在于,所述压缩单元进一步用于采用使得精度损失不超过阈值的最大压缩率来进行压缩。
27.如权利要求25所述的装置,其特征在于,所述压缩单元进一步用于采用小于使得精度损失不超过阈值的最大压缩率的压缩率来进行压缩,并且
所述校准单元和所述压缩单元重复地进行各自的操作。
28.如权利要求15所述的装置,其特征在于,所述装置进一步包括:
神经网络重训单元,用于对所述压缩后的神经网络进行重训。
29.一种计算机可读介质,用于记录可由处理器执行的指令,所述指令在被处理器执行时,使得处理器执行深度神经网络压缩方法,包括如下操作:
基于神经网络的输入数据与输出数据对参数进行校准;
对校准后的参数进行压缩,以获得压缩后的神经网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810102299.XA CN110110853B (zh) | 2018-02-01 | 2018-02-01 | 一种深度神经网络压缩方法、装置及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810102299.XA CN110110853B (zh) | 2018-02-01 | 2018-02-01 | 一种深度神经网络压缩方法、装置及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110110853A true CN110110853A (zh) | 2019-08-09 |
CN110110853B CN110110853B (zh) | 2021-07-30 |
Family
ID=67483521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810102299.XA Active CN110110853B (zh) | 2018-02-01 | 2018-02-01 | 一种深度神经网络压缩方法、装置及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110110853B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307968A (zh) * | 2020-10-30 | 2021-02-02 | 天地伟业技术有限公司 | 一种人脸识别特征压缩方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181497A1 (en) * | 2003-02-18 | 2004-09-16 | Samsung Electronics Co., Ltd. | Neural networks |
CN104751842A (zh) * | 2013-12-31 | 2015-07-01 | 安徽科大讯飞信息科技股份有限公司 | 深度神经网络的优化方法及系统 |
CN105144203A (zh) * | 2013-03-15 | 2015-12-09 | 谷歌公司 | 信号处理系统 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
-
2018
- 2018-02-01 CN CN201810102299.XA patent/CN110110853B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040181497A1 (en) * | 2003-02-18 | 2004-09-16 | Samsung Electronics Co., Ltd. | Neural networks |
CN105144203A (zh) * | 2013-03-15 | 2015-12-09 | 谷歌公司 | 信号处理系统 |
CN104751842A (zh) * | 2013-12-31 | 2015-07-01 | 安徽科大讯飞信息科技股份有限公司 | 深度神经网络的优化方法及系统 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
Non-Patent Citations (4)
Title |
---|
SONG HAN ET AL: "EIE: Efficient Inference Engine on Compressed Deep Neural Network", 《ARXIV:1602.01528V2》 * |
SONG HAN ET AL: "ESE: Efficient Speech Recognition Engine with Sparse LSTM on FPGA", 《ARXIV:1612.00694V2》 * |
王磊等: "面向嵌入式应用的深度神经网络模型压缩技术综述", 《北京交通大学学报》 * |
韩云飞等: "深度神经网络的压缩研究", 《计算机应用研究》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307968A (zh) * | 2020-10-30 | 2021-02-02 | 天地伟业技术有限公司 | 一种人脸识别特征压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110110853B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107689224B (zh) | 合理使用掩码的深度神经网络压缩方法 | |
CN107688850B (zh) | 一种深度神经网络压缩方法 | |
US10984308B2 (en) | Compression method for deep neural networks with load balance | |
Deng et al. | Peephole: Predicting network performance before training | |
CN107729999A (zh) | 考虑矩阵相关性的深度神经网络压缩方法 | |
US10762426B2 (en) | Multi-iteration compression for deep neural networks | |
Gulcehre et al. | Mollifying networks | |
TWI541736B (zh) | 分段線性神經元建模 | |
CN108898213B (zh) | 一种面向深度神经网络的自适应激活函数参数调节方法 | |
EA035114B1 (ru) | Нейронная сеть и способ обучения нейронной сети | |
KR102037279B1 (ko) | 딥러닝 시스템 및 그 최적 학습 모델 결정 방법 | |
CN111401547B (zh) | 一种面向乘客流分析的基于循环学习单元的htm设计方法 | |
CN108537335A (zh) | 一种自适应学习率的bp神经网络算法 | |
KR20210032140A (ko) | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 | |
CN106650022A (zh) | 复杂电子设备故障预测的方法 | |
CN104050505A (zh) | 一种基于带学习因子蜂群算法的多层感知器训练方法 | |
CN110930996A (zh) | 模型训练方法、语音识别方法、装置、存储介质及设备 | |
CN110084364A (zh) | 一种深度神经网络压缩方法和装置 | |
CN115511069A (zh) | 神经网络的训练方法、数据处理方法、设备及存储介质 | |
KR20010002997A (ko) | 신경회로망을 이용한 선택적 주의집중 방법 | |
CN110866403B (zh) | 基于卷积循环实体网络的端对端对话状态跟踪方法及系统 | |
CN118155860A (zh) | 一种中医大模型偏好对齐方法、设备及介质 | |
CN110110853A (zh) | 一种深度神经网络压缩方法、装置及计算机可读介质 | |
CN116543289B (zh) | 一种基于编码器-解码器及Bi-LSTM注意力模型的图像描述方法 | |
Venayagamoorthy et al. | Comparison of nonuniform optimal quantizer designs for speech coding with adaptive critics and particle swarm |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200901 Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029 Applicant after: Xilinx Electronic Technology (Beijing) Co., Ltd Address before: 100083, 17 floor, 4 Building 4, 1 Wang Zhuang Road, Haidian District, Beijing. Applicant before: BEIJING DEEPHI TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |