CN109801621A - 一种基于残差门控循环单元的语音识别方法 - Google Patents
一种基于残差门控循环单元的语音识别方法 Download PDFInfo
- Publication number
- CN109801621A CN109801621A CN201910198058.4A CN201910198058A CN109801621A CN 109801621 A CN109801621 A CN 109801621A CN 201910198058 A CN201910198058 A CN 201910198058A CN 109801621 A CN109801621 A CN 109801621A
- Authority
- CN
- China
- Prior art keywords
- formula
- value
- residual error
- door
- moment
- 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
Abstract
本发明公开了一种基于残差门控循环单元的语音识别方法,在现有的门控循环单元的基础上,结合残差连接以及非饱和激活函数来改进候选隐状态公式,使门控循环网络在不增加参数量的情况下能够不发生网络退化的进行更深层的训练。最后,通过多组对比实验,证明本发明的算法结构的有效性。
Description
技术领域
本发明涉及技术计算机应用领域,具体涉及一种基于残差门控循环单元的语音识别方法。
背景技术
深度学习是一种新兴的技术,被认为是达到更高水平人工智能最有前途的方向之一,众多的领域也因深度学习而得到了巨大的进展。其中,在在语音识别方面,深度学习技术已显著的超过了传统的高斯混合隐马尔可夫模型(Gaussian of Mixture HiddenMarkov Model,GMM-HMM)模型。
由于循环神经网络(Recurrent Neural Network,RNN)能正确捕获长期依赖关系,同时语音是连续的信号,所以在语音识别领域中使用RNN是非常合适的。然而,传统的RNN可能会因为梯度消失和梯度爆炸而产生糟糕的后果。1997年Hochreiter和Schmiduber提出的基于RNN提出了长短期记忆网络(Long Short-Term Memory,LSTM),通过门限互相限制,成功的缓解了传统RNN上的梯度消失和梯度爆炸问题。虽然诸多文献已证明LSTM的有效性,但是其繁杂的门限也增加了网络实现的难度,同时训练也非常耗时,于是在2014年Cho等人提出了LSTM最具代表性的改进,也就是门控循环单元(Gated Recurrent Unit,GRU)。GRU与LSTM有着相似的效果,同时拥有着更简洁的构造和更短的训练耗时。
神经网络的成功主要来自它的深层架构,诸多研究结果表明训练更深层的网络可以增加特征的表征能力,但是训练一个深层的网络是一件困难的事情。对于RNN网络来说,拥有着长时序传输能力使得它相比于卷积神经网络(Convolutional Neural Network,CNN)更难进行深层的训练。对于LSTM、GRU等结构的RNN来说随着训练网络层数的增加,梯度爆炸、梯度消失、网络退化、过拟合等诸多问题也会越来越严重。梯度爆炸可以通过2015年Google提出的批标准化(Batch Normalization)来缓解,或者采用简单的梯度裁剪来避免。但是,想要解决梯度消失、网络退化却十分困难。2015年由Rupesh Kumar Srivastava等人提出高速公路网络(Highway Networks)来缓解梯度消失的问题,但是这种结构却增加了参数量,使算法耗时大大增加。2015年何凯明在CNN中提出了结合残差连接,是2015年深度学习领域最具影响力的成果之一。残差连接技术通过连接跨层的信息使网络能够缓解梯度消失以及网络退化,并且没有增加参数量,大大缓解了梯度消失、网络退化问题的发生。对于残差连接应用于CNN的优秀特性使得很多研究者尝试将其用于循环神经网络中。然而对于门控循环单元的循环神经网络来说,门控循环单元是属于RNN神经网络的变体,不仅具有当前帧的特征参数还拥有时序依赖性的时间参数,所以直接在门控循环神经网络上套用残差连接达到的效果并不理想。
发明内容
针对现有技术的不足,本发明提供了一种基于残差门控循环单元的语音识别方法,包括以下步骤:
步骤1,提取数据的特征值,特征值可以为多种,如MFCC(梅尔频率倒谱系数)、Fbank(滤波器组)等特征形式,具体提取过程可参考开源项目kaldi中的各种特征值标准提取过程;
步骤2,将提取好的特征值做均值方差归一化(Cepstral Mean and VarianceNormalization,CMVN)以及差分处理;
步骤3,使用经过步骤2处理好的特征值训练高斯混合隐马尔科夫模型(Gaussianof Mixture Hidden Markov Model,GMM-HMM),得到训练好的三音素的高斯混合隐马尔科夫模型;
步骤4,建立残差门控循环单元的循环神经网络结构;
步骤5,设置残差门控循环神经网络的全连接层以及分类层;
步骤6,设置残差门控循环神经网络权重初始化方式为正交初始化;
步骤7,为残差门控循环神经网络设置批标准化;
步骤8,设置残差门控循环神经网络的超参数,包括神经元个数、网络层数、批大小、学习率等多个超参数;
步骤9,配置残差门控循环神经网络的损失函数以及优化器;
步骤10,经过残差门控循环神经网络的迭代之后输出模型文件,得到声学模型;
步骤11,将声学模型和语言模型以及发声词典等通过加权有限状态转换器(Weighted Finaite-state Transducer,WFST)静态编译组成搜索网络;
步骤2包括:
步骤2-1,均值方差归一化可以消除数据采集时产生的特征差异较大的问题。均值方差归一化具体做法是使特征的均值为0,方差为1,其计算公式为:
其中,x为数据输入,即提取好的特征值;μ为归一化之前的均值;σ为归一化之前的标准差;Z为归一化之后的数据;
步骤2-2,由于语音信号是时域连续的,步骤1所提供的特征信息只反应了当前帧语音的特性,为了使特征更能体现时域连续性,在特征维度增加前后帧信息的维度。常用的是一阶差分和二阶差分操作,将差分前的特征输入差分运算,得到差分之后的特征。根据如下公式对特征数据进行差分运算:
式中,dt表示第t个一阶差分,Ct表示第t个倒谱系数,Q表示倒谱系数的阶数(通常为12到16),k表示一阶导数的时间差,取1或2;将公式(2)的结果再代入公式(2)则得到二阶差分的参数。
步骤3包括:
步骤3-1,本发明的残差门控循环网络以基于隐马尔科夫模型(Hidden MarkovModel,HMM)来做具体解释说明以及实验验证,所以需要高斯混合隐马尔科夫模型提供的对齐标签来作为目标标签。高斯混合隐马尔科夫属于非常成熟的技术了,且非本发明重点介绍内容,所以这里只对建立高斯混合隐马尔科夫模型的流程做简要说明。
高斯混合模型(Gaussian of Mixture,GMM)的公式为:
式中,y是特征分布,也就是观测数据;是第i个高斯的方差;θ为(μ,σ2),θi为第i个高斯;αi是第i个高斯的混合参数;N为高斯分布的数量;μi为第i个高斯的均值;P(y|θ)表示高斯混合模型。
步骤3-2,对于高斯混合模型,使用期望最大化算法来计算高斯混合模型中每个高斯的均值、方差以及混合参数,同时结合维特比算法得到特征与音素的帧级别对齐信息,从而得到单音素的高斯混合隐马尔科夫模型,再通过高斯分裂以及期望最大化算法得到三音素的高斯混合隐马尔科夫模型,同时结合对齐处理得到三音素的帧对齐标签。所述期望最大化算法属于非监督学习算法,通过迭代来得到高斯混合模型中每个高斯的均值、方差以及混合参数。对于期望最大化算法和维特比算法以及得到三音素的高斯混合隐马尔科夫模型的算法等操作都属于已成熟的常用算法,具体可以参照语音识别开源项目Kaldi。
步骤4包括如下步骤:
步骤4-1,建立残差门控循环神经网络算法的前向算法:首先建立重置门和更新门,设zt和rt分别为更新门向量和重置门向量,xt为当前的输入,ht-1为前时刻帧的输入当前时刻的状态向量,W与U为模型参数也就是权重向量,b为偏置向量;更新门向量和重置门公式如下:
zt=σ(netZ),
netZ=Wzxt+Uzht-1+bz,
rt=σ(netr),
netr=Wrxt+Urht-1+br,
式中,netZ为更新门未激活值;netr为重置门未激活值;Wz与Uz为更新门权重;bz为更新门偏置向量;Wr与Ur为重置门权重;br为重置门偏置向量,σ为sigmoid激活函数(S函数),sigmoid激活函数公式如下:
式中,x为函数输入;e为自然常数。
步骤4-2,使用如下残差门控循环单元的候选隐状态公式:
式中,at为候选隐状态值;为上一层未激活的候选隐状态值;neta为当前层未激活值的候选隐状态,若neta与维度不匹配时需要乘以维度匹配矩阵W1避免维度不一致;Ua与Wa为候选隐状态的权重;ba为偏置向量;为激活函数,可选用非饱和激活函数中的一种。
非饱和激活函数有多种变体,这里用线性整流函数ReLU(Rectified LinearUnit,ReLU)作为激活函数,ReLU的公式为:
式中,x为函数输入值;
步骤4-3,最后构建单元的隐状态:
ht=(1-zt)⊙ht-1+zt⊙at
式中,ht为隐状态输出值。
步骤5包括:
步骤5-1,如果设置的神经网络神经元数与步骤3的得到的标签数不匹配,则需要在神经网络训练层后连接一层全连接层来修正神经元输出值的维度,全连接层公式如下:
z=Wyh,
式中,Wy为维度匹配矩阵,其意义为使h的维度与z的维度保持一致;h为残差门控循环神经网络最后一层的神经元输出;z为全连接层输出值。
步骤5-2,在全连接层之后需连接分类层进行分类,这里给出归一化指数函数S(z)j公式用于分类处理:
式中,z为全连接层的输出,也是此时归一化指数函数的输入;e为自然常数;N为类别数(类别数来自步骤3中高斯混合模型得到的标签数);zj表示Z的第j元素,j的范围为1到N;zn表示Z的第n元素,n取值为1到N。
步骤6包括:
正交初始化是将Wz、Wr、Wa、Uz、Ur、Ua的初始值初始化为单位正交矩阵,单位正交矩阵A需满足如下条件:
A为正交矩阵;
A的转置AT为正交矩阵;
AAT=E,E为单位矩阵;
A的各行是单位向量且两两正交;
A的各列是单位向量且两两正交;
(Ax,Ay)=(x,y),x,y都为常数;
|A|=1或-1;
A的维度为权重所在的神经网络层的神经元个数。
步骤7包括:
批标准化的公式如下:
其中,为输入值Zi经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;ε等于10-8。
步骤8包括:
具体参数设置由语音数据的不同需要进行不同的配置,一般选择神经元数为300到2000;本发明的残差门控循环神经网络允许设置较高的网络层数,但太高也会产生过拟合现象,所以设置不超过10层的网络层数;批大小设置为4以上;学习率一般设置0.0008左右或更低;迭代次数一般选择20次以上。
步骤9包括:
损失函数的输入是残差门控循环网络前向算法输出的预测值以及高斯混合模型提供的标签;输出是衡量预测值与标签之间差异的损失值。损失函数作用于前向传播计算分类层之后。优化器是优化梯度下降算法的优化器,可以加速梯度下降的计算,使网络更快收敛。损失函数以及优化器都有多种选择,下为常用的交叉熵损失函数(Cross EntropyLoss)以及均方根传递(root mean square prop,RMSProp)优化器的计算公式。
交叉熵损失函数loss(s,y)的公式为:
式中,N为期望输出(标签)的数量;y是期望输出,yj是第j个期望输出;s是步骤5-2的归一化指数函数输出的预测值,sj是第j个预测值。
均方根传递优化器的公式为:
式中,Sdw为梯度动量,其初始值为0;α为步骤8中设置的学习率;β为衰减速率,一般取0.95;dW为权重梯度;W为权重;ε等于10-8;为更新的梯度动量;为更新的权重值。
步骤10包括如下步骤:
步骤10-1,更新残差门控循环神经网络,通过反复迭代更新权重来完成训练任务:在正向传播过程中,输入层经隐含层,逐层处理并传向输出层,其中在残差门控循环神经网络中还存在着时序传播。如果在输出层得不到期望的输出值,则取输出与期望的误差得到的目标函数,转入反向传播,逐层求出目标函数对各神经元权值的偏导数,构成目标函数对权值向量的梯度,作为修改权重的依据,神经网络的学习是在权值修正的过程中完成的。误差达到期望值的时候则表明循环神经网络训练完成。
残差门控循环神经网络的每一次迭代过程都是要经过步骤4的公式进行正向传播,接着根据损失函数计算权重梯度完成反向传播的计算,最后利用选择的优化器进行梯度下降更新权重参数的值,其中,在反向传播是需要计算误差项来辅助计算权重梯度,以下为推导误差项之前的部分设定及公式:
ReLU以及Sigmoid的导数分别为:
sigmoid(x)′=sigmoid(x)(1-sigmoid(x))
其中,x为输入值,符号′为求导符。
在步骤4中已经构建的残差门控循环单元的前向传播的算法式子,由于使用批标准化算法辅助加速,所以算法中偏置向量b忽略不计,则残差门控循环单元的前向传播的算法改写为:
zt=σ(netZ),
netZ=WZxt+Uzht-1,
rt=σ(netr),
netr=Wrxt+Urht-1,
ht=(1-zt)⊙ht-1+zt⊙at,
设一个时刻t的损失为Et,则对于单个样本的在所有时刻的损失E为:
其中,T为时间总值。
步骤10-2,由于所述残差门控循环神经网络具备时序性同时也拥有网络深度,所以在反向传播时分为两个方向进行:一个是沿时间轴的反向传播,即从当前t时刻开始,计算每个时刻的误差项;另一个是沿空间轴将误差项向上一层传递。
首先是时间轴上的权重参数进行反向传播的分析,以下为时间轴上误差项的推导:
设误差项是损失函数对输出值的导数,则在t时刻,残差门控循环单元的输出值为ht,定义t时刻的损失Et对ht的误差项δt为:
根据如下公式计算候选信息误差项δa,t:
在neta为正数时得到δa,t为:
根据如下公式计算更新门误差项δz,t:
根据如下公式计算重置门误差项δr,t:
根据如下公式计算在时间轴上向前反向传递误差项δt-1:
则有误差项向前传递到任意k时刻δk的公式:
其中,上标T表示矩阵转置;下标j表示时刻数;下标z为更新门参数;下标r为重置门参数;下标a为候选隐状态参数;δr,j表示时刻j的重置门参数,δz,j表示时刻j的更新门参数,δa,j表示时刻j的候选隐状态参数;
步骤10-3,对空间轴上误差项的推导如下:
设当前为第l层,定义l-1层的误差项是误差函数Et对l-1层加权输入的导数:
由于循环神经网络的输入是上一层的输出,则简写为:
其中,fL-1表示第L-1层的循环神经网络计算;为第L-1层的单元值;是第L-1层的输出,同时也是第L层的输入;
因为都是关于xt的函数,xt又是的函数,因此要求出E对的导数,就要使用全导数公式:
其中,的作用是用于计算更新更新门和重置门的权重;
在本发明的残差门控循环单元中使用了残差连接,所以更新候选值中的权重不需使用来计算,而是根据下面对候选值空间轴上的误差项进行计算:
设L为当前循环神经网络的最高层层数,设l为目标层数,设定一个函数F(m)L用来代替中的部分公式:
F(m)L=Waxt+Ua(Ht-1⊙rt),
则有:
由ReLU的函数性质有:
其中,为第L层t时刻的候选隐状态值;为第L层t时刻的未激活的候选隐状态值;
根据如下公式计算对的偏导
根据如下公式计算候选隐状态在空间轴上传播的误差项
步骤10-4,反向传播需计算所有权重的梯度,在步骤10-2与步骤10-3中已得到了所有计算权重梯度所需的误差项,开始计算权重梯度:
首先,对权重参数U的梯度的进行计算:
将各个时刻的权重参数U的梯度加在一起,得到最终的权重参数U的梯度:
步骤10-5,对于权重参数W的梯度的计算:
步骤10-6,利用10-4以及10-5所得到的权重梯度代入步骤9的优化算法进行梯度下降,即能够完成一次迭代。经过反复的迭代更新,最后将步骤4到步骤9的网络结构以及更新好的权重参数Wz、Wr、Wa、Uz、Ur、Ua一起输出为pkl文件作为语音识别的声学模型。
步骤11包括如下步骤:
步骤11-1,输出最终的结果必须要使声学模型结合语言模型完成语音识别,可使用的语言模型有多种选择,并不固定,例如二元模型(2-Gram)、三元模型(3-Gram)等。目前最常用的为三元模型。
在N元模型(N-Gram)中。假定一个词序列W有m个词,设wi表示序列W的第i个词(0<i<m),那么这个序列的概率P(W)的计算可以表示为很多个条件概率的乘积:
式中,P(w1,w2,…,wm)表示词w1到wm同时存在发生的概率;P(wi)表示句子的第i个词是词wi的概率;P(wm|w1,w2,…,wm-1)表示为
由于N元模型要估计的词太多太长,所以三元模型每次只取3个词,设三元模型概率为P(T)则有:
P(T)=P(w1)*P(w2|w1)*P(w3|w2,w1)*P(wm|wm-1,wm-2)
式中,P(w1)表示以词w1开头的句子的概率;P(w2|w1)表示以词w1和w2开头的句子的概率;P(wm|wm-1,wm-2)表示
步骤11-2,语音输入O给定时,要最大化词序列W的后验概率P(W|O),可根据贝叶斯公式来求解,其中贝叶斯公式为:
式中,P(O)不随W变化,为常量;P(O|W)为声学模型概率;P(W)为语言模型概率。由于P(O)为常量所以可以被省略,所以要使P(W|O)最大化则可以表示为:
P(W|O)=argmax(P(O|W)P(W))
式中,argmax()函数表示寻找具有最大评分的参量
将声学模型、语言模型、发声字典表示成WFST的形式,其中发声字典为用户设定,包含了每个字的发音及声调等,用于连接声学模型和语言模型。通过WFST(加权有限状态转换器)组成一个解码网络:
式中,符号表示组合操作;符号det表示确定化操作;符号min表示最小化操作;H表示HMM(隐马尔可夫)的定义,输出符为上下文相关音素;C表示上下文关系,输入是上下文相关的音素,输出是音素;L是发音字典,输入是音素,输出是词;G是语法接收器,用于描述语料前后词的关系。
输入语音信号特征,从声学模型得到对应状态,接着将对应状态输入HCLG(解码网络)就完成了从语音到词句的转换。
针对循环神经网络梯度消失以及网络退化问题,本发明提供一种基于残差门控循环单元的语音识别方法,这里简称为R-GRU。R-GRU主要是基于门控循环单元结构的改进,该算法与传统GRU、Highway-GRU(使用高速公路网络的门控循环单元)以及LSTM等模型在语音识别的声学模型上进行了对比实验。本发明提出的算法的词识别效果明显优于多种网络结构,并且本发明算法没有增加多余参数量和算法训练耗时。
有益效果:本发明发现传统的循环神经网络存在着严重网络退化问题,而Highway-GRU模型虽然能缓解退化降低错误率,但是其算法增加了过多的参数,且运行耗时很高。在不增加参数量的条件下,本发明在GRU基础上进行了修改激活函数以及建立残差连接等改进,使网络的候选隐状态进行反向传播时,不存在网络结构的连续相乘而导致的梯度消失问题,可以缓解网络退化问题。实验结果表明,本发明提出的算法明显优于GRU、LSTM以及Highway-GRU,具备更低错误率以及较低的算法耗时。
附图说明
下面结合附图和实施例对本发明作进一步说明:
图1为语音识别系统流程图。
图2为残差门控循环单元结构图。
图3为GRU与R-GRU损失变化曲线。
具体实施方式
神经网络的成功主要来自它的深层架构,诸多研究结果表明训练更深层的网络可以增加特征的表征能力,但是训练一个深层的网络是一件困难的事情。随着网络层数的增加,随之而来的网络退化等问题,使得人们在训练更深的网络结构时往往会得到不好的结果。本发明通过改进门控循环单元的候选隐状态的算法,修改激活函数,并添加残差连接如图2,使R-GRU能够进行更深的训练。图1为语音识别系统流程图,以下步骤构建完整的R-GRU单元的循环神经网络,完成语音识别声学模型的训练任务:
1)从待训练的语音数据中提取特征值,如MFCC(梅尔频率倒谱系数)、Fbank(滤波器组)等特征,详细步骤可以参照开源项目Kaldi。
2)运用特征值训练高斯混合隐马尔科夫模型,通过高斯混合模型得到帧与音素之间的对应关系以及上下文相关的三音素,详细步骤可以参照开源项目Kaldi。
3)建立残差门控循环单元,单元结构算法公式为:
zt=σ(netZ)
netZ=σ(Wzxt+Uzht-1+bz)
rt=σ(netr)
netr=σ(Wrxt+Urht-1+br)
ht=(1-zt)⊙ht-1+zt⊙at
4)残差门口循环神经网络之后设置一层全连接层:
z=Wyh
式中,Wy为维度匹配矩阵,其意义为使h的维度与z的维度保持一致;h为残差门控循环神经网络最后一层的神经元输出;z为全连接层输出值。
5)全连接层之后设置一个分类器进行分类,归一化指数函数分类器公式为:
式中,z为全连接层的输出,也是此时归一化指数函数的输入;e为自然常数;N为类别数(类别数来自步骤3中高斯混合模型得到的分类数);zj表示Z的第j元素,j的范围为1到N;zn表示Z的第n元素,n取值为1到N;S(z)j表示输出的第j个预测值。
6)设置神经元个数、网络层数、批大小、学习率等多个超参数。具体参数设置由语音数据的不同需要进行不同的配置,一般选择神经元数为300到2000;本发明的残差门控循环神经网络允许设置较高的网络层数,但太高会不可避免的发生过拟合现象,所以设置不超过15层的网络层数;批大小设置为4以上;学习率一般设置0.0008左右或更低;迭代次数一般选择20次以上。
7)配置损失函数以及优化器。以下为交叉熵损失函数公式以及均方根传递优化器的公式。
交叉熵损失函数loss(s,y)的公式为:
式中,N为期望输出(标签)的数量;y是期望输出,yj是第j个期望输出;s是5)中归一化指数函数输出的预测值集合,sj是第j个预测值。
均方根传递优化器的公式为:
式中,Sdw为梯度动量,其初始值为0;α为步骤8中设置的学习率;β为衰减速率,一般取0.95;dW为权重梯度;W为权重;ε等于10-8;为更新的梯度动量;为更新的权重值。
8)为了加快网络训练,缓解梯度爆炸问题发生,为网络设置批标准化,批标准化的公式为:
其中,为输入值Zi经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;ε等于10-8。
9)设置网络权重初始化方式为正交初始化,把转移矩阵初始化为单位正交阵。
10)将特征值作为输入,高斯模型得到的音素对应关系作为分类的标签,一起输入神经网络。
11)神经元按照3)、4)以及5)中公式进行前向传播,接着结合损失函数值计算权重参数的梯度进行反向传播更新权重参数,最后经过反复迭代训练得到最终的模型。其中,对于候选隐状态来说:
L为网络的层数,设:
F(m)L=Waxt+Ua(Ht-1⊙rt)
设l为目标层数:
在空间上,对求的偏导则:
则候选隐状态的第l层误差项为:
可见相比普通传统的网络,添加残差连接后候选隐状态不存在网络结构级的连续相乘而导致的梯度消失问题。这种方法可以使循环网络更敏感,能够很好缓解网络退化问题
12)结合语言模型以及训练好的声学模型完成语音识别解码任务,输入待测语音信息的特征值,取得识别结果。
实验结果:
本发明为了更好的对实验效果进行展示,采用了德州仪器、麻省理工学院和SRIInternational合作构建的标准TIMIT连续语音语料库作为实验数据。采用较常用的MFCC(梅尔频率倒谱系数)作为特征值进行试验。为了让对比更充分,这里选择GRU、LSTM、Highway-GRU以及GRU-relu完成多组不同层数的神经网络训练做效果对比。每层都设置450个神经元;都设置了20%的遗忘率(drop out);权重初始化都为正交初始化;批处理量为8;所有的模型损失函数都为交叉熵损失函数;优化器都为均方根传递优化器,动量为0.95;初始学习率都为0.0008;都使用了批标准化技术;所有模型都进行25次迭代训练。
评价标准采用词识别错误率(WER),为使识别出的词序列与标准词序列保持一致,则WER的计算公式如下:
其中,S为替换词(Substitutions),D为删除词(Deletions),I为插入词(Insertions),N为标准的词序列中词个数(Total Words in Correct Transcript)。
图3为单向GRU与单向本发明的R-GRU的损失值变化图。为了让对比效果更明显,本发明选择了3层、5层以及7层的网络层数,且没有使用学习率衰减。通过图3可以发现传统GRU的损失值随着网络层数的增加而越来越糟糕,而本发明的R-GRU能随层数增加而有效降低损失值,表明R-GRU确实具备良好缓解网络退化的能力。
表1展示了GRU、LSTM、Highway-GRU、GRU-relu以及本发明的R-GRU的不同层数的词识别错误率,为了便于训练,本发明都使用了单向的循环结构。其中,GRU-relu是将激活函数换成Relu的GRU;Highway-GRU是使用了Highway network技术的GRU。可以很明显的发现,传统的GRU与LSTM在层数增加时明显效果变差,且GRU的效果比LSTM要差,而Highway-GRU的效果相对于GRU是有较好的结果,但其消耗的时间却明显高于其他结构。可以明显的发现本发明的R-GRU是有效的,在同为7层的时候R-GRU比同层数的GRU词识别错误率要低了1.4%,比LSTM要低0.9%。在层数相同时R-GRU的运行耗时与传统的GRU基本一致,且低于LSTM、Highway-GRU。
表1
本发明发现传统的循环神经网络存在着严重网络退化问题,而Highway-GRU模型虽然能缓解退化降低错误率,但是其算法增加了过多的参数,且运行耗时很高。在不增加参数量的条件下,本发明在GRU基础上进行了修改激活函数以及建立残差连接等改进,使网络能够更有效的进行残差学习,缓解网络退化问题。实验结果表明,本发明提出的算法明显优于GRU、LSTM以及Highway-GRU,具备更低错误率以及较低的算法耗时。
Claims (8)
1.一种基于残差门控循环单元的语音识别方法,其特征在于,包括以下步骤:
步骤1,提取数据的特征值;
步骤2,将提取好的特征值做均值方差归一化以及差分处理;
步骤3,使用经过步骤2处理好的特征值训练高斯混合隐马尔科夫模型,得到训练好的三音素的高斯隐马尔科夫模型;
步骤4,建立残差门控循环单元的循环神经网络结构;
步骤5,设置残差门控循环神经网络的全连接层以及分类层;
步骤6,设置残差门控循环神经网络权重初始化方式为正交初始化;
步骤7,为残差门控循环神经网络设置批标准化;
步骤8,设置残差门控循环神经网络的超参数;
步骤9,配置残差门控循环神经网络的损失函数以及优化器;
步骤10,经过残差门控循环神经网络的迭代之后输出模型文件,得到声学模型;
步骤11,将声学模型和语言模型以及发声词典通过加权有限状态转换器静态编译组成搜索网络。
2.如权利要求1所述的方法,其特征在于,步骤2包括:
步骤2-1,均值方差归一化:均值方差归一化具体做法是使特征的均值为0,方差为1,其计算公式为:
式中,x为数据输入,即提取好的特征值;μ为归一化之前的均值;σ为归一化之前的标准差;Z为归一化之后的数据;
步骤2-2,根据如下公式对特征数据进行差分运算:
式中,dt表示第t个一阶差分,Ct表示第t个倒谱系数,Q表示倒谱系数的阶数;k表示一阶导数的时间差,取1或2;将公式(2)的结果再代入公式(2)则得到二阶差分的参数。
3.如权利要求2所述的方法,其特征在于,步骤3包括:
步骤3-1,高斯混合模型P(y|θ)公式为:
式中,y是特征分布,也就是观测数据;是第i个高斯的方差;θ为(μ,σ2),θi为第i个高斯;αi是第i个高斯的混合参数;N为高斯分布的数量;μi为第i个高斯的均值;
步骤3-2,对于高斯混合模型,使用期望最大化算法来计算高斯混合模型中每个高斯的均值、方差以及混合参数,同时结合维特比算法得到特征与音素的帧级别对齐信息,从而得到单音素的高斯混合隐马尔科夫模型,再通过高斯分裂以及期望最大化算法得到三音素的高斯混合隐马尔科夫模型,同时结合对齐处理得到三音素的帧对齐标签。
4.如权利要求3所述的方法,其特征在于,步骤4包括如下步骤:
步骤4-1,建立残差门控循环神经网络算法的前向算法:首先建立重置门和更新门,设zt和rt分别表示更新门向量和重置门向量,xt为当前的输入,ht-1为前时刻帧的输入当前时刻的状态向量,W与U为模型参数也就是权重向量,b为偏置向量;更新门向量和重置门公式如下:
zt=σ(netz),
netz=Wzxt+Uzht-1+bz,
rt=σ(netr),
netr=Wrxt+Urht-1+br,
式中,netz为更新门未激活值;netr为重置门未激活值;Wz与Uz为更新门权重;bz为更新门偏置向量;Wr与Ur为重置门权重;br为重置门偏置向量,σ为sigmoid激活函数,sigmoid激活函数公式如下:
式中,x为函数输入;e为自然常数;
步骤4-2,使用如下残差门控循环单元的候选隐状态公式:
式中,at为候选隐状态值;为上一层未激活的候选隐状态值;neta为当前层未激活值的候选隐状态,若neta与维度不匹配时需要乘以维度匹配矩阵Wl避免维度不一致;Ua与Wa为候选隐状态的权重;ba为偏置向量;为激活函数,这里用线性整流函数ReLU作为激活函数,ReLU的公式为:
式中,x为函数输入值;
步骤4-3,最后构建单元的隐状态:
ht=(1-zt)⊙ht-1+zt⊙at
式中,ht为隐状态输出值。
5.如权利要求4所述的方法,其特征在于,步骤5包括如下步骤:
步骤5-1,如果设置的神经网络神经元数与步骤3的得到的标签数不匹配,则需要在神经网络训练层后连接一层全连接层来修正神经元输出值的维度,全连接层公式如下:
z=Wyh,
式中,Wy为维度匹配矩阵,其意义为使h的维度与z的维度保持一致;h为残差门控循环神经网络最后一层的神经元输出;z为全连接层输出值;
步骤5-2,在全连接层之后需连接分类层进行分类,这里给出归一化指数函数S(z)j公式用于分类处理:
式中,z为全连接层的输出,也是此时归一化指数函数的输入;e为自然常数;N为类别数,类别数来自步骤3中高斯混合模型得到的分类数;zj表示Z的第j元素,j的范围为1到N;zn表示Z的第n元素,n取值为1到N。
6.如权利要求5所述的方法,其特征在于,步骤6包括:正交初始化是将Wz、Wr、Wa、Uz、Ur、Ua的初始值初始化为单位正交矩阵,单位正交矩阵A需满足如下条件:
A为正交矩阵;
A的转置AT为正交矩阵;
AAT=E,E为单位矩阵;
A的各行是单位向量且两两正交;
A的各列是单位向量且两两正交;
(Ax,Ay)=(x,y),x,y都为常数;
|A|=1或-1;
A的维度为权重所在的神经网络层的神经元个数。
7.如权利要求6所述的方法,其特征在于,步骤7包括:
批标准化的公式如下:
其中,为输入值Zi经过标准化之后的新输入值;σ2为方差;μ为均值;m为输入的维度;ε等于10-8。
8.如权利要求7所述的方法,其特征在于,步骤10包括如下步骤:
步骤10-1,神经网络的训练是需要经过反复迭代来达到最终的收敛,而每一次的迭代过程都是要经过步骤4的公式进行正向传播,接着根据损失函数计算权重梯度完成反向传播的计算,最后利用选择的优化器进行梯度下降更新权重参数的值,其中,在反向传播是需要计算误差项来辅助计算权重梯度,以下为推导误差项之前的部分设定及公式:
ReLU以及Sigmoid的导数分别为:
sigmoid(x)′=sigmoid(x)(1-sigmoid(x))
式中,x为输入值,符号′为求导符;
在步骤4中已经构建的残差门控循环单元的前向传播的算法式子,偏置向量b忽略不计,则残差门控循环单元的前向传播的算法改写为:
zt=σ(netz),
netz=Wzxt+Uzht-1,
rt=σ(netr),
netr=Wrxt+Urht-1,
ht=(1-zt)⊙ht-1+zt⊙at,
设一个时刻t的损失为Et,则对于单个样本的在所有时刻的损失E为:
式中,T为时间总值;
步骤10-2,由于所述残差门控循环神经网络具备时序性同时也拥有网络深度,所以在反向传播时分为两个方向进行:一个是沿时间的反向传播,即从当前t时刻开始,计算每个时刻的误差项;另一个是将误差项向上一层传递;
首先是时间轴上的权重参数进行反向传播的分析,以下为时间轴上误差项的推导:
设误差项是损失函数对输出值的导数,则在t时刻,残差门控循环单元的输出值为ht,定义t时刻的误差项δt为:
根据如下公式计算t时刻的候选信息误差项δa,t:
所以在neta为正数时得到δa,t为:
根据如下公式计算更新门误差项δz,t:
根据如下公式计算重置门误差项δr,t:
根据如下公式计算在时间轴上向前反向传递误差项δt-1:
则有误差项向前传递到任意k时刻δk的公式:
其中,上标T表示矩阵转置;下标j表示时刻数;下标z为更新门参数;下标r为重置门参数;下标a为候选隐状态参数;δr,j表示时刻j的重置门参数,δz,j表示时刻j的更新门参数,δa,j表示时刻j的候选隐状态参数;
步骤10-3,对空间轴上误差项的推导如下:
设当前为第1层,定义1-1层的误差项是误差函数Et对1-1层加权输入的导数:
由于循环神经网络的输入是上一层的输出,则简写为:
式中,fL-1表示第L-1层的循环神经网络计算;为第L-1层的单元值;是第L-1层的输出,同时也是第L层的输入;
使用全导数公式:
式中,的作用是用于计算更新门和重置门的权重;
下面对候选值空间轴上的误差项进行推导:
设L为当前循环神经网络的最高层数,设1为目标层数,设定一个函数F(m)L用来代替中的部分公式:
F(m)L=Waxt+Ua(Ht-1⊙rt),
则有:
由于设置候选隐状态的激活函数为ReLU函数,所以对第L层的候选隐状态求的偏导有:
式中,为第L层t时刻的候选隐状态值;为第L层t时刻的未激活的候选隐状态值;
根据如下公式计算对的偏导
根据如下公式计算候选隐状态在空间轴上传播的误差项
步骤10-4,反向传播需计算所有权重的梯度,在步骤10-2与步骤10-3中已得到了所有计算权重梯度所需的误差项,开始计算权重梯度:
首先,对权重参数U的梯度的进行计算:
将各个时刻的权重参数U的梯度加在一起,得到最终的权重参数U的梯度:
步骤10-5,对于权重参数W的梯度的计算:
步骤10-6,利用10-4以及10-5的权重梯度,再结合步骤9的优化算法公式进行梯度下降更新权重,即能够完成一次迭代;经过反复的迭代更新,最后将步骤4到步骤9的网络结构以及更新好的权重参数Wz、Wr、Wa、Uz、Ur、Ua一起输出为pkl文件作为语音识别的声学模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198058.4A CN109801621B (zh) | 2019-03-15 | 2019-03-15 | 一种基于残差门控循环单元的语音识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198058.4A CN109801621B (zh) | 2019-03-15 | 2019-03-15 | 一种基于残差门控循环单元的语音识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109801621A true CN109801621A (zh) | 2019-05-24 |
CN109801621B CN109801621B (zh) | 2020-09-29 |
Family
ID=66562918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910198058.4A Active CN109801621B (zh) | 2019-03-15 | 2019-03-15 | 一种基于残差门控循环单元的语音识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109801621B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111128235A (zh) * | 2019-12-05 | 2020-05-08 | 厦门快商通科技股份有限公司 | 一种基于语音的年龄预测方法和装置以及设备 |
CN111341307A (zh) * | 2020-03-13 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN111429947A (zh) * | 2020-03-26 | 2020-07-17 | 重庆邮电大学 | 一种基于多级残差卷积神经网络的语音情感识别方法 |
CN111950697A (zh) * | 2020-07-01 | 2020-11-17 | 燕山大学 | 一种基于门控循环单元网络的水泥成品比表面积预测方法 |
CN112036387A (zh) * | 2020-11-06 | 2020-12-04 | 成都索贝数码科技股份有限公司 | 基于门控卷积神经网络的新闻画面拍摄角度识别方法 |
CN112309377A (zh) * | 2019-07-18 | 2021-02-02 | Tcl集团股份有限公司 | 一种智能洗浴控制方法、设备及存储介质 |
CN112686372A (zh) * | 2020-12-28 | 2021-04-20 | 哈尔滨工业大学(威海) | 基于深度残差gru神经网络的产品性能预测方法 |
CN113485244A (zh) * | 2021-07-27 | 2021-10-08 | 同济大学 | 一种基于刀具磨损预测的数控机床控制系统及其方法 |
CN113783099A (zh) * | 2021-04-15 | 2021-12-10 | 北京科益虹源光电技术有限公司 | 基于深度gru的准分子激光器剂量控制方法及装置 |
CN113792860A (zh) * | 2021-09-15 | 2021-12-14 | 中国人民解放军陆军军医大学第二附属医院 | 基于常微分方程的gru网络模型及特征提取方法、装置 |
CN113806543A (zh) * | 2021-09-22 | 2021-12-17 | 三峡大学 | 一种基于残差跳跃连接的门控循环单元的文本分类方法 |
CN117407689A (zh) * | 2023-12-14 | 2024-01-16 | 之江实验室 | 一种面向实体对齐的主动学习方法、装置和电子装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101255468B1 (ko) * | 2011-10-17 | 2013-04-16 | 포항공과대학교 산학협력단 | 대화 의도를 분류하는 방법 |
US20180190267A1 (en) * | 2015-12-31 | 2018-07-05 | Interactive Intelligence Group, Inc. | System and method for neural network based feature extraction for acoustic model development |
CN108597501A (zh) * | 2018-04-26 | 2018-09-28 | 深圳市唯特视科技有限公司 | 一种基于残差网络和双向门控循环单元的视听语音模型 |
CN108830287A (zh) * | 2018-04-18 | 2018-11-16 | 哈尔滨理工大学 | 基于残差连接的Inception网络结合多层GRU的中文图像语义描述方法 |
CN108847223A (zh) * | 2018-06-20 | 2018-11-20 | 陕西科技大学 | 一种基于深度残差神经网络的语音识别方法 |
CN109192200A (zh) * | 2018-05-25 | 2019-01-11 | 华侨大学 | 一种语音识别方法 |
-
2019
- 2019-03-15 CN CN201910198058.4A patent/CN109801621B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101255468B1 (ko) * | 2011-10-17 | 2013-04-16 | 포항공과대학교 산학협력단 | 대화 의도를 분류하는 방법 |
US20180190267A1 (en) * | 2015-12-31 | 2018-07-05 | Interactive Intelligence Group, Inc. | System and method for neural network based feature extraction for acoustic model development |
CN108830287A (zh) * | 2018-04-18 | 2018-11-16 | 哈尔滨理工大学 | 基于残差连接的Inception网络结合多层GRU的中文图像语义描述方法 |
CN108597501A (zh) * | 2018-04-26 | 2018-09-28 | 深圳市唯特视科技有限公司 | 一种基于残差网络和双向门控循环单元的视听语音模型 |
CN109192200A (zh) * | 2018-05-25 | 2019-01-11 | 华侨大学 | 一种语音识别方法 |
CN108847223A (zh) * | 2018-06-20 | 2018-11-20 | 陕西科技大学 | 一种基于深度残差神经网络的语音识别方法 |
Non-Patent Citations (2)
Title |
---|
MIRCO RAVANELLI ET AL.: "《Light Gated Recurrent Units for Speech Recognition》", 《IEEE TRANSACTIONS ON EMERGING TOPICS IN COMPUTATIONAL INTELLIGENCE ( VOLUME: 2 , ISSUE: 2 , APRIL 2018 )》 * |
张涛 等: "《关于改进的激活函数TReLU的研究》", 《小型微型计算机系统》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112309377A (zh) * | 2019-07-18 | 2021-02-02 | Tcl集团股份有限公司 | 一种智能洗浴控制方法、设备及存储介质 |
CN111128235A (zh) * | 2019-12-05 | 2020-05-08 | 厦门快商通科技股份有限公司 | 一种基于语音的年龄预测方法和装置以及设备 |
CN111341307A (zh) * | 2020-03-13 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 语音识别方法、装置、电子设备及存储介质 |
CN111429947B (zh) * | 2020-03-26 | 2022-06-10 | 重庆邮电大学 | 一种基于多级残差卷积神经网络的语音情感识别方法 |
CN111429947A (zh) * | 2020-03-26 | 2020-07-17 | 重庆邮电大学 | 一种基于多级残差卷积神经网络的语音情感识别方法 |
CN111950697A (zh) * | 2020-07-01 | 2020-11-17 | 燕山大学 | 一种基于门控循环单元网络的水泥成品比表面积预测方法 |
CN112036387A (zh) * | 2020-11-06 | 2020-12-04 | 成都索贝数码科技股份有限公司 | 基于门控卷积神经网络的新闻画面拍摄角度识别方法 |
CN112036387B (zh) * | 2020-11-06 | 2021-02-09 | 成都索贝数码科技股份有限公司 | 基于门控卷积神经网络的新闻画面拍摄角度识别方法 |
CN112686372A (zh) * | 2020-12-28 | 2021-04-20 | 哈尔滨工业大学(威海) | 基于深度残差gru神经网络的产品性能预测方法 |
CN113783099A (zh) * | 2021-04-15 | 2021-12-10 | 北京科益虹源光电技术有限公司 | 基于深度gru的准分子激光器剂量控制方法及装置 |
CN113783099B (zh) * | 2021-04-15 | 2024-02-20 | 北京科益虹源光电技术有限公司 | 基于深度gru的准分子激光器剂量控制方法及装置 |
CN113485244A (zh) * | 2021-07-27 | 2021-10-08 | 同济大学 | 一种基于刀具磨损预测的数控机床控制系统及其方法 |
CN113792860A (zh) * | 2021-09-15 | 2021-12-14 | 中国人民解放军陆军军医大学第二附属医院 | 基于常微分方程的gru网络模型及特征提取方法、装置 |
CN113806543A (zh) * | 2021-09-22 | 2021-12-17 | 三峡大学 | 一种基于残差跳跃连接的门控循环单元的文本分类方法 |
CN113806543B (zh) * | 2021-09-22 | 2023-05-30 | 三峡大学 | 一种基于残差跳跃连接的门控循环单元的文本分类方法 |
CN117407689A (zh) * | 2023-12-14 | 2024-01-16 | 之江实验室 | 一种面向实体对齐的主动学习方法、装置和电子装置 |
CN117407689B (zh) * | 2023-12-14 | 2024-04-19 | 之江实验室 | 一种面向实体对齐的主动学习方法、装置和电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109801621B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109801621A (zh) | 一种基于残差门控循环单元的语音识别方法 | |
CN109767759B (zh) | 一种应用到端到端语音识别的cldnn结构的建立方法 | |
Morgan et al. | Continuous speech recognition | |
Liao et al. | Large vocabulary automatic speech recognition for children | |
Morgan et al. | Neural networks for statistical recognition of continuous speech | |
CN110111783A (zh) | 一种基于深度神经网络的多模态语音识别方法 | |
Wang et al. | Exploring rnn-transducer for chinese speech recognition | |
Yu et al. | Acoustic modeling based on deep learning for low-resource speech recognition: An overview | |
CN108109615A (zh) | 一种基于dnn的蒙古语声学模型的构造和使用方法 | |
Thai et al. | Synthetic data augmentation for improving low-resource ASR | |
Watanabe et al. | Application of variational Bayesian approach to speech recognition | |
CN112967720B (zh) | 少量重口音数据下的端到端语音转文本模型优化方法 | |
Kermanshahi et al. | Transfer learning for end-to-end ASR to deal with low-resource problem in persian language | |
Vimala et al. | Isolated speech recognition system for Tamil language using statistical pattern matching and machine learning techniques | |
Song et al. | Exploiting different word clusterings for class-based RNN language modeling in speech recognition | |
Jiang et al. | Task-aware deep bottleneck features for spoken language identification. | |
KR20080026951A (ko) | 강인한 원거리 음성 인식 시스템을 위한 음성 인식 방법 | |
CN108182938B (zh) | 一种基于dnn的蒙古语声学模型的训练方法 | |
Barman et al. | State of the art review of speech recognition using genetic algorithm | |
Lei et al. | DLD: an optimized Chinese speech recognition model based on deep learning | |
Yang et al. | Indonesian speech recognition based on Deep Neural Network | |
KR100327486B1 (ko) | 스테이트별 가중치를 적용한 음성 인식 장치 및 방법 | |
Xie et al. | Investigation of deep neural network acoustic modelling approaches for low resource accented mandarin speech recognition | |
Chen et al. | An end-to-end speech recognition algorithm based on attention mechanism | |
Hu et al. | I-vector and dnn hybrid method for short utterance speaker recognition |
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 |