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 ...
随机推荐
- poj2689 Prime Distance
题意:求[a, b]之间差最大/小的相邻素数. 0 < a, b < 2^32, 0 < b - a <= 1e6 首先发现a,b很大,以至于无法求出素数来. 然后就考虑退而求 ...
- JavaScript深入系列(一)--原型和原型链详解
构造函数创建对象 首先我们先使用构造函数创建一个对象: function Person(){} var person = new Person(); person.name = 'tom'; cons ...
- 关于react-native在MacBookPro环境下的安装
都说欲善其事,必先利其器. 使用macbook写react-native 环境真的非常容易配置 先看效果 然后我们看安装需要的东西 brew install node brew install wat ...
- C# Winfom 中ListBox的简单用法
https://www.cnblogs.com/xielong/p/6744805.html Winform控件ListBox的用法 1.如何添加listBox的值 this.listBox1.Ite ...
- Autotools知识点
最近研究了下glog使用autotools编译方法的脚本文件,略有所得 configure.ac AC_INIT初始化一些信息 Package Version ReportBug AC_CONFIG_ ...
- iptables防火墙设置
ubuntu系统: apt-get install iptables #如果默认没有安装,请运行此命令安装防火墙 # whereis iptables #查看系统是否安装防火墙可以看到:iptable ...
- win命令大全
Windows系统:开始--运行--命令大全 Nslookup-------IP地址侦测器 explorer-------打开资源管理器 logoff--- ...
- php调用API支付接口 转至http://www.cnblogs.com/chaochao00o/p/6490463.html
首先访问 https://charging.teegon.com/ 注册账号, 找到开发配置 记下client_id和client_secret. 点击 天工开放平台 点击天工收银 点击 S ...
- 定时任务调度-Celery
确保任务不重叠解决方法: from celery import task from celery.five import monotonic from celery.utils.log import ...
- Hadoop记录-监控几个思路
1.存活监控 基本监控,主要对进程的存活.端口连通性.url可检测性等指标进行监控. 2.2 可用性监控 主要指对用户而言是否可用,能否返回预期结果,通常部署在一些业务主流程或一些关键环节,如接口调用 ...