HMM(隐马尔可夫模型入门)
来源:互联网 发布:淘宝店铺怎么来搞信誉 编辑:程序博客网 时间:2024/04/30 14:48
一、基本概念
隐马尔可夫模型
- 隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的状态序列叫状态序列,每一个状态生成一个观测,由此生成的观测的随机序列叫观测序列。注意:这和分类有区别,这个一个序列。即P(Y|X)中X和Y都是序列。。
一些参数
- 隐马尔可夫模型由初始概率分布、状态转移概率分布、观测概率分布确定。
- 设Q是所有可能的状态集合,V是所有可能的观测的集合。
Q=q1,q2,....,qNV=v1,v2,...,vM
- I是长度为T的状态序列, O是对应的观测序列。
I=i1,i2,..,iTO=o1,o2,...,oT
- A是状态转移概率矩阵
A=[aij]N×N 其中aij=P(it+1=qj|it=qi)
- B是观测概率矩阵
B=[bj(k)]N×M 其中bj(k)=P(Ot=vk|it=qj)
π 是初始状态,其中πi=P(i1=qi)
综上,马尔科夫模型的参数组成λ λ=(A,B,π)
隐马尔可夫模型的2个假设
- 齐次马尔科夫假设。即当前状态只与前N的状态有关。N = 1便是一阶马尔科夫模型
- 观测独立性假设,即任意时刻观测的观测只依赖于该时刻的马尔科夫状态,与其它状态无关。
P(ot|iT,ot,iT−1,ot−1,...,i1,o1)=p(ot|it) -
- 隐马尔可夫模型的3个问题(最重要)
- 概率计算问题,即求概率
P(O|λ) - 参数学习问题(训练过程),即求的模型参数λ使得在该模型下的观测序列(整个语料)的概率
P(O|λ) 最大。一般最大似然求解(最大似然就是生成序列的概率) - 预测问题(解码),即已知模型参数λ和给定的观测序列
O=o1,...,oT ,求出条件概率P(I|O) 最大的状态序列I=(i1,..,it) 。即最好的状态序列。。。。
- 概率计算问题,即求概率
- 接下来就讲解怎么求概率?怎么训练参数?怎么解码?
- 首先是怎么求概率
P(O|λ) ?最直接的方法大家应该能想到,方法如下- 因为之前已经定义的隐马尔科夫模型的2个假设如上。所以当给定状态序列
I=(i1,..,it) 时,求其发生的概率P(I|λ)=πi1ai1i2ai2i3...ait−1it - 对于给定状态序列
I=(i1,..,it) ,求观测序列O=o1,...,oT 的概率P(O|I,λ),P(O|I,λ)=bi1(o1)bi2(o2)...biT(oT) 。因为之前已经说过,当前观测只与当前时刻的隐状态有关,所以与其它观测两两独立,即可连乘。 - 最终可以求得P(O|λ)=
∑IP(O|I,λ)P(I|λ) 。I是所有可能的状态序列。比如说一共有N个状态,序列长度为T,则一共有NT 个序列,时间复杂度为O(TNT)
- 对于给定状态序列
- 因为之前已经定义的隐马尔科夫模型的2个假设如上。所以当给定状态序列
- 上述直接计算方法显然台low了。我们可以想到,其实有好多序列的子序列都重复计算了,比如序列L1和L2, L1
i1,i2,...,iT−1,iT ,L2的前T-1个状态与L1一样,那么就不需要计算了,拿个东西保存一下即可。这便引入前向后向算法(很简单的动态规划算法)。- 前向算法。
- 后向算法
下一讲接续介绍!!!!!! -
- 首先是怎么求概率
0 0
- HMM(隐马尔可夫模型入门)
- 隐马尔可夫模型( HMM )
- 隐马尔可夫模型(HMM)
- 隐马尔可夫模型(HMM)
- 隐马尔可夫模型(HMM)
- 隐马尔可夫模型(HMM)
- 隐马尔可夫模型(HMM)
- HMM(隐马尔可夫模型)
- HMM(隐马尔可夫模型)
- 隐马尔可夫模型(HMM)
- HMM(隐马尔可夫模型)
- 隐马尔可夫模型(HMM)
- HMM隐马尔可夫模型(HMM)攻略
- HMM一文搞懂HMM(隐马尔可夫模型)
- HMM:隐马尔可夫模型HMM
- 隐马尔可夫模型(HMM)攻略
- 隐马尔可夫模型(HMM)攻略
- 隐马尔可夫模型(HMM)攻略
- test
- 无限循环JavaScript轮播
- python中的修饰器@
- 指针存储的内容
- 使用Screen后台执行任务,防止SSH中断
- HMM(隐马尔可夫模型入门)
- ionic
- 我的实习之路二
- EasyUI中combobox实现市县级联操作
- linux web服务器搭建
- Android使用Bitmap、Canvas制作图片
- lintcode ----两个链表的交叉
- html的for循环嵌套实现排序
- 脱壳