19

我正在尝试使用隐马尔可夫模型 (HMM) 来解决每个时间点 t 有 M 个不同的观察变量 (Yti) 和单个隐变量 (Xt) 的问题。为清楚起见,我们假设所有观察到的变量 (Yti) 都是分类变量,其中每个 Yti 传达不同的信息,因此可能具有不同的基数。下图中给出了一个说明性示例,其中 M=3。

在此处输入图像描述

我的目标是使用 Baum-Welch 算法从我观察到的变量序列 (Yti) 中训练 HMM 的转换、发射和先验概率。假设 Xt 最初将有 2 个隐藏状态。

我已经阅读了一些教程(包括著名的 Rabiner 论文)并浏览了一些 HMM 软件包的代码,即“ HMM Toolbox in MatLab ”和“ hmmpytk package in Python ”。总的来说,我进行了广泛的网络搜索,所有我能找到的资源只涵盖了每个时间点只有一个观察到的变量 (M=1) 的情况。这越来越让我认为 HMM 不适合具有多个观察变量的情况。

  • 是否可以将图中描述的问题建模为 HMM?
  • 如果是,如何修改 Baum-Welch 算法以适应基于多变量观察(发射)概率的 HMM 参数训练?
  • 如果没有,您是否知道更适合图中所示情况的方法?

谢谢。

编辑:本文中,图中描述的情况被描述为动态朴素贝叶斯,就训练和估计算法而言,它需要对单变量 HMM 的 Baum-Welch 和 Viterbi 算法进行轻微扩展。

4

6 回答 6

7

做到这一点并让模型保持生成的最简单方法是在给定x_is. 这导致了微不足道的估计量和相对较少的参数,但在某些情况下是一个相当严格的假设(它基本上是朴素贝叶斯分类器的 HMM 形式)。

编辑:这意味着什么。对于每个时间步 i,您都有一个多元观测值y_i = {y_i1...y_in}。在给定 x_i 的情况下,您将y_ij视为条件独立,因此:

p(y_i|x_i) = \prod_j p(y_ij | x_i)

然后,您将有效地为隐藏变量 x 的每个可能值学习一个朴素贝叶斯分类器。(条件独立在这里很重要:ys的无条件分布存在依赖关系)。这可以通过 HMM 的标准 EM 来学习。

正如一位评论者所说,您也可以将连接y_ijs的.

您是否特别需要模型具有生成性?如果您只是在 中寻找推论,那么使用条件随机场x_is可能会更好,它通过其特征函数可以进行更复杂的观察,而无需相同的限制性独立假设。

于 2013-07-08T08:47:37.943 回答
3

我发现这可以通过将系统建模为动态朴素贝叶斯分类器(DNB) 来实现,它是普通(单变量)HMM 的轻微扩展,可以满足如图所示的多观察场景。

需要注意的是,DNB 仍然具有隐藏状态,因此不应将其视为原始朴素贝叶斯分类器的直接顺序扩展。算法名称中的“幼稚”源于这样一个事实,即在给定隐藏状态变量的情况下,所有观察到的变量都是相互独立的。

与 HMM 类似,该模型的参数估计可以通过 Baum Welch(或 EM,无论您喜欢如何命名)算法来实现。由于每个时间步的排放分布现在是每个观测变量 Yti 的 P(Yti|Xt) 的乘积,因此需要对前向、后向和联合变量方程进行轻微修改,如 Aviles 在本文第 3 节中所述-阿里亚加等人。

于 2013-07-08T10:19:34.630 回答
2

您正在寻找的东西称为结构化感知器。请看第 42 页的以下幻灯片。 http://www.cs.umd.edu/class/fall2015/cmsc723/slides/inclass_09.pdf

于 2016-03-29T18:22:11.177 回答
0

您可以使用张量对问题进行建模,使用两个时间序列构建张量,然后识别 HMM 参数。“Hidden Markov Model Identifability via Tensors”对此有很好的参考。

Matlab 提供张量工具箱。

仅供参考,我正在解决一个相关问题,如果您想以更私密的方式讨论,请随时给我发电子邮件

于 2013-10-01T12:20:03.427 回答
0

本文提出了一种算法来解决这个问题

于 2019-06-13T13:40:26.650 回答
0

您可以尝试隐藏半马尔可夫模型,它是 hmm 的扩展。它允许每个状态持续多个时间段。

于 2015-11-10T01:20:29.540 回答