HMM拓扑与转移模型
<Topology>
<TopologyEntry>
<ForPhones> 1 2 3 4 5 6 7 8 </ForPhones>
<State> 0 <PdfClass> 0
<Transition> 0 0.5
<Transition> 1 0.5
</State>
<State> 1 <PdfClass> 1
<Transition> 1 0.5
<Transition> 2 0.5
</State>
<State> 2 <PdfClass> 2
<Transition> 2 0.5
<Transition> 3 0.5
</State>
<State> 3
</State>
</TopologyEntry>
</Topology>
到8(因此在这个例子中只有8个音素,它们都共享相同的拓扑结构)。有三种发射状态(即具相关pdf以及'发射态'特征向量的状态);每个状态都有一个自环以及一个到下一个状态的转移。第四种状态是不发射状态,状态3(没有<PdfClass>条目),没有任何转移(它隐式地连接到序列中的下一个音素)。这是这些拓扑条目的标准功能; Kaldi将第一个状态(状态0)视为开始状态,而最后一个状态应始终为不发送状态,并且没有任何状态转换,最终状态具有最终概率状态。您可以将转换概率视为最后一个状态,等同于HMM中的"最终概率"。所有在这个例子中发布的状态都可以有不同的pdf(因为PdfClass的数字都是不同的)。我们可以通过使<PdfClass>数字相同来强制绑定。 HmmTopology对象中给出的概率是用于初始化训练的概率;训练的概率特定于上下文相关的HMM并存储在TransitionModel对象中。 TransitionModel将HmmTopology对象存储为类成员,但请注意,在初始化TransitionModel对象后,通常不会使用HmmTopology对象中的转换概率。但是,有一个例外,对于非最终状态的非发送状态(即那些有过渡状态但没有<PdfClass>条目的状态),Kaldi不会训练转移概率,而是使用HmmTopology对象中给出的概率。不支持非发射状态的可训练转移概率的决定简化了我们的训练机制,并且由于非转移状态下的非发射状态是不正常的,我们认为这不是很大的损失。
转移模型(TransitionModel类)
TransitionModel对象存储转换概率和有关HMM拓扑的信息(包含HmmTopology对象)。图构建代码依赖于TransitionModel对象,以获取拓扑和转换概率(它还需要ContextDependencyInterface对象来获取与特定语音上下文相关联的pdf-id)。
Kaldi是如何对转移概率(TransitionModel类)建模的
关于转移模型相关代码的设定如下:
上下文相关HMM状态的转换概率取决于以下五项(可以视为五元组):
- 音素(所在的HMM)
- )
- 正向pdf-id(即与状态相关的正向转换pdf的标识符)
- 自循环pdf-id(即与状态相关的自循环pdf的标识符)
- HmmTopology对象中的转换索引。
最后一项可被视为HmmTopology对象中的终止HMM状态的编码。转换概率取决于这些因素的原因是,在不增加编译解码图的大小的情况下,这是对转换建模的最细粒度的方式;训练转移概率也非常方便。实际上,对于传统的设置,对转换进行精确建模可能没有任何区别,并且在单音素级别共享转换的HTK方法可能就足够了。
为何使用转移ID
TransitionModel对象在初始化时设置了许多整数映射,并被代码的其他部分用来执行这些映射。除了上面提到的数量之外,还有一些数字称为转换标识符(transition-id)、转换索引(与转换id不同)以及转换状态(transition state)。我们引入这些标识符和相关映射的原因是我们可以使用完全基于FST的训练方法。基于最"原生"的FST支持在输入标签中表示pdf-id。但是,考虑到使用决策树算法,从pdf-id映射到音素并不总是唯一的,这将使得难以从输入标签序列映射到音素序列,这样由诸多不便,比如,难以仅使用FST中的信息来训练转换概率。出于这个原因,把transition-id的标识符放在FST的输入标签上,这些标识符可以映射到pdf-id,但也可以映射到音素和原始(prototype)HMM中的特定转移(如HmmTopology对象中给出的)。
HMM拓扑与转移模型的更多相关文章
- NLP —— 图模型(一)隐马尔可夫模型(Hidden Markov model,HMM)
本文简单整理了以下内容: (一)贝叶斯网(Bayesian networks,有向图模型)简单回顾 (二)隐马尔可夫模型(Hidden Markov model,HMM) 写着写着还是写成了很规整的样 ...
- 概率图模型学习笔记:HMM、MEMM、CRF
作者:Scofield链接:https://www.zhihu.com/question/35866596/answer/236886066来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- HMM,MEMM,CRF模型的比较
本文参考自:http://blog.csdn.net/happyzhouxiaopei/article/details/7960876 这三个模型都可以用来做序列标注模型.但是其各自有自身的特点,HM ...
- 机器学习中的隐马尔科夫模型(HMM)详解
机器学习中的隐马尔科夫模型(HMM)详解 在之前介绍贝叶斯网络的博文中,我们已经讨论过概率图模型(PGM)的概念了.Russell等在文献[1]中指出:"在统计学中,图模型这个术语指包含贝叶 ...
- 机器学习理论基础学习13--- 隐马尔科夫模型 (HMM)
隐含马尔可夫模型并不是俄罗斯数学家马尔可夫发明的,而是美国数学家鲍姆提出的,隐含马尔可夫模型的训练方法(鲍姆-韦尔奇算法)也是以他名字命名的.隐含马尔可夫模型一直被认为是解决大多数自然语言处理问题最为 ...
- 【中文分词】二阶隐马尔可夫模型2-HMM
在前一篇中介绍了用HMM做中文分词,对于未登录词(out-of-vocabulary, OOV)有良好的识别效果,但是缺点也十分明显--对于词典中的(in-vocabulary, IV)词却未能很好地 ...
- 机器学习&数据挖掘笔记_25(PGM练习九:HMM用于分类)
前言: 本次实验是用EM来学习HMM中的参数,并用学好了的HMM对一些kinect数据进行动作分类.实验内容请参考coursera课程:Probabilistic Graphical Models 中 ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM --别人的,拷来看看
从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 最近在面试中,除了基础 & 算法 & 项目之外,经常被问到或被要求介绍和描述下自己所知道的几种分类或聚类算法(当然,这完全 ...
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learning & Recommend Search交流新群:172114338) 引言 log ...
随机推荐
- 洛谷P1196 银河英雄传说
大意:你有30000个队列,第i个队列中只有i 有T个操作,1,把某个队列头接到另一个队列尾. 2,问两个元素之间的距离. 本题主要有三种解法. ①带权并查集. 具体来说就是,并查集维护当前集合的大小 ...
- C# 下载文件 只利用文件的存放路径来下载
第一种方式: 最简单的就是返回一个file类型的数据即FilePathResult类型的对象 string serverPath = ConfigurationManager.AppSettings[ ...
- 【洛谷P1601 A+B Problem(高精)】
题目背景 无 题目描述 高精度加法,x相当于a+b problem,[b][color=red]不用考虑负数[/color][/b] 输入输出格式 输入格式: 分两行输入a,b<=10^500 ...
- 关于递推算法求解约瑟夫环问题P(n,m,k,s)
一. 问题描述 已知n个人,分别以编号1,2,3,...,n表示,围坐在一张圆桌周围.从编号为k的人开始报数1,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去, ...
- 4.2、LED1、LED2交替闪烁
#include "ioCC2530.h" //引用CC2530头文件 /***************************************************** ...
- bitmap的使用
https://blog.csdn.net/csdnsevenn/article/details/82230049 使用bitmap来解决: 2的32次方大概是42亿个数,所以这么多数中,存在的为1, ...
- (set)MG loves gold hdu6019
MG loves gold Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- 微信小程序:分页和加载更多
直接上代码吧.不足之处,多多指教,一起进步 1.wxml页面的最后敲上,css自己定义 <view class="loadmore" mtype="{{mtype} ...
- as依赖解决报错
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.suppor ...
- python金融反欺诈-项目实战
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...