Baumwelch 算法训练HMM
来源:互联网 发布:led屏幕播放软件 编辑:程序博客网 时间:2024/06/06 19:08
转至:http://www.cnblogs.com/zhangchaoyang/articles/2220398.html
学习问题
在HMM模型中,已知隐藏状态的集合S,观察值的集合O,以及一个观察序列(o1,o2,...,on),求使得该观察序列出现的可能性最大的模型参数(包括初始状态概率矩阵π,状态转移矩阵A,发射矩阵B)。这正好就是EM算法要求解的问题:已知一系列的观察值X,在隐含变量Y未知的情况下求最佳参数θ*,使得:
在中文词性标注里,根据为训练语料,我们观察到了一系列的词(对应EM中的X),如果每个词的词性(即隐藏状态)也是知道的,那它就不需要用EM来求模型参数θ了,因为Y是已知的,不存在隐含变量了。当没有隐含变量时,直接用maximum likelihood就可以把模型参数求出来。
预备知识
首先你得对下面的公式表示认同。
以下都是针对相互独立的事件,
P(A,B)=P(B|A)*P(A)
P(A,B,C)=P(C)*P(A,B|C)=P(A,C|B)*P(B)=P(B,C|A)*P(A)
P(A,B,C,D)=P(D)*P(A,B|D)*P(C|A)=P(D)*P(A,B|D)*P(C|B)
P(A,B|C)=P(D1,A,B|C)+P(D2,A,B|C) D1,D2是事件D的一个全划分
理解了上面几个式子,你也就能理解本文中出现的公式是怎么推导出来的了。
EM算法求解
我们已经知道如果隐含变量Y是已知的,那么求解模型参数直接利用Maximum Likelihood就可以了。EM算法的基本思路是:随机初始化一组参数θ(0),根据后验概率Pr(Y|X;θ)来更新Y的期望E(Y),然后用E(Y)代替Y求出新的模型参数θ(1)。如此迭代直到θ趋于稳定。
在HMM问题中,隐含变量自然就是状态变量,要求状态变量的期望值,其实就是求时刻ti观察到xi时处于状态si的概率,为了求此概率,需要用到向前变量和向后变量。
向前变量
向前变量 是假定的参数
它表示t时刻满足状态,且t时刻之前(包括t时刻)满足给定的观测序列的概率。
- 令初始值
- 归纳法计算
- 最后计算
- 初始值
- 归纳计算
E-Step
定义变量为t时刻处于状态i,t+1时刻处于状态j的概率。
定义变量表示t时刻呈现状态i的概率。
实际上
是从其他所有状态转移到状态i的次数的期望值。
是从状态i转移出去的次数的期望值。
是从状态i转移到状态j的次数的期望值。
M-Step
- Baumwelch 算法训练HMM
- HMM基础-HMM训练-前向后向算法
- HMM训练
- HMM算法
- HMM的训练
- 声学模型GMM-HMM训练
- HMM(参数训练一有监督训练)
- HMM之前向算法
- HMM算法学习
- HMM之前向算法
- 【机器学习】HMM算法
- 机器学习算法-HMM
- HMM的viterbi算法
- HMM-鲍姆-韦尔奇算法
- hmm-前向算法
- hmm-DTW算法
- hmm-前向算法
- 机器学习:HMM:算法
- Bootmem机制
- 五个减少EDM邮件退订率的技巧——减少垃圾邮件的堆积
- 思考:香草冰淇淋之服务台响应-Response of helpdesk
- 在PHP5.3以上版本运行ecshop和ecmall出现的问题及解决方案
- 使用py2exe生成独立的exe文件
- Baumwelch 算法训练HMM
- Android ImageView图片自适应
- 经典C语言程序设计100例11-20
- sort与stable_sort
- 关于MongoDB你需要知道的几件事
- Zigbee网络设备启动—基本问题说明
- 华为编程大赛资格赛第4轮题目,求n个数的最大公约数
- apache同一ip设置多端口访问
- action提交和location.href定位