修正线性深度自编码网络语音识别方法与流程

文档序号:12475857阅读:261来源:国知局
修正线性深度自编码网络语音识别方法与流程

本发明涉及一种应用建立深度学习网络模型对语音进行识别的方法,属于语音信号处理领域,具体涉及一种修正线性深度自编码网络语音识别方法。



背景技术:

由于传统语音识别方法的理论假设和实际情况相比存在较大差异,导致在现实应用中难以达到预期性能,亟待在理论取得突破。深度学习是当前针对大数据的重要机器学习理论,在语音、图像、文本等领域有广泛的应用。目前,深度学习算法在语音识别方面已有一定的发展,它模拟了人类神经元活动原理,具有自学习、联想、对比、推理和概括能力,为解决语音识别这样的一个复杂的模式识别问题提供了新的途径。但是,随着模型深度增加,训练难度也在逐渐加大,如何找到一种快速有效的训练算法,是目前研究中需要克服的难题。

目前针对建立深度学习语音识别声学模型的最常用方法是使用受限玻尔兹曼机(Restricted Boltzmann Machines,RBM)作为基本单元,通过无监督逐层贪婪训练算法和对比散度算法,建立深度置信网络(Deep Belief Network,DBN)声学模型,例如文献“A fast learning algorithm for deep belief nets”(Neural Computation, 2006, 18(7))中所提到。这种方法解决传统BP算法训练多层神经网络需要大量的含标号训练样本集、较慢的收敛速度、以及因不合适的参数选择而陷入局部最优的难题。

在文献“Context Dependent Pre-Trained Deep Neural Networks for Large Vocabulary Speech Recognition”(IEEE Transactions on Audio Speech and Language Processing, 2012, 20(1))中,微软研究人员进一步使用深度信念网络对数以千计的senones(一种比音素小很多的建模单元)直接建模,提出了第1个成功应用于大词汇量语音识别系统的上下文相关的深层神经网络-隐马尔可夫混合模型(Context-Dependent Deep Neural Network Hidden Markov Model,CD-DNN-HMM)。

虽然深度学习语音识别的方法一直在不断改进,但无论哪种方法在噪声环境下识别性能的急剧下降仍是一个重大难题,这极大制约着自动语音识别技术在实际中的应用。另外,深度模型训练时容易产生的“梯度消失”和过拟合等问题也始终影响着系统的性能表现。



技术实现要素:

本发明要解决的具体技术问题是:如何在噪声环境下,建立深度学习语音识别系统方法,并取得良好的抗噪性能。

为了优化深度模型的训练算法,提出基于L2正则化的修正线性深度自编码网络(Rectified Deep Auto-encoder,RDAE)模型构建方法;首先采用修正线性单元作为激活函数替换传统的Sigmoid函数对深度自编码网络进行训练,其次引入L2正则化来优化深度模型训练过程中容易产生的过拟合问题,最后通过无监督的“预训练”(pre-training)和有监督的“微调”(fine-tuning)得到一组具有特征表示的权值,从而对测试语音完成识别任务。

本发明的具体技术方案为:建立基于L2正则化的修正线性深度自编码网络模型构建方法,在训练时首先进行无监督学习,称为网络“预训练”,然后将预训练得到的参数当作有监督学习的初始值再进行有监督训练,最后通过反向传播算法调整所有层的参数,称为网络“微调”;具体步骤如下:

1)语音数据预处理:

11)对语音信号进行采样和量化,采样率为,帧长256采样点,帧移128采样点;

12)对步骤11)所得到的语音信号进行预处理,包括预加重、分帧、加窗以及归一化处理;

13)将步骤12)所得的单帧信号进行端点检测,获得有效的单帧信号;

2)提取声学特征:

21)将步骤13)所得的有效单帧信号进行快速傅里叶变换,得到语音信号的频域信号。

22)使用对应的滤波器组对步骤21)所得的频域信号进行滤波处理;

23)对22)所得的滤波信号进行一系列非线性变换得到语音的声学特征;

3)训练修正线性深度自编码网的步骤:

31)激活函数以修正线性单元ReLU为例,利用“训练集”数据通过无监督逐层贪婪训练算法“预训练”网络的第一个修正线性自动编码器(Rectified Auto-encoder,RAE),并得到参数;

32)将第一个RAE的输出作为第二个RAE的输入,按相同的方式继续训练得到第二组参数,并对后面所有的RAE采取相同的策略依次训练其参数;

33)在所有隐含层训练完成之后,通过有监督的反向传播算法调整所有层的参数,实现网络“微调”;

34)将最顶层的隐含层输出作为Softmax分类器的输入,对输入的语音数据进行分类识别;

35)选用三种激活函数ReLU、Sigmoid、tanh与两种方法L2正则化和权重衰减Dropout的不同组合进行实验,分析不同方法对系统识别性能的影响;

36)选用ReLU和L2正则化的组合方法较其他方法取得了最佳的识别结果,从而证明了基于L2正则化的修正线性深度自编码网络模型构建方法的可行性。

与传统的深度学习语音识别算法相比,本发明克服了深度模型训练时产生的梯度消失和过拟合问题,优化模型训练算法,提高了训练效率,增强了语音系统的识别性能和抗噪能力。

附图说明

图1是本发明修正线性深度自编码网络语音识别方法框图。

图2是本发明GFCC特征提取流程框图。

图3是本发明MFCC特征提取流程框图。

图4是本发明中建立的修正线性深度自编码网络模型图。

图5是本发明ReLU函数图像。

图6是本发明修正线性深度自编码网络训练过程示意图。

图7是本发明不同方法组合的平均识别率折线图。

图8是本发明不同方法组合的实验结果表图。

具体实施方式

对本发明的具体实施方式作出进一步说明如下。

由于自动编码器可以通过无监督逐层贪婪训练算法进行快速训练,因此,这种方法绕过了直接从整体上训练 DAE的高度复杂性,而将其化简为对多个自动编码器的训练问题。通过这种方式训练后,再经过传统的全局学习算法进行对网络的微调,以最大似然函数为目标函数,使网络达到最优。这种学习算法,本质上等同于先通过逐层自动编码器预训练使模型得到一个较优的初始参数值,然后再通过采用少量的传统学习算法,进一步训练优化网络。

在训练时,针对以传统的Sigmoid函数作为激活函数的DAE模型,在利用反向传播算法从深层向浅层传递误差时,梯度指数经过每层的衰减后浅层很难接受到有效的训练信号问题,以及容易发生的过拟合现象,本发明提出基于L2正则化的修正线性深度自编码网络模型构建方法,优化网络模型训练算法,提高系统识别性能。

附图1是本发明建立修正线性深度自编码网络语音识别系统的流程图,在本发明中,利用语音信号的声学特性,并结合深度神经网络具有的深层非线性表达特性进行语音识别。

本发明方法包括语音数据预处理、提取声学特征和训练修正线性深度自编码网三大步:

1)语音数据预处理:

11)对语音信号进行采样和量化,采样率为,帧长256采样点,帧移128采样点;

12)对步骤11)所得到的语音信号进行预处理,包括预加重、分帧、加窗以及归一化处理;

13)将步骤12)所得的单帧信号进行端点检测,获得有效的单帧信号;

2)提取声学特征:

21)将步骤13)所得的有效单帧信号进行快速傅里叶变换,得到语音信号的频域信号;

22)使用对应的滤波器组对步骤21)所得的频域信号进行滤波处理;

23)对22)所得的滤波信号进行一系列非线性变换得到语音的声学特征;

3)训练修正线性深度自编码网的步骤为:

31)利用“训练集”数据通过无监督逐层贪婪训练算法“预训练”网络的第一个修正线性自动编码器(Rectified Auto-encoder,RAE),并得到参数;

32)将第一个RAE的输出作为第二个RAE的输入,按相同的方式继续训练得到第二组参数,并对后面所有的RAE采取相同的策略依次训练其参数;

33)在所有隐含层训练完成之后,通过有监督的反向传播算法调整所有层的参数,实现网络“微调”;

34)将最顶层的隐含层输出作为Softmax分类器的输入,对输入的语音数据进行分类识别;

35)选用三种激活函数ReLU、Sigmoid、tanh与两种方法L2正则化和权重衰减Dropout的不同组合进行实验,分析不同方法对系统识别性能的影响;

36)实验结果证明,选用ReLU和L2正则化的组合方法较其他方法取得了最佳的识别结果,从而证明了基于L2正则化的修正线性深度自编码网络模型构建方法的可行性和研究价值。

下面对应本发明的实施步骤,结合附图对本发明技术方案的具体实施进行详细说明。

1、本发明在提取语音信号的声学特征之前,对其进行预处理,对应步骤11)、12)和13)中所述的预处理,内容包括:预加重、分帧、加窗以及端点检测,具体内容如下:

(1)对语音信号进行采样和量化,采样率为,帧长256采样点,帧移128采样点;

(2)为了滤除低频干扰,对语音信号进行预加重处理,利用一阶数字预加重滤波器实现,其函数为:

其中,为预加重滤波器的系数,取值范围一般在0.94~0.97,通常取0.95。预加重之后的信号为:

(3)使用汉明窗对语音信号进行加窗,将语音信号划分为一个一个的短时段,每一个短时段称为一帧,具体如下:

汉明窗:

加窗后的语音信号为:

(4)根据语音信号的能量和过零率,采用双门限比较端点检测法确定语音信号的起始点和终止点,具体如下:对语音信号每一帧表示为,表示采样点,表示帧长,表示帧数;

计算语音信号每一帧的短时帧能量:;计算语音信号每一帧的过零率:

第一级判决:首先根据语音信号的平均能量值即所有Ei的平均值设定一个较高的阈值T1,用来寻找语音的起始点;然后再利用噪声的平均能量设定一个较低的阈值T2,用来判定第一级判决中语音信号的终止点,至此第一级判决结束;

第二级判决:利用噪声的平均过零率ZN即所有Zi的平均值,设定一个阈值T3,用来判定语音信号开始时的清音和结尾处的尾音。

2、对经过预处理的语音信号进行特征提取,对应步骤21)、22)和23)所述的特征提取,GFCC特征和MFCC特征提取流程框图参见附图2,分别采用Mel滤波器组和Gammatone滤波器组进行特征参数的提取,得到维度为1024维的梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC)和Gammatone听觉滤波器频率倒谱系数(Gammatone Frequency Cepstrum Coefficient,GFCC),具体过程以GFCC为例:

(1)将经过预处理的信号进行快速傅里叶变换(Fast Fourier Transform, FFT);

对加窗后的语音信号进行快速傅里叶变换,把语音信号由时域变到频域,得到语音信号的频域信号:

(2)Gammatone滤波器组滤波,对频域信号取模的平方得到能量谱,然后用Gammatone滤波器组进行滤波处理:

(3)对数压缩,对每个滤波器的输出进行对数压缩:

其中,是分帧后每一帧信号的傅里叶变换,是第通道的归一化幅频响应,N为每一帧信号的样点数,P为滤波器个数,;

(4)离散余弦变换(Discrete Cosine Transform, DCT)。对经过指数压缩的能量信号进行离散余弦变换

其中,M为GFCC特征的维数;

(5)升半正弦倒谱提升,对经过DCT得到的特征进行升半正弦倒谱提升:

倒谱提升后的特征

3、建立修正线性深度自动编码网络,对应步骤31)、32)、33)和34)所述的训练步骤,修正线性深度自编码网络模型参见附图3。该网络由一层输入层、两层隐含层和一层输出层组成。输入层的单元节点数根据声学特征的位数来确定,各隐含层的单元节点数通过多次实验比较选择效果最好的一组参数,输出层分类器采用Softmax函数实现对语音的分类识别。

ReLU函数图像参见附图4,根据ReLU单元的函数特性,代替Sigmoid函数作为模型的激活函数。ReLU函数的定义为:

从图像上可以看出,当输入小于0时函数输出结果也为0,当输入大于0时,函数输出保持线性,并与输入保持一致。相比Sigmoid函数,ReLU这种硬判决的形式更能模拟出人脑神经元的信息传递方式,也更接近真实的生物神经网络;另外它具有的分段特性以及天然的稀疏性,有效的提高网络的计算速度和运行效率。

ReLU的平滑表示Softplus函数图像也如附图4所示。虽然ReLU函数具有一定的优势,但不可否认的是,作为分段函数其导数在原点处不连续,即时,导数为0;时,导数为1,有可能会影响它的性能表现。因此,与ReLU近似平滑的Softplus函数也被广泛地使用,其函数定义为:

其导数在定义域内处处连续,并且它的导函数即为Sigmoid函数。另外,当时其导数为非零数,当时其导数趋近于1。

修正线性深度自编码网络训练过程示意图参见附图5。通过改进的自动编码器RAE,采用无监督学习“预训练”和有监督学习“微调”的方式,对修正线性深度自编码网络进行训练。

设输入向量,隐含层向量,输出层向量,可以得到隐含层和输出层与输入层的映射关系分别为:

其中,为修正线性单元ReLU,分别为互为转置的权值矩阵,为偏置向量。

RAE的学习目标是使得目标输出最大可能地等于输入,为了防止深度模型在小量样本下容易产生的过拟合问题,选择在网络层中引入正则项(惩罚因子),也就是在误差函数中加入某层或某几层权值的L2范数,从而限制权值的大小,对于向量,L2范数表达式如下:

将其引入到损失函数,则损失函数为:

其中,λ为正则项系数,X为由若干个样本向量构成的矩阵,n为样本数。

RAE权重训练采用随机梯度下降算法,权值更新公式为:

其中为更新步长,偏置向量和与的更新方式相同。

在前一层的基础上,将隐含层输出Z作为下一层RAE的输入向量按照同样的步骤依次训练,得到参数。

将预训练得到的参数对网络进行初始化操作,接着在有监督的学习方式下通过反向传播算法对网络的所有层参数进行“微调”。具体过程如下:当神经元为第一层隐含层单元时:

为隐含层第个神经元。为输入层第个神经元与本层隐含层第个神经元之间的权值。为隐含层第个神经元的阈值。计算可得:

其中为修正线性单元ReLU,是隐含层第个神经元输出。

该算法的学习规则是基于最小均方误差计算的,当一个样本输入网络并产生输出时,均方误差为:

根据梯度下降法,权值修正量应为:

令,则可得到为学习率。可求得各层的反向传播误差:

同理可得到输出层误差和隐含层误差,根据各层计算得到的误差对网络参数进行“微调”。

4、分析不同方法组合对系统识性能的影响,对应步骤35)和36)所述的实验步骤。本发明通过多次实验的方式证明该方法的有效性和可行性,在选用相同的语料情况下,分析对比6种不同方法组合的实验结果(如表图8所示)。6种方法组合均在深度自编码网络的基础上完成,选用不同的激活函数和约束方法证明该发明的可行性。6种组合方法依次为:

1)激活函数为tanh函数,约束方法为L2正则化;

2)激活函数为tanh函数,约束方法为Dropout;

3)激活函数为Sigmoid函数,约束方法为L2正则化;

4)激活函数为Sigmoid函数,约束方法为Dropout;

5)激活函数为ReLU,约束方法为L2正则化;

6)激活函数为ReLU,约束方法为Dropout。

实验采用的语料库内容为数字和简单控制性语句,此语料库包括10词、20词、30词、40词以及50词五种不同的子库,均在纯净环境下录制,本语料库由16名男性发声构成,每人每词发音3遍,在完全闭集的非特定人识别中,采用9人的发音作为训练语料库,而另外7人的发音作为测试语料库进行实验。例如,采用10词进行非特定人识别,则采用9人的10词下的语音作为训练(训练文件数为10*3*9=270个),而另外7人相同条件下的语音作为测试(测试文件数10*3*7=210个)。语料库采样频率为11025Hz,采样比特率为16bit。

6种方法组合的平均识别率折线图如图7所示,从图像可以看出方法组合5的平均识别率最高,可达到95%以上,较其他方法组合有明显的优势。因此本发明选用ReLU为激活函数,L2正则化为约束方法来构建修正线性深度自编码网络,该方法弥补了传统方法中存在的梯度消失和过拟合问题,增强了模型学习和表达的能力,提高模型训练效率,具有重要的研究意义。

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