04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法

03 隐马尔可夫模型 - HMM的三个问题 - 学习问题

八、HMM的三个问题 - 预测问题

问题: 在观测序列已知的情况下,状态序列未知。想找到一个最有可能产生当前观测序列的状态序列。

可以用下面两种办法来求解这个问题:
1、近似算法
2、Viterbi算法

近似算法

直接在每个时刻t时候最优可能的状态作为最终的预测状态,使用下列公式计算概率值:

04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法_第1张图片

即发生观测值给定,超参λ给定的情况下: Q、λ;
状态发生的概率 P(it = Si | Q、λ) ;
γt = P(it = Si | Q、λ) ;

这是一个相对近似的算法。


Viterbi算法

Viterbi算法实际是用动态规划的思路求解HMM预测问题,求出概率最大的“路径”,每条“路径”对应一个状态序列。

04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法_第2张图片

δPt(i) 表示 it = i号状态的时候,找到(i1 ~ it-1 , qt ~ qt-1)的联合概率的最大值。

δP1(i) = πibiq1 表示i个状态下,观测到对应的状态q1的概率。

δP2(i) = δP1(j) aji biq2
表示: 在第1个时刻节点下,位于第j号状态最有可能的值,乘以,j到i转化的概率,乘以,在i号状态下观测到q2的概率;

就好比我们可以从1→1,2→1,3→1,1<=j<=n 就是分别判断这3种情况中的最大值,即:
计算δP1(j) aji biq2 的最大值,找到最大值时的j,就是最有可能出现观测值的状态j;

下面看个例子来深入理解这个公式。


HMM案例-Viterbi

在给定参数π、A、B的时候,得到观测序列为“白黑白白黑”,求出最优的隐藏状态序列。

04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法_第3张图片
04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法_第4张图片
04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法_第5张图片

05 隐马尔可夫模型 - 案例一 - hmmlearn框架说明

你可能感兴趣的:(04 隐马尔可夫模型 - HMM的三个问题 - 预测问题 - Viterbi算法)