隐马尔可夫模型(算法流程&实例演示)

隐马尔可夫模型的Inference问题一共五个,涉及的算法有前向算法、后向算法和Viterbi算法,Learning问题涉及的算法是EM算法。我们这一篇介绍具体的算法流程以及通过一个案例来加深对算法的理解。

HMM系列传送门:

隐马尔可夫模型(背景介绍)

隐马尔可夫模型(前向算法与后向算法)

隐马尔可夫模型(Baum Welch算法与Viterbi算法)

隐马尔可夫模型(模型推断五大问题)

例子阐述

假设有3个盒子(隐状态),编号1,2,3,每个盒子的红色球和白色球数量如下:

盒子(Z) 1 2 3
红色球 5 4 7
白色球 5 6 3

记隐状态和观测变量集合为:

隐马尔可夫模型(算法流程&实例演示)_第1张图片

参数λ=(π,A,B)对应的状态分布π转移矩阵A发射矩阵B为:

π=(0.2,0.4,0.4)

隐马尔可夫模型(算法流程&实例演示)_第2张图片

隐马尔可夫模型(算法流程&实例演示)_第3张图片

在一次试验中,已知观测序列:

                         X={红球,白球,红球}

我们要求解:

  • P(X|λ),也即Evaluation问题

  • P(Z|X,λ),也即Decoding问题

前向算法

前向算法的算法流程:

隐马尔可夫模型(算法流程&实例演示)_第4张图片

根据算法流程,计算t=1~3时刻的:

隐马尔可夫模型(算法流程&实例演示)_第5张图片

于是求得联合概率分布

t=2时刻具体计算过程为:

隐马尔可夫模型(算法流程&实例演示)_第6张图片

t=3时刻具体计算过程为:

隐马尔可夫模型(算法流程&实例演示)_第7张图片

后向算法

后向算法的算法流程:

隐马尔可夫模型(算法流程&实例演示)_第8张图片

根据算法流程,计算t=1~3时刻的:

隐马尔可夫模型(算法流程&实例演示)_第9张图片

于是求得联合概率分布

隐马尔可夫模型(算法流程&实例演示)_第10张图片

 

t=2时刻具体计算过程为:

隐马尔可夫模型(算法流程&实例演示)_第11张图片

t=1时刻具体计算过程为:

隐马尔可夫模型(算法流程&实例演示)_第12张图片

Viterbi算法

Viterbi算法的算法流程:

隐马尔可夫模型(算法流程&实例演示)_第13张图片

根据算法计算案例相关变量可得:

隐马尔可夫模型(算法流程&实例演示)_第14张图片

得到t=T时刻的概率与状态:

进行回溯可得:

所以最有可能的隐状态序列为

t=1时刻具体计算过程:

隐马尔可夫模型(算法流程&实例演示)_第15张图片

t=2时刻具体计算过程:

隐马尔可夫模型(算法流程&实例演示)_第16张图片

t=3时刻具体计算过程:

隐马尔可夫模型(算法流程&实例演示)_第17张图片

滤波、平滑、预测

根据α和β,很容易求得滤波问题、平衡问题和预测问题的解:

隐马尔可夫模型(算法流程&实例演示)_第18张图片

比如,要求解t=4时刻的隐状态和观测变量的概率。

首先,求解滤波问题

隐马尔可夫模型(算法流程&实例演示)_第19张图片

按照迭代式求t=4隐状态的概率分布:

隐马尔可夫模型(算法流程&实例演示)_第20张图片

最后求解观测变量的概率分布:

Baum Welch算法

最后,我们看看求解参数λ的Baum Welch算法流程

在文章隐马尔可夫模型(Baum Welch算法与Viterbi算法),我们介绍了Learning问题是求解参数λ的最大似然估计,利用了EM算法,最后采取拉格朗日乘子法即可求解初始状态分布π,转移概率矩阵A和发射矩阵B的表达式.

推导过程不再给出,这里直接用最后的结果,Baum Welch算法的具体流程为:

隐马尔可夫模型(算法流程&实例演示)_第21张图片

参考资料:
李航《统计学习方法》

你可能感兴趣的:(概率图模型,算法,人工智能,python,统计学,隐马尔可夫模型)