隐马尔可夫模型有3类基本问题:
(1)概率计算
给定模型
和观测序列
,计算在观测序列O出现的概率
。
(2)学习问题
己知观测序列
,估计模型参数
,使得在该模型下观测序列概率
最大。即用极大似然估计的方法估计参数。
(3)预测问题
也称为解码问题(decoding)。已知模型
和观测序列
,求对给定观测序列条件概率
最大的状态序列
。即给定观测序列,求最有可能的对应的状态序列。
概率计算方法
给定模型 和观测序列 ,,求
直接计算法
直接计算法的思路是枚举所有的长度T的状态序列,然后计算该状态序列与观测序列的联合概率,对所有的枚举项求和即可。在状态种类为N的情况下,一共有 种排列组合,每种组合计算联合概率的计算量为T,总的复杂度为 。
直接计算法没有利用到观测序列 的信息,因为并不是任意一个状态序列都能输出这样的观测序列。利用好观测序列,可以减少运算。这就有了前向算法和后向算法。
前向算法
(1)初始状态,
初始状态有N中可能,所以这个概率有N个。
前向概率的定义限定了两个条件,一是到当前为止的观测序列,另一个是当前的状态。所以初值的计算也有两项,一项是初始状态概率,另一项是发射到当前观测的概率。
(2)t时刻,隐马尔可夫模型
,观测序列为
,状态序列为
的概率为前向概率,记作