IBM2016大规模语音识别系统(LVCSR)将单词错误率降到了6.9%,训练数据是Switchboard数据集(2000小时的语料库),除了本文要讲的声学模型之外,其解码部分采用的是HMM(关于什么是HMM,请参见:聊聊隐马尔科夫模型(HMM)),语言模型采用的是启发性的神经网络语言模型。声学模型主要包含三个不同的模型,分别是带有maxout激活的循环神经网络、3*3卷积核的深度卷积神经网络、双向长短期记忆网络,下面我们来具体看看它们的内部结构。

 

(1)带有Maxout激活的循环神经网络

4.1_.jpg


maxout是指对于一部分神经元取它们的最大值作为输出,采取的激活函数是ReLU函数。这里做了两种网络的比较,即sigmoid-RNN与maxout-RNN二者的性能。

 
它们的共同输入数据是:RNN所包含的时间窗为5个时间帧,每一帧的特征向量是长度为40的FMLLR特征,然后整体上再添一个长度为100的基于说话者的特征向量,因此输入数据为长度为340的向量。

 
maxout-RNN中的RNN层包含2828个神经元,通过maxout映射(2->1)成1414个神经元,映射过程中没有神经元之间的交叠;接下来是4个非RNN层,每一层的神经元个数也是2828个,同样每一层也有相同的maxout映射;最上面是一层包含1024个神经元(这层内部同样也有maxout映射)和包含32000个神经元的输出层。

 
对于基准的sigmoid-RNN网络,每一层包含2048个神经元,并且maxout-RNN的参数总数与基准的sigmoid-RNN参数总数相同。实验结果表明maxout-RNN相比sigmoid-RNN有性能提升,这里sigmoid-RNN使用的是交叉熵训练,而Maxout-RNN既采用了交叉熵训练(CE)同时又采用了序列整体训练(ST),并且maxout-RNN均表现比sigmoid-RNN要好,同时ST表现要比CE好。


(2)深度卷积神经网络

非常深的卷积神经网络的灵感来自2014ImageNet参赛的VGG网络,中心思想是使用较小的3*3卷积核来取代较大的卷积核,通过在池化层之前叠加多层卷积网络,采取ReLU激活函数,可以获得相同的感知区域,同时具备参数数目较少和更多非线性的优点(关于什么是VGG网络,请参见:我所理解的深度学习(四)——卷积神经网络应用②)。

4.2_.jpg


如上图所示,左1为最经典的卷积神经网络,只使用了两个卷积层,并且之间包含一个池化层,卷积层的卷积核也较大,9*9和4*3,而卷积的特征面也较多,512张卷积特征面。
 

左2、左3、左4均为深度卷积神经网络的结构,可以注意到与经典的卷积神经网络所不同的是,卷积的特征面由64个增加到128个再增加到256个,而且池化层是放在卷积的特征面数增加之前的;卷积核均使用的是较小的3*3卷积核,池化层的池化大小由2*1增加到2*2。


最右边10-conv的参数数目与最左边的经典卷积神经网络参数数目相同,但是收敛速度却足足快了5倍,尽管计算复杂度提高了一些。

 
实验结果如下图所示,10-conv带有池化层的结果通过序列整体训练所得到单词错误率最低,为9.4%。

4.3_.jpg



(3)双向长短期记忆网络

LSTM最近被运用到越来越多的语音识别任务中,这里采用了双向LSTM,即BLSTM。这里使用了1层BLSTM,每个LSTM隐含层包括1024个神经元,每次训练使用了无交叠的20个时间帧的子序列。

 
由于很多子序列可能取自连续的同一语句,那么如何初始化一个子序列从左到右的初始状态?做法有两种,一种是上一个子序列从左到右的最后一个状态实际上可以作为下一个子序列从左到右的起始状态,另外一种是使用训练好的参数对起始状态进行初始化。实验中比较了这两种做法,得出的结论是:如果仅仅对于交叉熵训练,第一种做法得到的误差相对较小;而如果是对于结合语言模型的单词错误率,第二种做法得到的错误率较小。这可能是因为第一种做法增加了LSTM的记忆功能,从而与HMM以及后面的语言模型发生了冲突所导致的。



(4)模型综合

本实验中一共比较了5个不同模型组合的性能,实验结果如下图所示:

4.4_.jpg


实验结果表明,RNN+VGG以及RNN+VGG+LSTM的性能相当,并且超过单纯的RNN+maxout、VGG或LSTM。同时,RNN+VGG的组合相比单一的RNN-maxout和单一的VGG在SWB测试集上均有0.6%的性能提升。



(5)总结

IBM2016年语音识别系统提出了一种结合RNN-maxout+VeryDeep CNN的声学模型,RNN-maxout相比传统的sigmoid-RNN有很大的性能提升,而且VGG网络也是充分挖掘了上下文特征信息,而单层LSTM的引入虽然没有对RNN+VGG的性能产生明显的提升作用,但是相信如果放置多层LSTM效果应该会更好,因为LSTM能够具有更远的记忆功能,对序列到序列的整体训练具有一定的优势。
 
 
 
 
 
来源: 张泽旺 深度学习每日摘要
智造家