Kaldi决策树状态绑定学习笔记(一)

这篇博客介绍了Kaldi决策树状态绑定的学习笔记,重点讨论如何累积相关统计量。涉及EventMap的EventType、Clusterable和GuassClusterable类,以及AccumulateTreeStats()函数在构建决策树统计量中的应用。
摘要由CSDN通过智能技术生成

建议在csdn资源页中免费下载该学习笔记的PDF版进行阅读:)点击进入下载页面

Kaldi决策树状态绑定学习笔记(一)

——如何累积相关统计量?

  目录

原理

学习资料:
1. SLP Ch10.3
2. Daney Povey Kaldi Lecture3
3. 官方决策树三个文档、HMM文档
4. 爱丁堡大学CDHMM-PPT
5. 论文《Tree-Based State Tying For High Accuracy Acoustic Modelling》S.J.Young
6. 论文《Decision Tree-Based State Tying For Acoustic Modelling》这个里面有一些具体的公式推导

个人感悟:
  决策树这一块的理论倒没有多少,公式更是少之又少。关键在于如何用代码实现,所以值得把主要精力花在看代码上。自己在学习这一块的时候,对脚本train_deltas.sh用到的程序,采取从上到下逐一攻破的方法。首先看看文献1,5,6,4, 明白决策树工作的大致原理、思路;然后看kaldi官方文档,第一遍可能对文档的写作框架、所提到的程序几乎没什么感觉;然后就开始逐一攻破程序。看不懂代码就去看文档,看不懂文档就去看原理,看不懂原理又去看代码实现了什么,代码、文档、原理、代码、文档、类、代码、类、文档,多次重复迭代,直到逐渐弄明白到底发生了什么,代码做了什么。
  看完之后,自己试着总结一下,就当再次复习下,顺一顺自己的思路。解码那部分一个月前刚看过,自己就已经忘得差不多了,所以还是很有必要总结总结、复习复习。
  决策树这块核心的就是三个程序和相关的几个类,所以准备一个笔记写一个程序吧。

  在这个笔记中,我会首先介绍与决策树相关的几个数据结构和统计量,然后介绍累积统计量的主程序和主要函数。

EventMap之EventType

  在看决策树的统计量累积相关的代码之前,有必要先搞明白EventMap相关的EventType这一数据结构。这一块建议多阅读官方文档《Decision tree internals》。
  我们知道决策树用于对三音素GMM声学模型进行状态绑定,那么问题来了:“用什么数据结构表示三音素呢?”
  一种方法是用一对数表示三音素的位置和该位置上的音素,也就是(三音素位置,该位置上的音素),用C++表示就是pair<int, int>,第一个int取0,1,2,分别代表三音素的三个位置,第二个int取音素的编号,把这三对数放在一起就可以描述三音素了,用C++表示就是由pair<int, int>组成的vector。
  此外,除了知道三音素三个位置上的音素各是什么,我们还想知道一个HMM状态是三音素的第几个HMM状态ÿ

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值