【发布时间】:2013-07-05 11:02:41
【问题描述】:
我正在尝试使用隐马尔可夫模型 (HMM) 来解决每个时间点 t 有 M 个不同的观察变量 (Yti) 和单个隐变量 (Xt) 的问题。为清楚起见,我们假设所有观察到的变量 (Yti) 都是分类变量,其中每个 Yti 传达不同的信息,因此可能具有不同的基数。 下图给出了一个说明性示例,其中 M=3。
我的目标是使用 Baum-Welch 算法从我观察到的变量序列 (Yti) 中训练 HMM 的转换、发射和先验概率。假设 Xt 最初将有 2 个隐藏状态。
我已经阅读了一些教程(包括著名的 Rabiner 论文)并浏览了一些 HMM 软件包的代码,即 'HMM Toolbox in MatLab' 和 'hmmpytk package in蟒蛇'。总的来说,我进行了广泛的网络搜索,所有我能找到的资源只涵盖了每个时间点只有一个观察到的变量 (M=1) 的情况。这越来越让我觉得 HMM 不适合具有多个观察变量的情况。
- 是否可以将图中描述的问题建模为 HMM?
- 如果是,如何修改 Baum-Welch 算法以适应基于多变量观察(发射)概率的 HMM 参数训练?
- 如果没有,您是否知道更适合图中所示情况的方法?
谢谢。
编辑: 在这个paper 中,图中描述的情况被描述为动态朴素贝叶斯,就训练和估计算法而言,它需要对单变量 HMM 的 Baum-Welch 和 Viterbi 算法进行轻微扩展。
【问题讨论】:
-
你在说something like this吗?
-
天真地说,您可以将这样的问题建模为标准 HMM,只需一次观察。如果每个观察
Yti是元素 R,则只需将每个多观察Yt设为 R^3 中的一个元素。如果 n 是可能的单个观察的数量,这将导致 n^3 个可能的多观察。但是,与更复杂的方法相比,这可能(我不确定/不知道)导致需要更多的训练数据。 -
@Aufziehvogel,这是一种可能性,但正如您所指出的,它极大地扩大了概率空间,并且需要大量的训练数据。此外,从图形上看,您建议的模型与图片中给出的模型不同。
-
@Roger,谢谢,我以前看过这篇论文。根据我在第 4.1 节公式 43 中的理解,对于 k 个观察序列: P(O|lambda) 是 P(O1|lambda) * P(O2|lamda)*...*P(Ok|lambda) 如果序列是独立的。但我相信这仍然适用于 O1,...,Ok 都是属于单个变量的观察序列(例如患者的每日心率读数)的情况,而在我的场景中,我希望能够使用 heart速率 + 氧饱和度 + 其他单独的读数(变量)。
-
我同意 HMM 的问题——它们对于单个观察情况非常具体,但 DBN 可以利用人口稀少的概率空间,因此它们非常值得考虑。我浏览了Daphne Koller's PGM book 以查看那里是否有任何见解,但无论如何它还是让我再次访问了 DBN,所以我猜 HMM 已经出局了。听起来像是一个有趣的应用程序 - 祝你好运。
标签: machine-learning time-series hidden-markov-models