隐马尔科夫模型HMM的前向算法和后向算法

版权声明:本文为博主原创文章,欢迎转载,但请注明出处~ https://blog.csdn.net/njustzj001/article/details/50956389

最近重新看了一遍《统计学习方法》中第十章《隐马尔可夫模型》,更加觉得这本书有浅有深,简洁深刻。HMM模型有三个基本问题:概率计算问题,学习问题和预测问题。今天我就来将其中的概率计算问题的一些细节思考总结一下,就当是笔记吧!主要就是概率计算的前向算法和后向算法。

HMM简介

隐马尔可夫模型的参数一般称为其三要素,包括初始状态概率,转移概率和观测概率。其模型的定义建立在两个基本假设的前提上。分别是齐次马尔科夫假设和观测独立性假设。这两个假设是HMM的重点,必须要说一下。

齐次马尔科夫假设:通俗地说就是HMM的任一时刻t某一状态只依赖于其前一时刻的状态,与其它时刻的状态及观测无关,也与时刻t无关。

观测独立性假设:通俗地说就是任一时刻的观测只依赖于该时刻的马尔科夫链的状态,与其他观测及状态无关。

这两个假设是HMM的核心,之后的公式推导都是依赖这两个假设成立的基础上进行的。

概率计算问题

HMM的概率计算问题是HMM三大问题之一。所谓概率计算就是给定一个模型参数已知的HMM和一组观测序列,求这组观测序列由这个HMM所生成的概率。概率计算问题其实评价了模型的好坏,试想如果有两个HMM和一组观测序列,第一个HMM给出的 P(O|θ1) 是0.8,第二个HMM给出的 P(O|θ2) 是0.9。如果给定多组测试观测数据都是这样,那么显然第二个HMM模型更准确一些,性能也更好。HMM的概率计算算法主要有前向算法和后向算法。直接计算法虽然理论上可行但计算复杂度过高实际中不可行,我们直接省略掉,下面先介绍前向算法,然后介绍后向算法。

前向算法

前向算法定义了一个概念,叫前向概率:给定隐马尔科夫模型 λ ,定义到时刻t部分观测序列为 o1,o2,...ot 且状态为 qi 的概率为前向概率,记作:

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

有了前向概率,我们就可以递推地求得前向概率 αt(i) 及观测序列概率 P(O|λ) 。具体递推过程为:
αt+1(i)=j=1Nαt(j)ajibi(ot+1)

其中, aji 是转移概率,具体为:
aji=P(it+1=qi|it=qj)

而根据前向概率的定义:
αt(j)=P(o1,o2,...ot,it=qj|λ)

根据上面提到的 齐次马尔科夫假设,有:
aji=P(it+1=qi|it=qj)=P(it+1=qi|o1,o2,...ot,it=qj)

因此可以将 αt(j)aji 合并为:
P(o1,o2,...ot,it=qj,it+1=qi|λ)

在经过求和符号处理之后,有:
j=1Nαt(j)aji=P(o1,o2,...ot,it+1=qi|λ)

然后递推式中的 bi(ot+1) 是观测概率,具体为:
bi(ot+1)=P(ot+1|it+1=qi)=P(ot+1|o1,o2,...ot,it+1=qi)

后面的连等成立是因为应用了前面提到的 观测独立性假设。这样,最终 αt+1(i) 就可以用概率表示为:
αt+1(i)=P(o1,o2,...ot,ot+1,it+1=qi|λ)

这与我们之前对前向概率的定义是一致的。最后,为了得到 P(O|λ) ,我们只要把马尔科夫状态序列的最后一个状态的所有前向概率进行求和便可以了,具体为:
P(O|λ)=i=1NαT(i)=P(o1,o2,...ot,ot+1,...,oT|λ)

后向算法

后向算法与前向算法类似,它定义了一个概念叫后向概率:给定隐马尔科夫模型 λ ,定义在时刻t状态为 qi 的条件下,从t+1到T的部分观测序列为 ot+1,ot+2,...,oT 的概率为后向概率,记作

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

同样也可以用递推的方法求得后向概率 βt(i) 及观测概率 P(O|λ) ,由于和前向算法类似,也用到了HMM的齐次马尔科夫假设和观测独立假设,这里就不详细推导了。

前向概率和后向概率的应用

有了前向概率和后向概率的基础,我们就可以利用它们来表示一些HMM概率计算的小问题。比如可以将观测序列概率 P(O|λ) 统一写成:

P(O|λ)=i=1Nj=1Nαt(i)aijbj(ot+1)βt+1(j)

两个求和符号中的 αt(i)aijbj(ot+1)βt+1(j) 其实经过概率表示等价于:
αt(i)aijbj(ot+1)βt+1(j)=P(o1,o2,...,oT,it=qi,it+1=qj|λ)

两次求和其实就是将状态 qi 和状态 qj 的所有可能取值都取一遍,N是所有可能的状态数。

下面给出一些概率和期望值的计算。

在时刻t处于状态 qi 的概率

γt(i)=P(it=qi|O,λ)=P(it=qi,O|λ)P(O|λ)=αt(i)βt(i)Nj=1αt(j)βt(j)

在时刻t处于状态 qi 且在时刻t+1处于状态 qj 的概率

ξt(i,j)=P(it=qi,it+1=qj|O,λ)=P(it=qi,it+1=qj,O|λ)P(O|λ)=αt(i)aijbj(ot+1)βt+1(j)Ni=1Nj=1αt(i)aijbj(ot+1)βt+1(j)

利用 γt(i) ξt(i,j) 对各个时刻求和得到有用的期望值

(1)在观测O下状态i出现的期望值为

t=1Tγt(i)

解释:出现一次的概率是 γt(i) ,那么长度为T的观测下出现的概率就是对T求和。

(2)在观测O下由状态i转移的期望值为

t=1T1γt(i)

解释:即除去当前被转移到的状态剩下T-1个长度。

(3)在观测O下由状态i转移到状态j的期望值为

t=1T1ξt(i,j)

解释:只能有T-1个由状态i转移到状态j的机会。

总结

通过这些概率和期望值的计算,可以为后面HMM的其它两个问题即学习问题预测问题提供方便。

猜你喜欢

转载自blog.csdn.net/njustzj001/article/details/50956389