您的位置:首页 > 其它

HMM(隐马尔可夫模型入门)

2016-06-30 22:43 369 查看
一、基本概念

隐马尔可夫模型

隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。隐藏的状态序列叫状态序列,每一个状态生成一个观测,由此生成的观测的随机序列叫观测序列。注意:这和分类有区别,这个一个序列。即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)

上述直接计算方法显然台low了。我们可以想到,其实有好多序列的子序列都重复计算了,比如序列L1和L2, L1 i1,i2,...,iT−1,iT,L2的前T-1个状态与L1一样,那么就不需要计算了,拿个东西保存一下即可。这便引入前向后向算法(很简单的动态规划算法)。

前向算法。

后向算法

下一讲接续介绍!!!!!!

-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: