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

         过去 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.

时间: 2024-09-30 20:29:04

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

(转) 机器学习很有趣Part6:怎样使用深度学习进行语音识别

  本文转自:http://www.jiqizhixin.com/article/2321   机器学习很有趣Part6:怎样使用深度学习进行语音识别 2017-02-19 13:20:47    机器学习    0 0 0 还记得machine learning is fun吗?本文是该系列文章的第六部分,博主通俗细致地讲解了神经网络语音识别的整个过程, 是篇非常不错的入门级文章.   语音识别正闯入我们的生活.它内置于我们的手机.游戏机和智能手表.它甚至正在让我们的家庭变得自动化.只需要 5

斯坦福大学邢磊演讲干货:深度学习在放疗中的应用

作为医学影像方面的技术专家和实战专家,斯坦福大学医学物理中心主任.汇医慧影首席科学家邢磊教授近日连续受邀参加国内外放射放疗学术会议,包括2017美国医学物理年会(AAPM), 成都图像计算与数字医学国际研讨会, 第一界人工智能在医学中的应用峰会, 美国放射肿瘤学会(ASTRO)年会, 以及由北京医师协会放射专科医师分会等.近年来AI技术被广泛讨论. 如何将AI融合临床,如何帮助影像医生释放更多价值,如何从影像诊断为切入点,用AI来深入肿瘤治疗全链条,也是当前热门话题,这是一场数据和算法的博弈,更

分享Andrew Ng在深度学习暑期班中演讲的机器学习项目

更多深度文章,请关注:https://yq.aliyun.com/cloud 作者:Thomas Johnson,位于芝加哥 大家可以去GitHub看项目. 本文尝试从在2016年深度学习暑期学校中Andrew Ng的"应用深度学习的基本要点"谈话中总结了他的推荐机器学习工作流程.任何错误或误解都是我自己的观点. 从此开始 1.在你的任务上衡量一个人的表现 2.你的训练和测试数据来自相同的分布吗? 是的 不是 如果你的训练和测试数据来自相同的分布 1.打乱并将您的数据分成训练/开发/测

AR算法原理及深度学习在计算机视觉中的应用

去年以来,越来越多的AR技术被用在各大互联网公司APP的营销场景中,其中最多的便是AR识别和追踪.但一段时间内,真正掌握识别追踪核心技术和应用的国内团队并不多,甚至出现了专门提供AR识别SDK的小公司创业机会. 那么,AR识别技术背后的算法原理是什么,以及计算机视觉与深度学习在AR中的应用热点趋势有哪些?本次分享会从图像特征提取.特征匹配与图像变换.深度学习算法等方面给你进行深入浅出的技术展现,让AR识别技术不再成为难以逾越的技术壁垒. 原文链接

如何理解深度学习分布式训练中的large batch size与learning rate的关系?

问题详情: 在深度学习进行分布式训练时,常常采用同步数据并行的方式,也就是采用大的batch size进行训练,但large batch一般较于小的baseline的batch size性能更差,请问如何理解调试learning rate能使large batch达到small batch同样的收敛精度和速度? 回答: 最近在进行多GPU分布式训练时,也遇到了large batch与learning rate的理解调试问题,相比baseline的batch size,多机同步并行(之前有答案是介

深度学习:神经网络中的前向传播和反向传播算法推导

1. 神经网络 这是一个常见的神经网络的图: 这是一个常见的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层,当我们输入x1,x2,x3等数据时,通过隐含层的计算.转换,输出你的期望,当你的输入和输出是一样的时候,成为自编码模型(Auto-Encoder),而当你输入和输出是不一致的时候,也就是我们常说的人工神经网络. 2. 如何计算传播 首先我们先构建一个简单的网络层作为例子: 在这个网络层中有 第一层输入层:里面包含神经元i1,i2,截距:

语音识别的前世今生 | 深度学习彻底改变对话式人工智能

CNET科技行者 8月21日 北京消息:"语音识别"的终极梦想,是真正能够理解人类语言甚至是方言环境的系统.但几十年来,人们并没有一个有效的策略来创建这样一个系统,直到人工智能技术的爆发. 在过去几年中,人们在人工智能和深度学习领域的突破,让语音识别的探索跨了一大步.市面上玲琅满目的产品也反映了这种飞跃式发展,例如亚马逊Echo.苹果Siri 等等.本文将回顾语音识别技术领域的最新进展,研究促进其迅猛发展进程的元素,并探讨其未来以及我们距离可以完全解决这个问题还有多远. 背景:人机交互

深度学习框架中的魔鬼:探究人工智能系统中的安全问题

ISC 2017中国互联网安全大会举办了人工智能安全论坛. 我们把论坛总结成为一系列文章,本文为系列中的第一篇. 深度学习引领着新一轮的人工智能浪潮,受到工业界以及全社会的广泛关注. 虽然大家对人工智能有很多美好的憧憬,但是现实是残酷的 - 随着一批深度学习应用逐渐开始变成现实,安全问题也渐渐显现出来. 人工智能应用面临来自多个方面的威胁:包括深度学习框架中的软件实现漏洞.对抗机器学习的恶意样本生成.训练数据的污染等等.这些威胁可能导致人工智能所驱动的识别系统出现混乱,形成漏判或者误判,甚至导致

机器学习实例:深度学习如何做语音识别!

文章讲的是 机器学习实例:深度学习如何做语音识别,语音识别正在「入侵」我们的生活.我们的手机.游戏主机和智能手表都内置了语音识别.他甚至在自动化我们的房子.只需50美元,你就可以买到一个Amazon Echo Dot,这是一个可以让你订外卖.收听天气预报.甚至是买垃圾袋的魔术盒,而这一切你只需要大声说出: Aleax,给我订一个pizza! Echo Dot 在2015年的圣诞假期一经推出就大受欢迎,在亚马逊上面立刻售罄. 但其实语音识别已经存在很多年了,那为什么现在才成为主流呢?因为深度识别终