隐马尔科夫模型HMM

应用

隐马尔科夫模型(HMM,Hidden Markov Model)可用标注问题,在语音识别、NLP、生物信息、模式识别等领域被实践证明是有效的算法。

定义

隐马尔科夫模型是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态的序列,再由各状态随机生成一个观测而产生观测序列的模型(参考李航的《统计学习方法》第10章)。
隐马尔科夫模型随机生成的状态随机序列,称为状态序列;每个状态生成一个观测,由此产生的观测随机序列,称为观测序列。
隐马尔科夫模型HMM_第1张图片
Q是所有可能的状态的集合,V是所有可能的观测的集合

Q={q1,q2,,...,qN},V={v1,v2,...,vM} Q = { q 1 , q 2 , , . . . , q N } , V = { v 1 , v 2 , . . . , v M }

其中,N是可能的状态数,M是可能的观测数
Q是未知的,V是已知的,我们通过对V来做Q的推论,就是隐马尔科夫模型。

组成

HMM由初始状态概率向量π 、状态转移概率矩阵A以及观测概率矩阵B确定。

λ=(A,B,π) λ = ( A , B , π )

HMM的概率计算算法

直接计算

按照概率公式,通过列举所有可能的长度为T的状态序列 I={i1,i2,...,IT} I = { i 1 , i 2 , . . . , I T } ,求各个状态序列I与观测序列 O={o1,o2,...oT} O = { o 1 , o 2 , . . . o T } 的联合概率 P(O,I|λ) P ( O , I | λ ) ,然后对所有可能的状态序列求和,得到 P(O,I) P ( O , I )

前向计算

定义:给定隐马尔可夫模型λ,定义到时刻t部分观测序列为o1,o2,…,ot,且状态为qi的概率为前向概率,记作

α(i)=P(o1,o2,...,ot,it=qi|λ) α ( i ) = P ( o 1 , o 2 , . . . , o t , i t = q i | λ )

可以递归地求得前向概率α t(i)以及观测序列概率P(O|λ)
前向计算的计算过程:
初值: α1(i)=πibi(o1) α 1 ( i ) = π i b i ( o 1 ) ,i=1,2,…,N
递推:对t=1,2,…,T-1
αt+1(i)=[j=1Nαt(j)aji]bi(ot+1),i=1,2,...N α t + 1 ( i ) = [ ∑ j = 1 N α t ( j ) a j i ] b i ( o t + 1 ) , i = 1 , 2 , . . . N

终止:
P(O|λ)=i=1NαT(i) P ( O | λ ) = ∑ i = 1 N α T ( i )

后向计算

定义:给定隐马尔可夫模型λ,定义到时刻t状态为qi的条件下,从t+1到T的部分观测序列为ot+1,ot+2,…,oT的概率为后向概率,记作

β(i)=P(ot+1,ot+2,...,oT,it=qiλ) β ( i ) = P ( o t + 1 , o t + 2 , . . . , o T , i t = q i , λ )

可以用递归的方法 求得后向概率β t(i)以及观测序列概率P(O|λ)
后向计算的计算过程:
初值: βT(i)=1 β T ( i ) = 1
递推:对t=T-1,t=T-2,…,1
βt(i)=j=1Naijbj(ot+1)βt+1(j),i=1,2,...N β t ( i ) = ∑ j = 1 N a i j b j ( o t + 1 ) β t + 1 ( j ) , i = 1 , 2 , . . . N

终止:
P(O|λ)=i=1Nπibi(o1)β1(i) P ( O | λ ) = ∑ i = 1 N π i b i ( o 1 ) β 1 ( i )

你可能感兴趣的:(机器学习,机器学习算法)