一种多机制混合的递归神经网络模型压缩方法与流程

文档序号:13575443阅读:290来源:国知局

本发明涉及计算机及电子信息技术领域,特别是一种多机制混合的递归神经网络模型压缩方法。



背景技术:

递归神经网络有着强大的非线性拟合能力,其天然的递归结构十分适用于建模序列数据,如文本、语音和视频等。目前,递归神经网络模型在自然语言处理领域,尤其是在语音识别和机器翻译上已经取得了接近甚至超过人类的效果或准确率;通过结合增强学习,递归神经网络在机器人自适应控制和学习领域也有广泛的应用前景。这些技术是实现智能人机交互所必须的,但是在嵌入式设备上运行递归神经网络模型存在着诸多问题。一方面,递归神经网络模型需要存储大量的参数,而且计算量巨大;另一方面,嵌入式系统所能提供的存储资源和计算能力十分有限,无法满足模型存储和计算的需求,实时性和功耗上也面临着诸多挑战。因此,有必要通过一些模型压缩技术减少递归神经网络的模型参数以减少模型的存储需求,并降低模型的计算复杂度。

现有的模型压缩技术可以粗略归为两大类,一类不减少模型参数个数,但可以减少参数存储所需要的空间。如通过剪枝使参数矩阵变稀疏,而后可通过特殊的格式存储稀疏参数矩阵;也可采用基于量化的网络训练算法,减少存储每个参数需要的比特。另一类是通过对参数矩阵施加特殊的约束减少参数个数或是减少计算复杂度,如通过哈希映射将网络参数限制为几种特殊的值,存储时存储值及每个参数所属的类别;或是将参数矩阵限制为一些结构化矩阵,如托普利兹矩阵,不但可以减少存储空间,也可以通过快速算法减少计算的时间复杂度。

目前已有的针对递归神经网络的模型压缩方法仍有较多的提升空间,可以实现的压缩效果十分有限;混合使用不同的模型压缩方法虽然可以获得更好的压缩率,但直接混合会严重地损失模型的精度。探索更好的模型压缩方法及不同模型压缩方法间结合的方法,在尽量不损失网络模型精度的条件下最大化模型压缩率,仍然是一个函待解决的问题。



技术实现要素:

发明目的:

本发明所要解决的技术问题是针对递归神经网络无法适应嵌入式系统的存储资源和计算能力,提出多种高效的模型压缩机制及混合方法,使递归神经网络在嵌入式系统上的应用成为可能。

技术方案:

为了解决上述技术问题,本发明公开了一种多机制混合的递归神经网络模型压缩方法,其特征在于,包括以下步骤:

步骤一,在初始训练阶段,根据实际需要灵活结合循环矩阵约束和前向激活函数近似压缩递归神经网络模型;

步骤二,在所述步骤一的基础上,增加混合量化机制进行递归神经网络模型的重训练,进一步提高模型的压缩率;

所述步骤一包括以下步骤:

步骤(11),使用循环矩阵约束,针对递归神经网络中不同参数矩阵对误差敏感程度的差异,将对误差不敏感的部分参数矩阵限制为循环矩阵;

步骤(12),若步骤(11)所选参数矩阵非方阵,则通过缺失部分补零或拼接的方式使其满足循环矩阵需为方阵的约束,并更新后向梯度传播算法使递归神经网络模型可以进行循环矩阵的批量训练;

步骤(13),使用前向激活函数近似,进一步更新后向梯度传播算法,使得神经网络模型在前向运算时将网络中的非线性激活函数替换为硬件友好的线性函数,同时保持后向梯度更新过程不变;

所述步骤二包括以下步骤:

步骤(21),分析步骤一训练出的递归神经网络模型中不同参数矩阵对误差敏感程度的差异,并结合递归神经网络模型在结构上的特点,将模型中的参数分为多组,每组选用不同的量化方法;

步骤(22),根据步骤(21)中模型参数的分组情况进行混合量化,并对递归神经网路模型进行重训练以恢复模型精度。

有益效果:

本发明创新性地提出了多种针对递归神经网络的模型压缩方法,同时可通过二次训练机制,弱化不同模型压缩机制间的相互影响,在尽量不损失网络模型精度的条件下最大化模型压缩率,使递归神经网络在嵌入式系统上的应用成为可能。本发明在嵌入式场景下的智能人机交互、机器人决策和控制领域有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1是本发明方法简化流程图。

具体实施方式:

下面详细描述本发明的实施例。因递归神经网络包含多种变体,本实施例将以其中最为基本的递归神经网络为例,旨在用于解释本发明,而不能理解为对本发明的限制。其余递归神经网络变体的实施过程与本实施例基本相同。

拥有m个输入节点和n个输出节点的递归神经网络的典型公式定义为:

ht=f(wxt+uht-1+b),(1)

其中,ht∈rn×1为t时刻递归神经网络的隐状态;xt∈rm×1为t时刻的输入向量;w∈rn×m、u∈rn×n、b∈rn×1为递归神经网络的模型参数,b为偏置项,w和u为参数矩阵;f为非线性函数,常见的有σ和tanh:

如图1所示,对于本发明所述多机制混合的递归神经网络模型压缩方法,其特征在于通过二次训练机制,灵活地结合循环矩阵约束、前向激活函数近似和混合量化等模型压缩方法,同时弱化不同模型压缩机制间的相互影响,在尽量不损失网络模型精度的条件下最大化模型压缩率,包括以下步骤:

步骤一,在初始训练阶段,根据实际需要灵活结合循环矩阵约束和前向激活函数近似压缩递归神经网络模型。

步骤二,在所述步骤一的基础上,增加混合量化机制进行递归神经网络模型的重训练,进一步提高模型的压缩率。

所述步骤一包括以下步骤:

步骤(11),使用循环矩阵约束,优选地针对递归神经网络中不同参数矩阵对误差敏感程度的差异,将对误差不敏感的部分参数矩阵限制为循环矩阵。这里假定m=n,并将参数矩阵w限制为循环矩阵,引入一个元向量w=(w1,w2,…,wn)t,循环矩阵w将由元向量生成:

步骤(12),若步骤(11)所选参数矩阵w非方阵,即m≠n,则需要通过缺失部分补零或拼接的方式使其满足循环矩阵需为方阵的约束。若n<m,可将w扩展为方阵,如在w上增添m-n行,此时计算wxt将得到一个m×1的向量,取前n个值构成的向量即为原始结果;若n>m,一种方法是将w的每一行填补n-m个零,构成一个n×n的方阵,此时w=(w1,w2,…,wm,0,…,0)t,计算时向量xt亦在末尾填补n-m个零。另一种方法是将w分解和扩展成多个m×m子方阵,每个子方阵均使用循环矩阵约束。

做上述变换后,计算过程与m=n时的情况可保持一致,此时需更新后向梯度传播算法使递归神经网络模型可以进行循环矩阵的批量训练。假设a=wxt,w在进行参数更新时实际为更新对应的元向量w,另设x=(x1,x2,…,xn)t,定义:

若e为递归神经网络模型的损失函数,则可以通过链式法则求取进一步可求得参数w的修正项对应的梯度更新为:

w=w+δw.(5)

步骤(13),使用前向激活函数近似,进一步更新后向梯度传播算法,使得神经网络模型在前向运算时将网络中的非线性激活函数替换为硬件友好的线性函数,同时保持后向梯度更新过程不变。表格1给出了三个典型的硬件友好的线性函数,其中hsigm用于近似σ函数,htanh和ptanh用于近似tanh函数,且ptanh的近似精度要好于htanh,普通技术人员可以通过实际需求择优选择适当近似精度的线性函数。该方法的基本原理是用分段函数拟合非线性函数,避免了复杂的非线性操作。方法的一个特别之处在于分段函数的选取。具体而言,应尽量选取硬件友好的分段函数。表格1中所给出的三个分段线性函数在硬件实现时里面所涉及的乘除可通过简单的移位操作实现,从而可以大大地节约硬件资源消耗。

所述步骤二包括以下步骤:

步骤(21),分析步骤一训练出的递归神经网络模型中不同参数对误差敏感程度的差异,并结合递归神经网络模型在结构上的特点,将模型中的参数分为多组,每组选用不同的量化方法。在本实施例中,参数包括w、u、b,且中间变量h也需存储,共四种类型的参数,可分为四组,每组恰对应一种类似的参数。

表格1

表格2

表格2给出了三种优选的量化方法,其中m为待量化的参数,表格右侧数学定义中的操作均为原子级操作,即若m为矩阵,则m>0.5表示对矩阵中每个元素的大小与0.5进行比较。round函数表示将元素裁为与之最接近的整数,sign为符号函数,用于析离元素的正负号。对于三种量化方式,terq将参数的取值限制为-1、0和+1;expq将参数取值范围限制为2的倍数,因而参数的乘法可以用移位操作实现;qm,f为常见的量化方式,将参数量化成m位整数、f位小数外加一位符号位表示的形式。可以判断在一般情况下,不同的量化方式的取值精度为:qm,f>expq>terq。因此,可根据不同参数对误差敏感程度的差异,对误差较敏感的参数使用精度较高的量化,较不敏感的参数可使用精度较低的量化。

应当指出,表格1和表格2中所给例子均旨在用于解释本发明,而不能理解为对本发明的限制。

步骤(22),根据步骤(21)中模型参数的分组情况及相应的误差敏感程度进行混合量化,并对递归神经网路模型进行重训练以恢复模型精度。量化不可避免的会带来精度上的损失,利用神经网络本身对误差的自适应能力,通过重训练可以使模型压缩方法对网络模型精度的影响降至最小。

本发明提供了一种多机制混合的递归神经网络模型压缩方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

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