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包括:批标准化的公式如下:
2
其中,为输入值Zi经过标准化之后的新输入值;σ为方差;μ为均值;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层加权输入的导数:由于循环神经网络的输入是上一层的输出,则简写为:L-1
式中,f 表示第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文件作为语音识别的声学模型。