隐马尔可夫模型学习笔记

隐马尔可夫模型有3类基本问题:
(1)概率计算
给定模型 λ = ( A , B , π ) 和观测序列 O = ( o 1 , o 2 , . . . o T ) ,计算在观测序列O出现的概率 P = ( O | λ )
(2)学习问题
己知观测序列 O = ( o 1 , o 2 , . . . o T ) ,估计模型参数 λ = ( A , B , π ) ,使得在该模型下观测序列概率 P = ( O | λ ) 最大。即用极大似然估计的方法估计参数。
(3)预测问题
也称为解码问题(decoding)。已知模型 λ = ( A , B , π ) 和观测序列 O = ( o 1 , o 2 , . . . o T ) ,求对给定观测序列条件概率 P = ( O | λ ) 最大的状态序列 I = ( i 1 , i 2 , . . . i T ) 。即给定观测序列,求最有可能的对应的状态序列。

概率计算方法

给定模型 λ = ( A , B , π ) 和观测序列 O = ( o 1 , o 2 , . . . o T ) ,,求 P = ( O | λ )

直接计算法

直接计算法的思路是枚举所有的长度T的状态序列,然后计算该状态序列与观测序列的联合概率,对所有的枚举项求和即可。在状态种类为N的情况下,一共有 N T 种排列组合,每种组合计算联合概率的计算量为T,总的复杂度为 O ( T N T )

直接计算法没有利用到观测序列 O = ( o 1 , o 2 , . . . o T ) 的信息,因为并不是任意一个状态序列都能输出这样的观测序列。利用好观测序列,可以减少运算。这就有了前向算法和后向算法。

前向算法

(1)初始状态,
α 1 ( i ) = π i b i ( o 1 ) , i = 1 , 2 , . . . N
初始状态有N中可能,所以这个概率有N个。
前向概率的定义限定了两个条件,一是到当前为止的观测序列,另一个是当前的状态。所以初值的计算也有两项,一项是初始状态概率,另一项是发射到当前观测的概率。
(2)t时刻,隐马尔可夫模型 λ = ( A , B , π ) ,观测序列为 O = ( o 1 , o 2 , . . . o t ) ,状态序列为 I = ( i 1 , i 2 , . . . i t ) 的概率为前向概率,记作
α t ( i ) = P ( o 1 , o 2 , . . . , o i , i t = q i | λ )

猜你喜欢

转载自blog.csdn.net/s09094031/article/details/80704104