调整人工神经网络的方法和装置与流程

文档序号:12469184阅读:263来源:国知局
调整人工神经网络的方法和装置与流程

本发明设计人工神经网络(ANN),例如,循环神经网络(RNN),尤其涉及基于掩码对神经网络的动态调整。



背景技术:

人工神经网络(ANN),简称神经网络(NNs),是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。近年来,神经网络发展很快,被广泛应用于诸多领域,如图像识别、语音识别、自然语言处理、天气预报、基因表达、内容推送等等。

在神经网络中存在着大量彼此连接的、被称为“神经元”的节点。每个神经元通过特定的输出函数计算来自其它相邻神经元的加权输入值。各神经元之间的信息传递强度用“权值”定义,算法会不断自我学习,调整这个加权值。在神经网络中,神经元的连接关系在数学上可以表示为一系列矩阵。经过训练后的网络虽然预测准确,但其矩阵都是稠密的,即“矩阵中充满了非零元素”。随着神经网络变得愈发复杂,稠密矩阵的计算会消耗大量的存储和计算资源。由此导致的低速度和高成本使得移动端的推广应用面临着巨大的困难,从而极大地制约了神经网络的发展。

近年来的研究表明,通过训练得到的神经网络模型矩阵中,仅有部分权值较大的元素代表着重要连接,而其他权值较小的元素可以被移除(置为零),与此同时对应的神经元也被剪枝。剪枝后的网络精度会下降,但是可以通过重训,对仍然保留在模型矩阵中权值的大小进行调整,从而减小精度损失。模型压缩可以将神经网络中的稠密矩阵稀疏化,有效降低存储量、减少计算量,在保持精度的同时实现加速。模型压缩对于专用的稀疏神经网络加速器而言显得极为重要。

对于较为复杂的神经网络模型,尤其是多层神经网络模型而言,各层的网络模型矩阵相互关联。因而会存在一些重要的连接在权值上表现得比较小,而当剪去大多数不重要的连接并重训后重新表现得比较大。这些权值在剪枝中相当于被误剪了。但是在现有的压缩流程中,针对剪枝后精度下降的网络进行重训时,只会调整仍然保留在模型矩阵中的权值的大小,因此对误剪是无法进行恢复的。这样可能会导致网络模型收敛到一个不佳的局部最优点,从而对压缩率和模型准确度带来影响。

因此,需要一种神经网络调整方案,能够在神经网络压缩过程中尝试对误剪等情况进行修正。



技术实现要素:

为了对剪枝过程中的一些误剪行为进行修正和恢复,本发明提出的神经网络调整方案通过在重训阶段加入对存储剪枝结果的矩阵形状掩码的动态调整达到保证甚至提高剪枝后神经网络性能的目标。

根据本发明的一个方面,提出了一种调整人工神经网络(ANN)的方法,其中所述ANN包括多个神经元,神经元之间的连接关系通过连接权值矩阵表示,所述方法包括:剪枝步骤,将经训练的第一连接权值矩阵的所有N个权值中的n个不重要权值设为零;不带掩码重训步骤,在不强制约束任何权值为零的情况下重新训练经剪枝的第二连接权值矩阵;掩码生成步骤,根据经不带掩码重训的第三连接权值矩阵生成矩阵形状掩码;以及带掩码重训步骤,使用所述掩码矩阵对所述第三连接权值矩阵进行重新训练。通过根据不带掩码重训得到的矩阵来生成掩码,就能够对剪枝过程中的误剪进行修正和恢复,从而在矩阵稀疏化降低计算量的同时,保证模型准确度。

根据本发明的另一个方面,根据不带掩码重训得到的矩阵调整掩码可以是将所述掩码中与矩阵中绝对值最小的n个权值对应位置上的值置零,由此在压缩率不变的情况下进行更为合理的剪枝,从而尽可能地提升准确度。上述调整也可以是压缩率可变的调整,例如以预定阈值决定置零位,从而调整压缩率。

根据本发明的又一个方面,可以重复不带掩码重训、掩码生成和带掩码重训步骤直到获得所述连接权值矩阵的优化解为止。

根据本发明的在一个方面,还提出了一种调整人工神经网络(ANN)的装置,其包括剪枝装置、不带掩码重训装置、掩码生成装置和带掩码重训装置来实施本发明的调整方案。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了DNN的典型结构图。

图2示出了LSTM神经网络模型的示意图。

图3示出了通过剪枝-重训进行网络压缩的流程示意图。

图4示出了如图3所示剪枝前后的节点和连接变化。

图5示出了一种用于神经网络压缩的剪枝-重训方法。

图6示出了相比于图5增加了不带掩码重训步骤的剪枝-重训方法。

图7示出了不带掩码重训改善网络精度的例子。

图8示出了使用动态掩码调整神经网络的示意性流程图。

图9示出了基于图8的调整方案的优选实现。

图10示出了在保持压缩率不变的情况下动态调整掩码的一个例子。

图11示出了在无需保持压缩率不变的情况下动态调整掩码的一个例子。

图12示出了能够执行本发明的ANN调整方案的调整装置的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本申请中,将主要以用于语音识别的长短时记忆(LSTM)模型为例来说明本发明对ANN的改进。本申请的方案适用于各种人工神经网络,包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN),尤其适用于属于RNN的一种的上述LSTM模型。

神经网络压缩的基本概念

人工神经网络(ANN)是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。在神经网络中存在有大量彼此连接的节点,也称“神经元”。每个神经元通过某种特定的输出函数(也称为“激活函数”)来处理来自其它相邻神经元的加权输入值。而各神经元之间的信息传递强度则用所谓“权值”来定义。算法会不断自我学习,调整这些权值。

早期的神经网络只有输入和输出层两层。由于无法处理复杂的逻辑,其实用性受到很大限制。深度神经网络(DNN)通过在输入和输出层之间添加隐藏的中间层,大大提升了神经网络处理复杂逻辑的能力。图1示出了DNN模型示意图。应该理解的是,在实际应用中的DNN可以有比图1所示复杂得多的大型结构,但其基本结构仍然如图1所示。

语音识别是将语言的模拟信号顺序映射到一个具体的单词集合上。近年来,人工神经网络的方法在语音识别领域取得的效果已经远远超出了所有传统方法,正在成为全行业的主流。其中,深度神经网络有着极为广泛的应用。

循环神经网络(RNN)是一种常用的深度神经网络模型,不同于传统的前向神经网络,循环神经网络引入了定向循环,能够处理那些输入之间前后关联的问题。在语音识别中,信号的前后关联很强,例如识别句子中的单词,和该单词前面的单词序列关系十分紧密。因此,循环神经网络在语音识别领域有着非常广泛的应用。

为了解决对长期信息的记忆问题,Hochreiter&Schmidhuber于1997年提出了长短时记忆(LSTM)模型。LSTM神经网络是RNN的一种,将普通RNN当中简单的重复神经网络模块改变为复杂的连接交互关系。图2示出了LSTM神经网络模型的示意图。LSTM神经网络在语音识别中同样取得了非常好的应用效果。

在设计和训练深度神经网络时,大的网络规模有着更强的表达能力,能够表示网络输入特征与输出之间的较强的非线性关系。但是,这种规模较大的网络在学习实际想要的有用模式时,更容易受到训练集中噪声的影响,使得学习到的模式与实际期望有所偏差。因为这些训练集上的噪声是普遍且因数据集而异的,所以在数据集上训得的网络有可能在噪声影响下过拟合。

通过近年来的飞速发展,神经网络的规模不断增长,先进的神经网络可达数百层、数亿个连接。由于规模日益增大的神经网络会消耗大量的计算和访存资源,因此模型压缩就变得极为重要。

在神经网络,尤其是深度神经网络中,神经元的连接关系在数学上可以表示为一系列矩阵。经过训练后的网络虽然预测准确,但其矩阵都是稠密的,即“矩阵中充满了非零元素”。随着神经网络变得愈发复杂,稠密矩阵的计算会消耗大量的存储和计算资源。由此导致的低速度和高成本使得移动端的推广应用面临着巨大的困难,从而极大地制约了神经网络的发展。

近年来的研究表明,通过训练得到的神经网络模型矩阵中,仅有部分权值较大的元素代表着重要连接,而其他权值较小的元素可以被移除(置为零),与此同时对应的神经元也被剪枝(pruning)。剪枝后的网络精度会下降,但是可以通过重训(finetune),对仍然保留在模型矩阵中权值的大小进行调整,从而减小精度损失。模型压缩可以将神经网络中的稠密矩阵稀疏化,能够有效的降低存储量、减少计算量,在保持精度的同时实现加速。模型压缩对于专用的稀疏神经网络加速器而言,显得极为重要。图3示出了通过剪枝-重训进行网络压缩的流程示意图。图4则相应示出了剪枝前后的节点(神经元)和连接(突触)的分布情况。

剪枝后模型矩阵的稀疏化程度可以使用压缩率来表示。目前一般采用敏感度分析的方法来选择压缩率。同一神经网络中的不同矩阵,在相同的压缩率下,对网络精度变化产生的影响是迥异的。例如,单层LSTM神经网络包括Wgx、Wix、Wfx、Wox、Wgr、Wir、Wfr、Wor、Wrm9个矩阵,将其中的矩阵Wrm压缩到10%会导致网络精度的急剧下降(即,词错误率急剧上升),而将矩阵Wor压缩到10%网络的精度基本不变。因此,现有技术一般是采用敏感度分析,测试网络中各个矩阵在不同压缩率下的网络精度,从而选取合适的压缩率作为初值,并在此基础上微调,作为最终的压缩率。例如,对单层LSTM神经网络中的每个矩阵,分别按照0.1,0.2,...,0.9共9种稠密度进行压缩,测试网络的词错误率(WER),选取压缩后相比于压缩前|△WER|小于指定阈值对应的最小稠密度作为该矩阵的稠密度初值。这种参数扫描的间隔比较大,可以称作粗粒度选取方式。

神经网络的掩码压缩重训

压缩深度神经网络实质上是对深度神经网络中权值矩阵的稀疏化。稀疏化后权值矩阵会有许多值为0的元素。在进行运算的过程中,这些零值元素可以不参与运算,减少了需要的运算次数,从而可以提升运算速度。同时,如果一个网络稀疏化程度较高(如稠密度15%),那么可以只存储非零的权值,从而可以减少存储空间。但是因为压缩过程去除了相当一部分权值,整个深度神经网络的准确度会下降许多,需要通过重训阶段,调整仍然保留在网络权值矩阵中的权值的大小,重新提高深度神经网络的模型准确度。但是通常而言,由于剪枝对某些权值清零相当于在解空间加了新的约束,所以重新调整收敛到新的局部最优点后精度虽然提升,但是相比剪枝前的深度神经网络,精度仍有所下降。

依据现有的重训方式,在剪枝时生成矩阵形状掩码(记为M),掩码是一些0-1矩阵,分别对应LSTM中的权值矩阵。这些矩阵形状掩码矩阵记录着压缩后矩阵非零元的分布信息,为1的元素表示相应权值矩阵对应位置元素保留,而为0的元素表示相应权值矩阵对应位置元素置为0。应该理解的是,引入上述0-1矩阵掩码的目的在于根据中该掩码中各元素的值对权值矩阵中对应的权值加以约束(即,置零或是保持不变),而该矩阵形状掩码则是实现上述约束的一种便于计算机实现的手段。换句话说,倘若在具体实践中以其他形式实现了权值矩阵中对应权值的置零,也可以看作是使用矩阵掩码的同等效果的实现。

现具体参考语音识别中LSTM深度神经网络的压缩过程,来阐述神经网络的掩码压缩原理。将剪枝结果存储为矩阵形状掩码,通过在重训阶段合理使用矩阵形状掩码,在保持压缩率不变的基础上尽可能保障深度神经网络的准确率。

1.带掩码重训

对于多个神经元且神经元之间的连接关系通过连接权值矩阵表示的ANN,图5示出了一种用于神经网络压缩的剪枝-重训方法。该方法包括剪枝步骤S510和带掩码重训步骤S520。

在步骤S510,将在前训练得到的权值矩阵中的一个或多个不重要权值设为零,以得到经剪枝的权值矩阵。

在这里,“不重要权值”指代对神经网络模型的准确率影响不大,因而相对不重要的权值。虽然人们采用了各种规则来规定何为不重要权值,例如,根据成本函数的Hessian矩阵来选择不重要权值,但是目前被学术界普遍接受和实验验证的观点是“在权值均值中绝对值较小的那些权值代表的连接是相对不重要的”。“不重要权值”因此优选指代矩阵中绝对值较小的那些权值。

在步骤S520,使用对应于经剪枝的权值矩阵的掩码(即,零值位置对应于权值矩阵剪枝位置的0-1矩阵)重训权值矩阵。

如下将结合公式对如上带掩码重训方案进行描述。

记对网络进行重新训练用以优化每帧交叉熵的过程为:

nneto=Rmask(nneti,M) (1)

其中nneti为剪枝后的输入网络,nneto为输出网络。Rmask表示一种带掩码训练过程。在该过程中只对没有剪去的权值进行更新(是否剪去的信息记录在M中)。通过这一过程,仍然保留在网络权值矩阵中的权值的值得到了调整,深度神经网络逐渐收敛到新的局部最优解。

记M⊙nnet0为对nnet0中每个矩阵,用M中对应掩码矩阵进行点乘。记nnet0为待压缩的网络,则压缩流程如下:

(a)nnet0→M (对输入网络剪枝,得到剪枝掩码M)

(b)nneti=M⊙nnet0 (输入网络与掩码点乘,完成剪枝)

(c)nneto=Rmask(nneti,M) (对剪枝后的网络带掩码重训,得到nneto)

2.不带掩码重训+带掩码重训

相比于根据图5所述的流程,可以如图6所示,在剪枝步骤S610和带掩码重训步骤S620之间增加一个不带掩码重训步骤S611,即,可以是在(b)与(c)的运算之间增加一个不带掩码重训环节,该环节如下:

nneto=Rno_mask(nneti) (2)

所谓不带掩码重训是指在重训过程中去除剪枝形状的约束,允许已被剪枝的权值重新生长。一种直观的实现方式可以是,将剪枝后的网络权值作为重训时输入网络的初始值,那些已被剪去的权值相当于输入初始值为0。因此,将剪枝后的网络权值作为重训的输入网络初始值相当于让网络从一个较优的出发点开始迭代,让相对重要的权重有相对更大的初始权值,从而使网络更有可能减少噪声带来的干扰,学习到有价值的模式。理论和实践均说明该重训生成的新网络相比于剪枝前的网络,准确度会有所提高。

但是因为不带掩码,所以训练后生成的实际是一个稠密网络,无法达到压缩的目的,所以需要再次将那些原本该剪去的权值置零。而这会使得网络准确度重新下降。为了恢复准确度,需要再次进行带掩码训练,使得网络在加剪枝约束后的解空间中收敛到一个局部最优点,保证剪枝后的深度神经网络准确度。

因此,优化后新的压缩流程如下,其中nnet0为待压缩网络,Rmask为带掩码重训,Rnomask为不带掩码重训。

(a) (输入网络剪枝,得到剪枝掩码M)

(b) (输入网络与掩码点乘,完成剪枝)

(c) (对剪枝后的网络不带掩码重训,得到)

(d) (对再次点乘M,去除已剪枝处重新生长出的权值)

(e) (对点乘后的网络进行带掩码重训,得到压缩后的网络)

通过不带掩码重训,对网络的准确度先进行提升从而在较大程度上解决了压缩网络后准确度普遍下降的现象。从工程实践结果来看,在有些情况下,使用该优化后的方法使得压缩后网络的精度甚至能够有所提高。

在工程实践中,通常可以优选地重复(d)-(e)的运算(如图6中从步骤620返回步骤611的箭头所示),以便使得网络收敛到一个更佳的局部最优点。其中迭代依据主要环节为:

迭代停止条件为其中对于针对语音识别的LSTM网络模型而言,e(nnet0)可以指代nnet0的错误率。

图7示出了不带掩码重训改善网络精度的例子。该图是针对某一数千小时中文语音数据集上训练出的LSTM深度神经网络使用加入不带掩码重训步骤进行压缩的整个流程和相关结果。图中横坐标为操作步骤,纵坐标为衡量深度神经网络准确度的一个指标,即,错词率(WER)。WER越低说明网络准确度越高。黑色线代表了待压缩网络的初始错词率,灰色线代表了三轮压缩的过程。虚线所指为每轮压缩时第一次进行剪枝的结果,可见每次剪枝后网络错词率上升。剪枝后先进行不带掩码训练,网络错词率下降,而后再剪枝,错词率又上升,再带掩码训练,错词率重新下降。4,8,12分别对应三轮压缩的结果,可见准确度相比初始有所提升。

神经网络的动态掩码压缩

对于较为复杂的神经网络模型,尤其是多层网络模型而言,各层的网络模型矩阵相互关联。因而会存在一些重要的连接在权值上表现得比较小,而当剪去大多数不重要的连接并重训后重新表现得比较大。这些权值在剪枝中相当于被误剪了。在上述结合图6的压缩流程中,针对剪枝后精度下降的网络进行重训时,仍然使用剪枝掩码M,即,只会调整仍然保留在模型矩阵中的权值的大小,因此无法对误剪现象进行恢复。这会导致网络模型可能收敛到一个不佳的局部最优点,从而对压缩率和模型准确度都带来影响。针对上述重训过程只是在剪枝基础上重新寻找局部最优,而未尝试对误剪等进行修正的情况,可以通过在重训阶段加入对存储剪枝结果的矩阵形状掩码的动态调整,对剪枝过程中的一些误剪行为进行修正和恢复,以达到保证甚至提高剪枝后的人工神经网络(例如,LSTM)性能的目标。

图8示出了使用动态掩码调整神经网络的示意性流程图。如图8所示,一种调整人工神经网络的方法包括剪枝步骤S810、不带掩码重训步骤S811、掩码生成步骤S812和带掩码重训步骤S820。

在步骤S810,将经训练的第一连接权值矩阵的所有N个权值中的n个不重要权值设为零。不重要权值优选可以是所有N个权值中绝对值最小的n个权值。在步骤S811,在不强制约束任何权值为零的情况下重新训练经剪枝的第二连接权值矩阵。在步骤S812,根据经不带掩码重训的第三连接权值矩阵生成矩阵形状掩码。在步骤S820,使用所述掩码矩阵对第三连接权值矩阵进行重新训练。应该理解,在此的“第一”、“第二”和“第三”旨在对所指各项加以区别,而非以任何其他意义进行限制,也并非要与例如公式中的网络编号相对应。另外,虽然将步骤S812称为掩码生成步骤,但由于在一个实施例中可以将剪枝步骤S810理解为使用剪枝掩码进行的剪枝步骤,因此步骤S812也可以看作是根据第三权值矩阵动态调整已有掩码(例如,剪枝掩码)的掩码调整步骤。

对于图6的调整方法,剪枝掩码M是保持不变的。这就意味着只要某部分权值一旦被当作不重要权值并剪去,则永远无法再恢复,即便某一权值在一次重新训练后变的很大(说明剪枝后该连接表现的很重要)也是如此。为了修正这一问题,即恢复对那些重训后表现的比较重要的元素的误剪,需要对掩码进行动态调整(为了对动态调整的掩码加以区别,此处将剪枝掩码M改用剪枝掩码M0表示):

(动态调整M0,得到M1)

换句话说,不同于使用直接使用剪枝掩码M来进行带掩码重训,图8的方法需要根据在前不带掩码重训的结果动态调整带掩码重训中使用的掩码。

增加此动态调整后的压缩流程如下:

(a) (输入网络剪枝,得到剪枝掩码M0)

(b) (输入网络与掩码点乘,完成剪枝)

(c) (对剪枝后的网络不带掩码重训,得到)

(d) (动态调整M0,得到M1)

(e) (对点乘M1,去除调整需要剪枝处生长出的权值)

(f) (对点乘后的网络进行带掩码重训,得到压缩后的网络)

在工程实践中,可以重复上述不带掩码重训步骤、掩码生成步骤和带掩码重训步骤直到获得所述连接权值矩阵的优化解为止。即,可以重复(c)-(f)的运算(如图9中从步骤920返回步骤911的箭头所示),以便使得网络收敛到一个更佳的优化解,例如局部最优点。每次上述重复都需要重新调整一次矩阵掩码,即,另外,在实际工程中出于时间成本等的考虑,重训有时并非收敛到局部最优,而是达到预定的准确度要求下的优化解即可。

上述迭代也可以是更小范围内的迭代。例如,可以进行多次不带掩码的重训计算,直到得到优化的不带掩码重训解。随后再在进入后续的掩码动态调整步骤。同样地,可以使用同一个经动态调整的掩码进行多次带掩码重训计算,直到得到优化的带掩码重训解为止。上述不带掩码的多次重训计算和带掩码的多次重训计算都可以看作是分别包括在单次不带掩码重训步骤和带掩码重训步骤内。

在一个实施例中,掩码生成步骤可以将掩码中与第三连接权值矩阵中绝对值最小的n个权值对应位置上的值置零。

现使用公式直观地给出上述动态调整方式的一个例子:记mat为中任一权值矩阵,mk为对应Mk中的掩码矩阵。记mk中0值元素个数为n。生成一个与Mk相同规格的全1矩阵M′k+1,对mat中的所有元素进行从大到小排序,将最小n个元素对应M′k+1相应位置的元素置0即可得到Mk+1。此动态调整过程会将掩码中0元素转移到那些权值网络中权值最小的地方,并保证压缩率不变。该方法实际上是将掩码外较小的权值与掩码内较大的权值做掩码替换。

图10示出了在保持压缩率不变的情况下动态调整掩码的一个例子。图中灰标表示掩码对应位置,网格和斜线背景代表掩码调整。如图所示,中间元素0.3开始时因为权值小被剪去,但是重训后变大(0.7),说明该元素所代表的连接是重要的。下中元素在开始时被保留但在重训后变小(0.3),说明该连接实际不重要。此时通过上述优化策略,可以恢复中间元素,剪去下中元素。

可以依据其他方式动态调整上述掩码。目前学术界尚未有广泛认可的压缩率选取规则,所以一般都是采取参数扫描等粗粒度地选取方式。这就意味着选取的压缩率本身未必合适,因而优选可以在重训环节对压缩率进行微调。具体地,如果在重训后掩码矩阵1值对应神经网络权值矩阵中的元素有相当一部分,和在重训后掩码矩阵0值对应神经网络权值矩阵中的元素的相当一部分,在权值大小上相差很小,那就意味着剪掉的这些权值和未剪的那些重要性基本一致,此时就不应该再减去这些权值。

于是,在一个实施例中,掩码生成步骤将所述掩码中与所述第三连接权值矩阵中绝对值小于权重阈值的权值对应位置上的值置零。该权重阈值可以是根据经验值预先确定的,也可以根据第三权值矩阵内的元素值求得。优选地,将第三连接权值矩阵的全部N个权值按绝对值进行从大到小排序,权值阈值可以是排序序列中前(N-n)个权值的均值,即,是除去要置零的n个元素之外的其他全部元素的均值。权值阈值也可以是排序序列中第(N-2n+1)个权值起的n个权值的均值,即,除去要置零的n个元素之外的最小n个元素的均值。上述阈值也可以是基于上述均值的值,例如与上述均值相当,或是成比例的值。

现使用公式直观地给出上述动态调整方式的一个例子:记mat为中任一权值矩阵,mk为对应Mk中的掩码矩阵。记mk中0值元素个数为n,总元素个数为N。生成一个与Mk完全相同的矩阵M′k+1。记选取压缩率的步长为∈。对mat中的所有对应mk中1值元素的元素进行从大到小排序,并取最小∈N个元素xi(i=1,2,…,∈N),计算其均值:

对所有满足||x′i|-xavg|<σ的mat中元素x′i对应M′k+1相应位置置1,即可得到Mk+1。该方法实际上是恢复那些大小接近xavg的权值。

图11示出了在无需保持压缩率不变的情况下动态调整掩码的一个例子。图中灰标表示掩码对应位置,网格和斜线背景代表掩码调整。如图所示,中间元素(0.5)最开始因为权值小被剪去,但是重训后变大(0.7),和掩码外一些元素大小相同,说明该元素所代表的连接是重要的。由于此时掩码外元素也没有变得很小。因此应对压缩率进行调整。于是可以利用上述的阈值比较方案,实现对中间元素的恢复。

虽然图10和图11分别示出了置零元素替换和恢复的情况,但应该理解的是,根据上述各动态调整方式之一或是任意结合,还可以同时出现置零元素替换和恢复,或是进一步删除非置零元素的状况。另外,虽然上文多以权值的绝对值大小(有时简单表述为权值大小)来表征具体权值元素的重要与否,但是也可以根据其他重要性规则来对权值矩阵进行剪枝和掩码动态调整,这些变化都位于本发明的权利要求所包括的范围之内。

图12示出了能够执行本发明的ANN调整方案的调整装置的示意图。该ANN调整装置1200可以包括剪枝装置1210、不带掩码重训装置1211、掩码生成装置1212和带掩码重训装置1220。

剪枝装置1210可以用于将经训练的第一连接权值矩阵的所有N个权值中的n个不重要权值设为零。不带掩码重训装置1211可以在不强制约束任何权值为零的情况下重新训练经剪枝的第二连接权值矩阵。掩码生成装置1212根据经不带掩码重训的第三连接权值矩阵生成矩阵形状掩码。带掩码重训装置1220则可使用所述掩码矩阵对所述第三连接权值矩阵进行重新训练。

类似地,不带掩码重训装置1211、掩码生成装置1212和带掩码重训装置1220可以重复操作直到获得所述连接权值矩阵的优化解为止。另外,不带掩码重训装置1211和带掩码重训装置1220本身也可以在内部分别针对多个权值矩阵(如果有的话)进行多次重训计算,直到优化到可以进入下一装置的动作或是结束重训位置。

掩码生成装置1212可以将所述掩码中与所述第三连接权值矩阵中绝对值最小的n个权值对应位置上的值置零,可以根据权值阈值进行元素置零。权重阈值可以基于第三连接权值矩阵求得。如果将第三连接权值矩阵的权值按绝对值进行从大到小排序,权值阈值可以根据如下之一的均值设定或是该均值本身:排序序列中前(N-n)个权值的均值;排序序列中第(N-2n+1)个权值起的n个权值的均值

该ANN调整装置1200也可以用于执行根据本发明图5-6所述的调整方案。例如,使用剪枝装置1210和带掩码重训装置1220执行图5的方案,或是使用剪枝装置1210、不带掩码重训装置1211和带掩码重训装置1220来执行图6所示的方案。

文中的带掩码和不带掩码重训(finetune)指代在已有的训练基础上继续训练,可以理解为“微调”,而非对神经网络从头开始的重新训练(retrain)。本发明针对剪枝后网络的局部优化解的调整显然应被理解为是在已有训练基础上的继续训练。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1