• CS224d lecture 14札记


    欢迎转载,转载注明出处:

    http://www.cnblogs.com/NeighborhoodGuo/p/4720985.html

    这一课也是请得嘉宾讲得课,据说是standford的一位博士。讲得主题是Neural Networks in Speech Recognition

    不过Speech Recognition可谓是博大精深啊,这一堂课就像讲师在课前的Overview里说的一样,只是做一个perspective

    让大家对这个方面有一个简要的了解,具体如何操作,这个就没有详细讲了。。。课上讲得许多model还有推荐论文里讲得一些model部分我都不太熟悉,看得我真是痛苦呀。暂且记录下部分难点和自己不了解的地方,如果以后有机会做这方面的工作,再翻出来详细研究。

    课前给了个overview,然后之后的整堂课都是按照这个outline进行的,脉络清晰明了。

    Speech recognition systems overview

    如图所示,Speech recognition主要分为三个部分。第一个部分是Noise Reduction这个在本课中没有涉及;第二个部分是Transcription,这个是这一课的内容;第三个部分是Understanding,之前讲得所有内容都是围绕第三个部分展开的。

    最后讲师推荐了一个Speech Data的Dataset名字叫Switchboard

    http://www.isip.piconepress.com/projects/switchboard/

    我在网上找到这样一个corpus不知道和讲师说的那个一样不一样。

    HMM-DNN(Hybrid) acoustic modeling

    首先为了引入HMM-DNN先介绍了一个在Speech Recognition领域曾经风靡一时的HMM-GMMs

    GMMs我在看CS229的时候学过,HMM在PGM课上也看过,可是这两玩意结合起来还是看不太明白。

    上面一层是HMM;下面的是计算P(x|s),根据state求对应features的概率。这一点让我有点疑惑,我们的目的是求HMM中的Hidden state,首先s都是未知的,怎么能基于它呢;其次目的是求Hidden state求P(x|s)有啥意义

    继而就介绍了HMM-DNN Hybrid Acoustic Models

    和HMM-GMM相比只是把Acoustic Model替换成了DNN

    这个模型据说有很长时间的历史了,但是为什么它在最近才崭露头角呢?

    其中一个最重要的原因是我们的计算机的速度目前足够快了,足以支撑,运行如此大的模型,并且能够跑起来多个experiments,使得进行优化成为可能。

    以前的model多为单层的NN,现在的是多层的model。还有一个重要的是使用的non-linear model比之前的要好很多。

    在experiment中讲师使用了名为TIMIT的dataset作为测试。

    模型的层数太少不行,不能很好的捕捉到features,但是太多了也很容易overfitting性能也会下降。

    在选择non-linear function的时候,rectify function在BP的时候对error的损失比较小使得它在性能方面比tanh好

    两种优化DNN的方法

    第一种是把普通的DNN替换成CNN,这种CNN对于失真的声音里信息的提取很优越。

    第二种是把普通的DNN替换成Recurrent NN

    HMM-free RNN recognition

    这里把传统的sub-phone的提取转换成了Collapsing function

    在单词输出的时候不再以整一个单词作为一个单位,而将单词的部分fragment作为一个单位

    对于语音之间的空隙不发音的时间段,以“_”占位。

    使用RNN比普通的NN Error rate下降了很多

    这种model还有一个好处,就是对于corpus里没有的词汇也可以造出来。

    结论

    HMM-DNN是目前最好的speech recognition model

    讲师最后预测不久的将来我们的所有电子设备中的Speech recognition model都会换成HMM-DNN

    链接:

    Speech recognition model的开源project

    http://kaldi.sourceforge.net/

    两个dataset:

    TIMIT

    http://blog.163.com/gz_aaa/blog/static/37834532201471881923177/

    http://www.fon.hum.uva.nl/david/ma_ssp/2007/TIMIT/

    Switchboard

    http://www.isip.piconepress.com/projects/switchboard/

  • 相关阅读:
    JAVA NIO之文件通道
    Java NIO之缓冲区
    LinkedList 源码分析(JDK 1.8)
    ArrayList 源码详细分析
    自己动手实现一个简单的JSON解析器
    科普:String hashCode 方法为什么选择数字31作为乘子
    LinkedHashMap 源码详细分析(JDK1.8)
    HashMap 源码详细分析(JDK1.8)
    python创建目录
    python3 内置方法 字符串转换为字典
  • 原文地址:https://www.cnblogs.com/NeighborhoodGuo/p/4720985.html
Copyright © 2020-2023  润新知