aihot  2017-11-04 22:03:05  机器学习 |   查看评论   

循环神经网络及相关模型

  RNN和LSTM之前的文章也简要的提过。

  我们在上文中,提到GMM-HMM无法对语音的动态特性进行建模,因此有了HMM的若干种变种,以求捕捉更多现实的语音在时域中的动态属性的统计模型,比如隐藏动态模型、轨迹分段模型等等。

  同样的,DNN-HMM方法也并没有对语音的动态特性进行建模,所以人们考虑引入RNN,在时间维度上使用一个带时间延迟的循环结构使网络拥有了记忆结构,通常表示为一个内部状态。RNN所使用的状态空间使得它可以表示和学习常见时间范围内序列的相关性。

  首先RNN本身就是一个深度模型,而且RNN如果在时间上进行展开,可以建立一个和输入语音句子长度一样层数的深度模型。

  RNN的训练主要依靠延时反向传播算法(BPTT),它是经典反向传播算法(BP)的一个拓展,用于学习循环神经网络随着时间展开网络的权重矩阵和通过时间顺序回传错误信号,BP中对统一训练帧t时刻的多个堆积隐层,被替换成T个跨越时间的相同单一隐层。

  这里其实还有几个点,但是难度较大,这里列出来,有机会再回来补,BPTT、回声状态性质、状态紧缩、梯度消失的充分条件、梯度爆炸的必要条件、原始对偶法、拉格朗日算子。

计算型网络

  这里简单介绍一下什么是计算型网络(computational network,CN),计算型网络是一种描述任意学习机的整合框架,比如DNN、CNN、RNN、LSTM、逻辑回归和最大熵模型等。一个CN是一个有向图,其中的每个叶子节点代表一个输入值或者一个参数,每个非叶子节点表示一个在它的子节点上的矩阵操作。

  在主要的机器学习模型中,例如DNN、CNN、RNN有一个常见的属性:所有的这些模型都可以被描述成一系列的计算步骤,如果我们知道如何计算每一步和每一步计算的顺序,就有了一个神经网络的实现。该观察表明,我们可以在计算型网络的框架下统一所有这些模型,其中部分模型就已经实现在Theano、Tensorflow、CNTK这些工具中实现了。

  CN给我们提供了描述任意网络时更大的便利性,并且允许我们在同样的联合框架里构建几乎所有我们感兴趣的模型。比如我们可以很容易的修改某神经网络,比如以ReLU代替Sigmoid,或者自定义的去建立一个共享模型参数的网络。

总结以及未来研究方向

  在语音识别中应用神经网络可以追溯到20世纪80年代,比如ANN/HMM、时间延迟神经网络(TDNN),但是效果一直无法与优化后的GMM-HMM相比,后来CD-DNN-HMM被提出了,效果远好于GMM-HMM。

  CD-DNN-HMM商用的第一个问题就是解码速度的问题,如果使用简陋的实现,在单个CPU核上计算DNN的声学分数需要3.89倍的实时时间,后来,Google采用了量化、SIMD指令、批量化和延迟计算等技术后,DNN的计算时间相应的降到了0.21倍的实时时间。

  然后第二个问题是训练速度,尽管训练309小时的CD-DNN-HMM的表现已经比2000小时训练数据上训练出来的CD-GMM-HMM系统表现更好,但仍然无法令人满意,为了进一步提高训练速度,一些并行的训练算法被开发出来,而且异步随机梯度下降算法也被应用来提高训练速度。2013年,低秩近似算法被提出,用较小的矩阵的乘积来近似较大的矩阵,可以用于加速训练和解码,可以减少2/3的解码时间,而且简单有效,已被广泛应用于商用语音识别系统中。

  然后是序列鉴别性训练被提出,因为交叉熵损失函数是帧级别的,如果采用序列鉴别性训练准则明显可以低风险的提高语音识别的准确率。

  GMM本身不能转换特征,在传统的GMM系统中,特征的处理需要包含很多步骤,但是人们开始发现,对于DNN系统来说,很多特征处理步骤都是无足轻重的。人们解释为,所有DNN的隐层都可以认为是一个强大的非线性特征转化器,而softmax层是基于前一隐层表征的分类器。特征转化和分类之间可以交叉优化。而且DNN可以将相关输入中很多在GMM系统中不能直接使用的特征用起来。

  然后是自适应,当CD-DNN-HMM被提出时,有人担心它缺少有效的自适应技术,为了处理这个问题,特征鉴别性线性回归自适应技术被提出,而且后续还有加KLD正则项的保守训练,还有各种噪声感知训练(NaT)、说话人感知训练(SaT)被提出,i-vector也被提出了,可以将说话人最重要的特征压缩表示到一个低维固定长度。

  然后是多任务和迁移学习,人们发现有些可以共享相似表征的任务可以共享隐层隐层结构,发现通过添加合适的辅助任务可以提高模型的泛化性,而且还可以通过迁移学习利用相似任务的隐层结构。

  再然后是RNN和LSTM,这种结构可以更好的考虑音频在时域上的动态特性,可以更充分有效的利用历史信息。

  现在的语音识别技术还有很多亟待提高的场景:

  • 远场麦克风语音识别
  • 高噪音环境下语音识别
  • 带口音的语音识别
  • 不流利的自然语音,变速或带有情绪的语音识别
  • 多人语音或背景交谈的语音识别

  《浅谈语音识别基础》至此结束,其实这篇文章我自己是很不满意的,尤其是后面RNN的性质、训练以及CN这两部分,根本没有深入进去,都是浅尝辄止。一个是因为我参考的这本《解析深度学习:语音识别实践》可以讲是一本需要较丰富经验才可以流畅理解的资料,而且这两块内容的其他相关资料极少,无法对比参考,如果一篇篇英文论文去研究又太耗时间,也与我自身产品经理的定位不符,所以就只好仅做简单的介绍。对于想通过阅读这篇文章来增进理论水平的技术人员(如果还真有的话),我感到十分抱歉,也非常惭愧。

 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自浅谈语音识别基础

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]