一种动态策略定点化训练方法及装置制造方法及图纸

技术编号:17265780 阅读:14 留言:0更新日期:2018-02-14 13:25
本申请公开一种用于深度神经网络的基于动态定点参数的定点训练方法及装置。更具体地,针对深度神经网络(例如,LSTM神经网络)的计算结构,提出一种相应的定点训练方法,在神经网络的训练过程中,使用定点的方式进行前向计算,在若干训练周期之内,将网络精度达到浮点计算的水平。

A dynamic strategy fixed-point training method and device

The present application discloses a fixed-point training method and device based on dynamic fixed-point parameters for a deep neural network. More specifically, the depth of the neural network (for example, LSTM neural network) for calculating the structure, put forward a point of the corresponding training methods, in the training process of the neural network, using fixed-point way forward calculation, within certain training period, will reach the level of precision floating-point computation network.

【技术实现步骤摘要】
一种动态策略定点化训练方法及装置专利
本申请涉及一种用于深度神经网络的定点训练方法及装置。更具体地,本申请涉及一种用于LSTM神经网络的基于动态定点参数的定点训练方法及装置。
技术介绍
人工神经网络人工神经网络(ArtificialNeuralNetworks,ANNs),又称神经网络(NNs),是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。近年来,神经网络得到快速发展,被广泛应用于诸多领域,如图像识别、语音识别、自然语言处理、基因表达、内容推送等等。在神经网络模型,存在大量彼此连接的节点(也称“神经元”)。每个神经元,通过某种特定的输出函数(也称“激活函数”(ActivationFunction))计算处理来自其它相邻神经元的加权输入值,并且神经元之间的信息传递强度用“权值”来定义。算法通过自我学习,调整该权值。早期的神经网络只有输入和输出层两层,无法处理复杂的逻辑,限制了其实用性。如图1所示,深度神经网络(DeepNeuralNetwork,DNNs)通过在输入和输出层之间添加隐藏的中间层,有效提升了网络在处理复杂问题时的表现。为了适应不同的应用场景,深度神经网络进而衍生出多种不同的结构。例如,循环神经网络(RecurrentNeuralNetworks,RNNs)是一种常用的深度神经网络模型。不同于传统前向神经网络(Feed-forwardNeuralNetworks),循环神经网络本身具有记忆性,神经元既可以从上一层神经元获取信息,又可以从自身所在的隐层获取信息,这使其能够广泛应用于与时序相关的问题处理上。深度神经网络的应用包括“训练”(Training)、“推断”(Inference)两个过程。训练神经网络旨在提升网络的学习能力。输入特征通过前向传播过程计算预测结果,该计算结果与标准值比较后将残差通过反向传播回传,并将比较结果用于更新网络权值参数,从而达到修正网络的目的。神经网络训练完成后,可以将训练好的神经网络应用到实际场景中,即推断,在该过程中,根据输入特征通过前向传播过程计算得到合理的预测结果。通过近几年的迅速发展,神经网络的规模不断增长,已公开的比较先进的神经网络可达数百层、数亿个连接,属于计算和访存密集型应用。在神经网络逐渐变大的情况下,神经网络模型的压缩变得极为重要。此外,由于压缩后的神经网络模型的精度可能下降,因此,需要对压缩的神经网络进行重训(Finetuning),以使精度恢复至所需水平。深度神经网络的压缩分为网络稀疏化和低比特量化两部分。一方面,深度神经网络中,神经元的连接关系在数学上可以表示为一系列矩阵。经过训练后的网络虽然预测准确,但其矩阵都是稠密的,即“矩阵中充满了非零元素”,从而导致大量的存储和计算资源被消耗。研究表明,在通过训练得到的神经网络模型矩阵中,仅有部分权值较大的元素代表着重要连接,而其他权值较小的元素可以通过剪枝(Pruning)操作被移除(置为零)。通过将神经网络中的稠密矩阵稀疏化,能够有效的降低存储量、减少计算量。另一方面,深度神经网络中的权重在传统硬件平台GPU上的运算均使用32比特(bit)浮点数表示,这样的多比特参数与高精度导致了大量的存储和计算资源被消耗。研究表明,通过低比特的位宽量化矩阵权重,并以定点数替代浮点数进行前向计算,可以有效降低网络的计算与存储资源消耗。语音识别SpeechRecognition语音识别是将语言的模拟信号顺序映射到一个具体的单词集合上。利用传统统计方法进行语音识别的系统首先对语音输入进行特征提取,随后通过解码器输出识别结果。具体地,前端的特征提取包括信号处理与模型构建两个模块:信号处理包括语音活动检测、预处理、特征提取以及特征变换等步骤;模型构建则通过隐马尔科夫模型(HiddenMarkovModel,HMM)进行建模计算对应文本的概率。后端的解码器则包括解码网络构建以及最优路径搜索,结合声学模型以及语言模型给出最终的识别结果。近年来,人工神经网络在语音识别领域有着非常广泛的应用。其中,深度学习的模型则主要被应用于后端的声学输出概率的预测上。语音识别过程中一个关键问题是信号的前后关联性很强,例如识别句子中的单词,和该单词前面的单词序列关系十分紧密。深度神经网络,例如循环神经网络(RNN)通过引入定向循环,解决了输入之间前后关联的问题,因此在语音识别中有着极为广泛的应用。图2示出了一种使用神经网络的语音识别引擎的例子。在图2的模型中,利用深度学习模型来计算语音输出概率,即输入语音串与各匹配候选之间得相似度预测。图3a和图3b进一步示出了应用于图2的语音识别引擎的深度学习模型。其中,图3a的深度学习模型显示了包含CNN(卷积神经网络)、LSTM(长短时记忆模型)、DNN(深度神经网络)、Softmax等模块。图3b的深度学习模型使用了多层长短时记忆(LSTM)模型。LSTM(长短时记忆)模型在语音识别领域,为了解决对长期信息的记忆问题,Hochreiter&Schmidhuber于1997年提出了长短时记忆(LongShort-TermMemory,LSTM)模型。LSTM神经网络是RNN的一种。与DNN不同,RNN是时间依赖型的。具体而言,时刻T的输入依赖于时刻T-1的输出,即,当前帧的计算需要前一帧的计算结果。进一步地,LSTM神经网络将普通RNN当中简单的重复神经网络模块改变为复杂的连接交互关系。LSTM神经网络在语音识别中取得了非常好的应用效果。关于LSTM的更多信息,可以参见如下文章:SakH,SeniorAW,BeaufaysF.Longshort-termmemoryrecurrentneuralnetworkarchitecturesforlargescaleacousticmodeling[C]//INTERSPEECH.2014:338-342,SakH,SeniorA,BeaufaysF.Longshort-termmemorybasedrecurrentneuralnetworkarchitecturesforlargevocabularyspeechrecognition[J].arXivpreprintarXiv:1402.1128,2014.图4示出了在语音识别领域中使用的一种LSTM网络模型。在图4所示的LSTM的结构中,各个参数的意义如下:-i、f、o分别代表三个门,即输入门(inputgate)、遗忘门(forgetgate)以及输出门(outputgate),状态变量单元(Cell)对信息进行长时间记忆,g为单元的特征输入;-实线代表上一帧的输出;-每个门有一个权值矩阵,t时刻输入与t-1的输出经过门时的计算量较大;-虚线代表peephole,peephole以及三个叉乘符号对应的操作均为向量与对角矩阵的乘法,计算量较小。图5示出了在语音识别领域中使用的一种改进的LSTM网络模型。如图5所示,为了减小LSTM层的计算量,额外引入一个投影层用于降维。图5对应的计算公式为:it=σ(Wixxt+Wiryt-1+Wicct-1+bi)ft=σ(Wfxxt+Wfryt-1+Wfcct-1+bf)ct=ft⊙ct-1+it⊙g(Wcxxt+W本文档来自技高网...
一种动态策略定点化训练方法及装置

【技术保护点】
一种浮点神经网络的定点训练方法,包括:神经网络定点步骤,用于对浮点神经网络进行定点,以获得相应的定点神经网络;定点参数确定步骤,包括:使训练数据集的当前数据输入经过所述定点神经网络并进行浮点前向计算,以获得当前临时定点参数;比较所述当前临时定点参数与对应于在前数据输入的在前定点参数,并选择其中较优的定点参数作为当前数据输入的定点参数;定点前向计算步骤,使当前数据输入再次经过所述定点神经网络并根据所述定点参数进行定点前向计算;以及神经网络更新步骤,根据所述定点前向计算的计算结果来更新浮点神经网络。

【技术特征摘要】
1.一种浮点神经网络的定点训练方法,包括:神经网络定点步骤,用于对浮点神经网络进行定点,以获得相应的定点神经网络;定点参数确定步骤,包括:使训练数据集的当前数据输入经过所述定点神经网络并进行浮点前向计算,以获得当前临时定点参数;比较所述当前临时定点参数与对应于在前数据输入的在前定点参数,并选择其中较优的定点参数作为当前数据输入的定点参数;定点前向计算步骤,使当前数据输入再次经过所述定点神经网络并根据所述定点参数进行定点前向计算;以及神经网络更新步骤,根据所述定点前向计算的计算结果来更新浮点神经网络。2.根据权利要求1所述的方法,还包括:迭代执行所述神经网络定点步骤、定点参数确定步骤、定点前向计算步骤和神经网络更新步骤,直到浮点神经网络达到期望精度。3.根据权利要求1所述的方法,所述定点参数包括:用于表示参与浮点数的定点数的总比特数和小数位长。4.根据权利要求1所述的方法,所述神经网络定点步骤包括:利用浮点数转定点数法则来定点所述浮点神经网络的以浮点数表示的权重参数。5.根据权利要求1所述的方法,其中,在所述定点参数确定步骤中,选择小数位长较短的定点参数作为较优定点参数。6.根据权利要求1所述的方法,其中,在所述定点前向计算步骤包括:使用所述定点参数来定点作为前向计算的输入的训练数据集的数据输入以及所述前向计算的中间计算结果。7.根据权利要求1所述的方法,其中,所述神经网络更新步骤还包括:比较所述定点前向计算的计算结果与标准值以获得损失值;和根据所述损失值计算浮点梯度,并根据所述浮点梯度更新浮点神经网络。8.根据权利要求1所述的方法,其中,所述方法用于对训练好的浮点神经网络进行定点化重训。9.根据权利要求1所述的方法,其中,所述方法用于对初始浮点神经网络进行定点化训练。10.根据权利要求1所述的方法,其中,所述浮点神经网络是LSTM神经网络。11.根据权利要求1所述的方法,其中,所述训练数据集是语音数据集。12.一种浮点神经网络的定点训练方法,包括:神经网络定点步骤,用于对浮点神经网络行定点,以获得相应的定点神经网络;第一前向计算步骤,用于使训练数据集的当前数据输入通过所述定点神经网络并进行浮点前向计算,以获取中间计算结果的动态范围,从而获得当前临时定点参数并存储;定点参数确定步骤,用于...

【专利技术属性】
技术研发人员:李鑫孟通
申请(专利权)人:北京深鉴科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1