如何使用隐马尔可夫模型进行未来预测

Posted

技术标签:

【中文标题】如何使用隐马尔可夫模型进行未来预测【英文标题】:How to make future prediction with Hidden Markov Models 【发布时间】:2012-12-01 07:49:09 【问题描述】:

我有许多可变长度的序列。对于这些,我想训练一个隐马尔可夫模型,稍后我想用它来预测(部分)序列的可能延续。到目前为止,我已经找到了两种使用 HMM 预测未来的方法:

1) 产生幻觉延续并获得该延续序列的可能性。选择可能性最高的一个作为您的预测。此方法需要明确了解连接的可能值。

2) 使用带有(部分)序列的维特比算法来获得最可能的隐藏状态序列。取该序列中最后一个隐藏状态的发射分布并预测例如该分布的平均值(通常是高斯分布)。

现在我的问题是:是否还有其他可能更有原则的方法来使用 HMM 预测未来?

谢谢!

【问题讨论】:

【参考方案1】:

HMM 中的马尔可夫假设表明,T+1 时刻的状态独立于 T 之前的所有状态,以 T 为条件。

您的选项 2 与我的建议接近,只是您使用的是对最后一个状态的最大似然分配。相反,计算序列中最后一项的隐藏状态的分布。这相当于在维特比算法中用“和”代替“最大值”。 (参见https://www.coursera.org/course/pgm,并搜索“sum-product”算法,也称为信念传播)。

然后,为了对未来进行采样,您首先要对最后一个状态进行采样,并给出其分布。然后使用转换矩阵对下一个隐藏状态进行采样并重复恶心。由于在序列的最后一点之后没有实际观察结果,因此您是从马尔可夫链中采样的。鉴于您对部分序列的了解,这将为您提供未来的样本。这与 Viterbi 不同的原因是,即使是最可能分配给部分分配的隐藏变量的可能性也很低。通过使用最后一个状态的整个分布,您可以更好地估计以下(未观察到的未来)状态。

【讨论】:

以上是关于如何使用隐马尔可夫模型进行未来预测的主要内容,如果未能解决你的问题,请参考以下文章

用隐马尔可夫模型做基因预测

隐马尔可夫模型

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

一文搞定HMM(隐马尔可夫)

从马尔可夫模型到隐马尔可夫模型

隐马尔可夫模型