深度学习在语音识别中的声学模型以及语言模型的应用

简介: 目前深度学习在图像和语音识别等领域应用越来越广泛,比如图像处理类应用、视频归纳、智能客服,以及延伸的服务机器人领域、车载助手等,本文着重介绍深度学习在语音识别中声学模型与语言模型中的应用,如FSMN,LSTM,RNN等网络结构的设计,比传统的结构在效果上有巨大的提升

         过去 3 年,深度学习在各个领域取得较大突破,比如计算机视觉领域的物体识别、场景分类,语音分析等,并且其技术推广和应用的速度超过人们预期,比如 Google 的广告系统已经开始使用深度学习盈利,Twitter 也通过深度学习改善App 图片及视频内容服务体验。那具体何为深度学习呢?深度学习是怎么应用在上述的各个领域呢,下面结合自身在语音识别的若干年经验,谈谈深度学习在语音识别中的具体应用。


0. 背景


         “深度学习”的概念在上个世纪便被提出,但Hinton、Lecun等人在2006年发表的论文让“深度学习”重新焕发光彩,并使得相关的学术成果在实际应用中表现良好。它的灵感来自对人脑神经的研究,因此也称为深度神经网络“DNN”。这里的“深度”并非指算法有内涵,而是指神经网络层数多,因此也称为多层结构学习算法(这几种命名不完全对等,具体的差别涉及到学派)。实际中的“深度神经网络”算法与大脑神经结构差别极大,因此深度神经网络被称为端到端的机器学习算法或者多层联结算法或许更好些(联结主义流派的说法)。

           基于深度神经网络算法的重大影响工作的出现,是在2012年之后。比如Krizhevsky、Hinton等用深度学习大幅度提高了图片分类的准确率,奠定了图像分类模型“AlexNet”的地位;Dahl等大幅度提升了语音识别的准确率。

            声学模型以及语言模型就像人的左右大脑一样,没有他们,语音识别系统就是一个空壳,毫无作用。


1. 深度学习与AM

     1.1 深度学习在AM中的应用与现状


         传统基于HMM的hybrid框架,例如:GMM-HMM,CD-DNN-HMM依然是工业界应用的主流技术,并且各种训练算法以及工具都很成熟,例HTK,Kaldi,Sphinx,并且在很多工业界都有应用。

         目前学术研究的重点逐渐转向End-To-End模型训练。其中比较成熟的训练方法是基于CTC准则的训练。文献报告结果显示[21],LSTM-CTC模型识别准确度高于HMM-LSTM模型,识别速度更快。

基于Attention机制的End-To-End模型训练成为研究热点[22],也是Google,Microsoft等目前的研究热点领域。但是目前据文献报告,识别准确度差于LSTM-CTC模型。

         CNN技术重新得到重视[19][20],作为End-To-End中特征提取的重要一环。


    1.2 基于FSMN的AM


         FSMN[18],是由科大讯飞提出的一种基于DNN改进型网络结构。在DNN的隐藏层中引入延时结构,将t-N~t-1时刻的隐藏层历史信息作为下一层的输入,从而引入了语音序列的历史信息,同时避免了RNN训练BPTT带来的问题,如:梯度消逝,计算复杂度高等。



图1 FSMN结构

         这种结构的设计是来源于Oppenheim的数字信号处理的部分[23],用无限长的脉冲响应滤波器(IIR)来模拟近似高阶的有限脉冲响应滤波器(FIR)。因为RNN中的Recurrent层可以看作一阶的IIR,它可以精确的被高阶的FIR来近似模拟。在这种全连接的结构的基础上再加上一些记忆单元,就如在FIR中延时单元一样,这样可以在前向计算的时候比纯粹的RNN更加高效并稳定。正因为该记忆单元的存在,它可以将更长的上下文信息压缩为一个固定长度的向量,这样可以使模型能够学到更多前后依赖的重要信息。


\

图2 Recurrent layer 和 IIR

         FSMN另外一点创新的地方在于引入了Attention机制。核心思想在于模仿人类的思考行为,因为人类在思考问题的时候,一般会先考虑他经历过的,或者听过的事,另外聪明的人类也会根据已有的经验来预测未来将要发生的事,结合这两者,作出的决定将更加正确,更加有实效性。因此在FSMN中,也引入了Lookback以及Lookahead思想,但是两者对当前的作用大小是不同的,因此需要计算二者的系数,这个系数就称为Attention Coefficient。具体公式如下:


                 


其中,

是Attention函数的参数,详细信息可以参考该论文[18],另外Recurrent的计算公式如下:
                                                                                                          

其中N1和N2分别表示Lookback以及Lookahead的阶数,

表示attention系数,可以很清晰的看出,该层所学习到的内容由历史以及将来组成。

训练的过程,跟大多数NN一样,都是SGD准则,使用mini-batch,同时用GPU加速,过程不在赘述。

实验结果如下表所示:

         

表1 FSMN与DNN,LSTM的对比

其中基线DNN模型是根据论文[24][25]训练得到的,整体依然采用的CD-DNN-HMM框架。在状态对齐的训练过程中,依然采用标准的GMM-HMM框架,MLE准则。预训练依然采用RBM策略。在DNN训练的过程中,依然采用CE准则,BP更新误差,网络结构是6x2048,输入特征是FB,每帧123维,上下窗长为11,DNN1的激活函数是sigmoid,DNN2采用的是ReLU。

         另外LSTM模型是根据论文[25][26][27]训练得到的,其中cell数为2048,projection节点数为512,输入依然是123维的FB特征,延迟5帧输出,BPTT为16,minibatch为64,另外BLSTM是双向的模型,BLSTM比LSTM多了3个hidden层,以及2048个cell,minibatch改为16,其他都一致。

         FSMN模型,其中sFSMN表示scalar FSMN,vFSMN表示vectorized FSMN,sFSMN的hidden层数为6,每层2048个节点,激活函数为ReLU,输入为123维FB特征,上下窗为3,vFSMN中多了lookback以及lookahead参数,试验中设为50。

从实验结果来看,vFSMN的结果最优,比BLSTM绝对好0.3个点,另外训练的速度是BLSTM的3倍。


2. 深度学习与LM

     2.1 基于Recurrent Neural Network的LM


         在讨论RnnLM之前,不得不提现在依然处于统治地位的Ngram模型,Ngram是基于马尔科夫假设(Markov Assumption):下一个词的出现仅依赖于它前面的一个或几个词。

假设下一个词的出现依赖它前面的一个词,则有:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)=p(w1)p(w2|w1)p(w3|w2)...p(wn|wn-1)

假设下一个词的出现依赖它前面的两个词,则有:

p(S)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|w1,w2,...,wn-1)=p(w1)p(w2|w1)p(w3|w1,w2)...p(wn|wn-1,wn-2)

        纵观Ngram的历史,主要在机器翻译,语音识别,拼写纠错,自动文摘等方面应用的很广泛,并取得了很好的效果,可是它本身也有一定的缺陷,比如数据稀疏性问题不能很好的解决,折扣平滑不够鲁棒,另外一个是严格的基于N阶的马尔可夫假设,限制了对更长历史的记忆。

RNN模型是将每个词语映射到一个Compact Contiuous Vector Space里,并且使用Recurrent Connections 将过去更长时间的历史连接起来,从而影响现在的输出,这样更贴近实际。

        RNN的结构一般是3层,输入层,隐藏层和输出层,其中输入与输出层的维数是和词典里词的个数是一致的,隐藏层一般根据实际需要,可以设置为512或1024等,有时为了加速,还加入了Class层,即根据输入的词语先预测该词所属的类,然后在预测在该类里面的词的概率大小,这样可以减少矩阵运算。在论文[1][2][3]中还提出了OOS Nodes也是为了减少矩阵运算量,加快迭代。具体结构如下图所示:

                                                                 

图3 RNN 结构

         另外,在RNN训练的过程中用到了BPTT算法[4],因为隐含层经过不断的迭代,保留了N个隐含层的最新数据,根据微分链式法则,误差需要一直传递下去                                                                                                                                        

图4 BPTT 迭代

另外误差准则,论文[5]中提到的有Cross Entropy

                                                             


Variance Regularisation

                                                             


以及Noise Contrastive Estimation

                                                            


         根据论文[5]的结果所示,从ppl以及wer的角度对比以上三种准则的效果如下表所示:

                                                     

表 2三种准则在50-best的rescoring的结果

         其中选用的训练集为Fisher和AMI[8],总共大小14M,Rnn输入层的节点数为33K,隐含层的节点数为512,输出层为22K,选取常用词汇构成,BPTT参数为5,即只往下传递5层,总共迭代10次。

另外与传统的Ngram对比结果如下:

                                                      

表3 与ngram对比的结果

其中3g,4g是用相同的语料,采用通用的工具srilm来训练的,CRNN是基于Class的RNNLM[6][7]工具训练的,FRNN是采用CUED-RNNLM[5]工具训练的,都是基于CE准则。从表格中可以看出,FRNN的效果最好。


2.2 基于Long Short Term Memory的LM


         从RNN的结构以及训练的过程来看,RNN的确比Ngram看到的历史更长,利用的信息更多,另外在输入层与隐含层之间的矩阵通过训练后,每一列可以表示one-hot对应的词向量,利用词向量的方式,可以减少数据稀疏性的影响,因为Ngram对未出现的词语是用很硬的折扣平滑方式来分配概率的,这样做存在缺陷。

         更加细致的分析RNN的结构时,会发现,对于任意的连续的输入,都结合上一次的历史,进行相同的操作,也就是不管遇到什么样的词(高频的,低频的,处于不同上下文的),都同样的学习相关的历史,而没有选择对它有重要影响的信息进行学习,导致没有区分性与侧重点,这跟我们生活很像,在生活中,我们并不是对待所有的事物,花同样的精力去学习,肯定是有所侧重,只会花更大的精力学习对自己有重要影响的事,即选择性的学习。

         LSTM[9][13]即是在这样的思想的驱动下出现的。它比RNN在结构上了多了几个门的概念,即输入门,输出门,遗忘门,分别控制对应的输入输出,以及决定着是否需要遗忘,结构如下:

                                                            

图5 LSTM 神经元结构图


与RNN结构对比,即是将原始hidden层替换为LSTM层,整体结构如下图所示:

                                                           

图6 基于LSTM的RNN的整体结构


         由于多了几个门,在训练阶段即多了几个矩阵相乘的运输量,而且是每次迭代都会产生这种运算量,跟上面的RNN训练过程类似,但是在速度上慢了很多。

训练过程中,权重的更新一般是按如下的公式:

                                                              

F是目标方程,一般情况下是根据最大似然准则来设定的,

是学习率,可以在训练的过程中控制学习的速率,从而控制模型收敛的速率。误差反向传播依然用的是BPTT[10][11][12]的算法,以及SGD的策略,与RNN一致。在这里面学习率调节,直接影响着模型的优劣,以及模型是否收敛等,根据论文[9]所示,在训练开始阶段,可以设置大一些,经过几轮迭代,可以根据在验证集上的ppl的变化幅度,来相应的降低学习率[14]。

       NN语言模型一般是用于Lattice Decoding和Rescoring,一般情况下,Lattice结构是由前缀树构成,在Lattice上每个Node的输出都是唯一的,才可以采用NN语言模型解码,另外结合Beam Pruning,以及Acoustic LM look ahead等算法,详细内容可以参考论文[9][15][16][17]

下表是论文[9]中实验用到的数据集:

                                                    

表4 实验用到的数据集


与Kneser-Ney-Smothed 5gram模型,以及rnnlm 工具训练出的模型在Dev以及Test上的效果对比如下:

                                                    

表5 各个模型下的ppl的对比


其中LSTM 的Hidden层节点数是300,Class层为1000,整个词典大小为200K,从结果中,可以看出,LSTM模型的效果要比RNN[17]好10个点以上。
       最后由于本人水平有限,在理解剖析论文细节时,难免有不恰当之处,望各位专家多多指正。


3. 参考文献

[1] J. Park, X. Liu, M.J.F. Gales, and P.C. Woodland, “Improved neural network based language modelling and adaptation”,Proc. Interspeech, 2010.

[2] H. Le, I. Oparin, A. Allauzen, J. Gauvain, and F. Yvon, “Struc-tured output layer neural network language models for speech recognition”, IEEE Trans Audio, Speech, and Language Pro-cessing, vol. 21, no. 1, pp. 197–206, 2013.

[3] X. Liu, Y. Wang, X. Chen, M.J.F. Gales, and P.C. Woodland,“Efficient lattice rescoring using recurrent neural network lan-guage models”, Proc. ICASSP, 2014.

[4] D.E. Rumelhart, G.E. Hinton, and R.J. Williams, Learningrepresentations by back-propagating errors, MIT Press, Cam-bridge, MA, USA, 1988.

[5] T. Mikolov, S. Kombrink, L. Burget, J.H. Cernocky, and S.Khudanpur, “Cued-rnnlm—an open-source toolkit for efficient traning and evaluation of recurrent neural network language models”, Proc. ICASSP, 2011.

[6] T. Mikolov, S. Kombrink, A. Deoras, L. Burget, and J. Cer-nocky, “Recurrent neural network language modeling toolkit”,Proc. ASRU Workshop, 2011.

[7] X. Chen, Y. Wang, X. Liu, M.J.F. Gales, and P.C. Woodland,“Efficient training of recurrent neural network language mod-els using spliced sentence bunch”, Proc. Interspeech, 2014.

[8] I. McCowan, J. Carletta, W. Kraaij, S. Ashby, S. Bourban, M.Flynn, M. Guillemot, T. Hain, J. Kadlec, V. Karaiskos, M. Kro-nenthal, G. Lathoud, M. Lincoln, A. Lisowska, W. Post, D.Reidsma, and P. Wellner, “The AMI meeting corpus: A pre-announcement,” Machine learning for multimodal interaction,pp. 28–39. Springer, 2006.

[9] Martin Sundermeyer, Ralf Schl ̈uter, Hermann Ney,“rwthlm – The RWTH Aachen University Neural Network Language Modeling Toolkit”, Proc. ICASSP, 2016.

[10] Rumelhart, D. E., Hinton, G. E., Williams, R. J., “Learning In-ternal Representations by Error Propagation”, in: McClelland,J. L., Rumelhart, D. E., PDP Research Group, The, “Parallel Dis-tributed Processing”, The MIT Press, 1986, pp. 318–362.

[11] Werbos, Paul J., “Backpropagation Through Time: What It Doesand How to Do It”, Proceedings of the IEEE 1990, Vol. 78, No. 10,pp.1550–1560

[12] Williams, R. J., Zipser, D., “Gradient-Based Learning Algorithmsfor Recurrent Networks and Their Computational Complexity”,in: Chauvain, Y., Rumelhart, D. E., “Backpropagation: The-ory, Architectures, and Applications”, Psychology Press, 1995,pp. 433–486

[13] Graves, A., Mohamed, G., Hinton, G., “Speech Recognition with Deep Recurrent Neural Networks”, Proc. of ICASSP 2013, pp.6645–6649

[14] Hinton, G., “Neural Networks for Machine Learning”, Online Course at coursera.org, Lecture 6, 2012

[15] Auli, M., Galley, M., Quirk, C., and Zweig, G., “Joint Lan-guage and Translation Modeling with Recurrent Neural Net-works”, Proc. of EMNLP 2013, pp. 1044–1054

[16] Sundermeyer, M., T ̈uske, Z., Schl ̈uter, R., and Ney, H., “Lattice Decoding and Rescoring with Long-Span Neural Network Lan-guage Models”, Interspeech 2014, accepted for publication

[17] Mikolov, T., Deoras, A., Kombrink, S., Burget, L., and Cˇernock ́y,J. H., “Empirical Evaluation and Combination of Advanced Lan-guage Modeling Techniques”, Proc. of Interspeech 2011, pp. 605–608

[18] Shiliang Zhang, Cong Liu, Hui Jiang, Si Wei, Lirong Dai, Yu Hu,” Feedforward Sequential Memory Networks: A New Structure to Learn Long-term Dependency”, arXiv:1512.08301v2 [cs.NE] 5 Jan 2016

[19]F. Seide, G. Li, and D. Yu, “Conversational speech transcription using context-dependent deep neural networks,” in Proc. Interspeech,2011.

[20]Kanishka Rao, etc., Flat Start Training of CD-CTC-SMBR LSTM RNN Acoustic Models, ICASSP 2016

[21]Tara Sainath,etc.,Convolutional, Long Short-Term Memory, Fully Connected Deep Neural Networks,ICASSP 2015

[22]Bahdanau, D., Cho, K., and Bengio, Y. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473, 2014.

[23]Oppenheim, A. V., Schafer, R. W., Buck, J. R., and et al. Discrete-time signal processing, volume 2. Prentice-hall Englewood Cliffs, 1989.

[24]Dahl, G.E., Yu, D., Deng, L., and Acero, A. Contextdependent pre-trained deep neural networks for largevocabulary speech recognition. IEEE Transactions on Audio, Speech, and Language Processing, 20(1):30–42, 2012.

[25] Hochreiter, S. and Schmidhuber, J. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.

[26] Sak, H., Senior, A., and Beaufays, F. Long short-term memory based recurrent neural network architectures for large vocabulary speech recognition. arXiv:1402.1128, 2014.

[27]Sainath, T.N., Mohamed, A., Kingsbury, B., and Ramabhadran, B. Deep convolutional neural networks for LVCSR. In Proceedings of IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 8614–8618, 2013.

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
4天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品市场预测的深度学习模型
使用Python实现智能食品市场预测的深度学习模型
28 5
|
4天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的工作原理及其在处理图像数据方面的优势。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率。同时,文章也讨论了当前面临的主要挑战,包括数据不足、过拟合问题以及计算资源的需求,并提出了相应的解决策略。
|
5天前
|
机器学习/深度学习 分布式计算 并行计算
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了当前主流的卷积神经网络(CNN)架构,并讨论了在实际应用中遇到的挑战和可能的解决方案。通过对比研究,揭示了不同网络结构对识别准确率的影响,并提出了优化策略。此外,文章还探讨了深度学习模型在处理大规模数据集时的性能瓶颈,以及如何通过硬件加速和算法改进来提升效率。
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习中的Transformer模型
探索深度学习中的Transformer模型
11 1
|
5天前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。
|
5天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
21 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
5天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
25 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
4天前
|
机器学习/深度学习 算法 TensorFlow
深度学习在图像识别中的应用
【10月更文挑战第39天】本文将探讨深度学习技术在图像识别领域的应用。通过介绍深度学习的基本原理,我们将了解到其在图像处理中的强大能力。文章还将展示一个简单的代码示例,用于实现一个基本的图像分类模型。最后,我们将讨论深度学习在图像识别中的未来发展趋势和挑战。
|
4月前
|
机器学习/深度学习 自然语言处理 算法
未来语音交互新纪元:FunAudioLLM技术揭秘与深度评测
人类自古以来便致力于研究自身并尝试模仿,早在2000多年前的《列子·汤问》中,便记载了巧匠们创造出能言善舞的类人机器人的传说。
12281 116
|
14天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。

热门文章

最新文章