转自:http://blog.csdn.net/richard2357/article/details/16896837

近来在了解卷积神经网络(CNN),后来查到CNN是受语音信号处理中时延神经网络(TDNN)影响而发明的。本篇的大部分内容都来自关于TDNN原始文献【1】的理解和整理。该文写与1989年,在识别"B", "D", "G"三个浊音中得到98.5%的准确率,高于HMM的93.7%。是CNN的先驱。

普通神经网络识别音素

在讲TDNN之前先说说一般的神经网络的是怎样识别音素的吧。假设要识别三个辅音"B", "D", "G",那么我们可以设计这样的神经网络:

图1

其中输入0-12代表每一帧的特征向量(如13维MFCC特征)。那么有人可能会问了,即使在同一个因素"B"中,比如"B"包含20帧,那么第1帧与第15帧的MFCC特征也可能不一样。这个模型合理吗?事实上,"B"包含的20帧MFCC特征虽然有可能不一样,但变化不会太大,对于因素还是有一定区分度的,也就是说这个模型凑合凑合还能用,但效果不会非常好。GMM模型可以用这种模型来解释。

时延神经网络(TDNN)

考虑到上述模型只用了一帧特征,那么如果我们考虑更多帧,那么效果会不会好呢?

好,那么我们设计一个包含多帧的神经网络,如图2我们考虑延时为2,则连续的3帧都会被考虑。其中隐含层起到特征抽取的作用,输入层每一个矩形内共有13个小黑点,代表该帧的13维MFCC特征。假设有10个隐含层(这个不对,意思应该是一个隐层10个节点),那么连接的权重数目为3*13*10=390。

图2

为了结构紧凑显示,我们将其重绘为图3

图3

图3与图2是等价的。其中每条彩色线代表13*10=130个权重值。三条彩色线为390个权重。也有资料称之为滤波器。

好,如果时间滚滚向前,我们不断地对语音帧使用滤波器,我们可以得到图4

图4

这就是延时神经网络的精髓了!其中绿色的线权值相同,红色的线权值相同,蓝色的线权值相同。相当于把滤波器延时。输入与隐层共390个权值变量待确定。

每个隐层矩形内包含10个节点,那么每条棕色的线包含10个权值,假设输出层与隐层的延时为4,则接收5个隐层矩形内的数据,那么隐层与输出层合计权值为10*5*3=150。权值非常少!所以便于训练。

下面就不难理解文献【1】上的图了。思想与上文一样,不过文章多用了一层隐层(多隐层有更强的特征提取和抽象能力)

图5

介绍一下他的做法。Input Layer为语谱图,黑块为大值,灰块为小值。输入层纵向为经过mel滤波器的16个特征(没用MFCC),横向为帧。Input Layer 的延时为2,映射到Hidden Layer 1的关系为16*3 -> 8,权值个数为384。Hidden Layer 1 的延时为4,映射到Hidden Layer 2的关系为8*5 -> 3,权值个数为120。Hidden Layer 2 的延时为8,映射到输出层的关系为3*9 -> 3,权值个数为81。合计权值为384+120+81=585。输出的三个单元分别代表"B", "D", "G"的得分。

训练方法

(1)和传统的反向传播算法一样。

(2)TDNN有快速算法,有兴趣的读者可以搜索。

小结

总结TDNN的优点有以下:

(1)网络是多层的,每层对特征有较强的抽象能力。

(2)有能力表达语音特征在时间上的关系。

(3)具有时间不变性。

(4)学习过程中不要求对所学的标记进行精确的时间定位。

(5)通过共享权值,方便学习。

参考资料

【1】Waibel A, Hanazawa T, Hinton G, et al. Phoneme recognition using time-delay neural networks[J] (TDNN的原始论文,想了解的同学请细看)

【2】赵力 《语音信号处理》 chap 6.3. 6 (也是对上文的一些解释和补充说明)

接下来读者可以看卷积神经网络了(CNN),相信对CNN的理解会有所帮助。

系统学习机器学习之神经网络(十一) --TDNN相关推荐

  1. 系统学习机器学习之神经网络(七) --CPN

    原文:http://blog.csdn.net/u014070279/article/details/47299987 1987年,美国学者Robert Hecht-Nielsen提出了对偶传播神经网 ...

  2. 系统学习机器学习之神经网络(十二) --人工神经网络总结

    本来这篇还缺个RBM,但RBM在DBN中使用,暂时放在深度学习那里.这里看到一篇非常好的总结,保存下来. 转自:http://blog.csdn.net/fengbingchun/article/de ...

  3. 系统学习机器学习之神经网络(九) --Hopfield网络

    转自:http://blog.csdn.net/lg1259156776/article/details/47323889 一.前言 经过一段时间的积累,对于神经网络,已经基本掌握了感知器.BP算法及 ...

  4. 系统学习机器学习之神经网络(三)--GA神经网络与小波神经网络WNN

    1 遗传算法 1.1 遗传算法简介: 遗传算法是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随 机化搜索方法.它是由美国的 J.Holland 教授 1975 年首先提出,其主要特 ...

  5. 系统学习机器学习之神经网络(五) --ART

    原文:http://blog.csdn.net/lg1259156776/article/details/47780695?ticket=ST-86810-0pIYIAWVt6D75CfTmo6O-p ...

  6. 系统学习机器学习之神经网络(四) --SOM

    转自:http://blog.csdn.net/xbinworld/article/details/50818803,其实内容更多的是百度文库里叫<SOM自组织特征映射神经网络>这篇文章上 ...

  7. 系统学习机器学习之神经网络(一)--MLP及局部模型,RBF综述

    今天我们要谈的MLP其实是一种人工神经网络结构,属于非参数估计,可以用于解决分类和回归问题.我们先来了解下神经网络的背景,然后再来介绍下感知器. 神经网络 感知器 多层感知器 神经网络的应用 局部模型 ...

  8. 系统学习机器学习之神经网络(十) --BAM网络

    转自:http://www.07net01.com/2015/08/897795.html 联想记忆网络的研究是神经网络的重要分支,在各种联想记忆网络模型中,由B·Kosko于1988年提出的双向联想 ...

  9. 系统学习机器学习之神经网络(六) --GrossBerg网络

    原文:http://m.blog.csdn.net/article/details?id=52574264 这里先介绍GrossBerg网络是因为后面CPN中,输出层会用到GrossBerg网络,所以 ...

最新文章

  1. pca主成分分析结果解释_SKLEARN中的PCA(Principal Component Analysis)主成分分析法
  2. centos7部署两个mysql_centos7 安装mysql5.7主从复制主写分离
  3. jQuery .attr() vs .prop()
  4. python输入流和输出流_python读写gbk、utf-8等输入输出流
  5. system的相关用法
  6. python如何创建一个列表_使用python中的format()创建一个列表(make a list using format() in python)...
  7. ROI坐标点提取(python)
  8. 如何修改was的java路径_在eclipse中修改tomcat的部署路径操作
  9. Azure PowerShell (13) 批量设置Azure ARM Network Security Group (NSG)
  10. 小程序内嵌H5页面判断微信及小程序环境
  11. 联想小新触摸板驱动_联想笔记本触摸板驱动下载
  12. 在线运行此php解密navicat导出的密码!(用于navicat已经连接数据库但是忘记了密码)
  13. 大气压力换算公式_气压单位换算表(压力单位换算公式大全)
  14. 二元二次拟合 matlab函数
  15. python立即关机,Python实现自动关机
  16. ThingsBoard CE添加数据导出excel功能
  17. 教师语言表达-语言互动
  18. 教师职称论文发表在哪些杂志有效
  19. PCM开发板模块实验指导--有刷直流马达正反转实验
  20. loghouse介绍

热门文章

  1. adb devices报错:* daemon not running. starting it now on port 5037(端口未被占用)解决
  2. netcore之托管程序
  3. windows bat脚本编写_怎样在 txt 中用 2 行代码写出一个锁屏休息提醒脚本?
  4. python文件hadoop_采用Python来访问Hadoop HSFS存储实现文件的操作
  5. springboot传入json和文件_SpringBoot中文参考指南(2.1.6)29.1.13、CORS 支持
  6. 微信小程序中识别html标签的方法
  7. 怎么做应力应变曲线_常用的应力测试方法及其在船舶系统零部件中的应用
  8. uniapp 如何给搜索框设值_uni-app 顶部配置搜索框和左右图标
  9. phpcms 指定id范围 调用_Dubbogo 源码笔记(二)客户端调用过程
  10. virtuaBox 连接不上解决办法