如何定义 HMM 的初始概率?

机器算法验证 马尔科夫过程 隐马尔可夫模型
2022-04-05 01:02:41

HI 这是我第一次阅读有关 HMM 的文章,但是我在网上阅读了很多文章,但我感到困惑的两件事是:

  1. 如何确定隐藏状态的数量(虽然 HMM 说我们不需要知道,但我们只需要猜测,即使猜测什么应该是最好的标准)
  2. 一旦定义了隐藏状态,比如说 5,那么如何定义每个隐藏状态的初始概率以及彼此之间的过渡概率......

如果有人能给我举个例子,我将不胜感激……但请不要给我举个天气系统的例子。

2个回答

1. 如何确定隐藏状态的数量(虽然 HMM 说我们不需要知道,但我们只需要猜测,即使猜测什么应该是最好的标准)

隐藏状态的数量取决于问题。例如在语音识别和合成中,通常使用 3 和 5 状态。使用这些的原因是语音是一个高度可变的数据。因此,语音声音(音素)在不同时刻的分布随时间而变化,并且每个状态都对不同的分布进行建模。

2.一旦定义了隐藏状态,比如说5,那么如何定义每个隐藏状态的初始概率以及彼此之间的过渡概率......

一个 HMM 可以定义为 (A, B,π),其中 A 是状态转移概率矩阵,B 是状态发射概率向量,并且π(A 的一个特殊成员)是初始状态分布的向量。采取以下步骤来估计这些参数:

  • 对于 A 和π参数,随机初始化 HMM(0 到 1 之间)
  • 通过均匀分割训练数据并估计全局均值和方差来初始化 B 参数。B 参数处理每个状态的均值和方差
  • 使用 Baum-Welch 算法重新估计和细化参数。这是众所周知的期望最大化 (EM) 算法的变体。

参考:

  • Rabiner, L. 1989。关于隐藏马尔可夫模型和语音识别中的选定应用程序的教程。
  • Baum、LE、T. Petrie、G. Soules 和 N. Weiss。1970. 马尔可夫链概率函数统计分析中的最大化技术。数理统计年鉴卷。41,第 1 期,第 164-171 页。
  • Dempster、AP、NM Laird 和 DB Rubin。1977. 通过 EM 算法从不完整数据中获得最大可能性。皇家统计学会杂志。B 系列(方法论)39 (1),第 1-38 页。

对这个问题的通常、没有启发性和无信息的答案是“你的系统的动态/物理问题的性质将表明有多少隐藏状态”,这意味着:“选择并克服它”。但是,我不相信这一点。我认为大多数问题都比这更复杂,因此您的问题是一个非常有效的问题。

让我们假设您正在使用高斯分布来模拟您的发射(观察)变量。在拟合 HMM 时,您所做的基本上是时间聚类。因此,您可以利用一种快速且更简单的聚类方法来形成每个状态的高斯分布的初始猜测。Rabiner 的论文中也提到了这一点——HMM 的主要参考资料。

1)您可以在数据集上运行(简单)k-means,以粗略估计最佳聚类数和数据集中质心(平均向量)的位置。此处查看有关如何确定集群数量的主题的大量报道。

2)更好的是,您可以选择在您的数据集上拟合高斯混合(或任何混合模型),以查看有多少混合组件最能解释您的数据集以及足够的统计数据(均值向量、协方差)是什么。您可以在训练 HMM 时使用这些输出来形成初始参数 - 这比训练混合模型(显然是 k-means 例程)在计算上更难,主要是由于进入对数似然的串行依赖关系(因此期望最大化) 计算。

现在,重要的是,这些聚类技术在计算哪个点最有可能属于哪个状态时,不会考虑串行依赖关系(就像 HMM 通过其转换矩阵所做的那样)。然而,它们会给你粗略估计你的起点(例如平均向量、协方差向量、先验分布)应该是什么。

例如,您可以计算以这种方式训练的 HMM 的对数似然,然后将其与使用随机初始值训练的 HMM 的对数似然进行比较,以自己观察差异。

这在某种程度上类似于,例如,开始一个非凸问题的全局优化,其最优值到其简化(近似)凸版本。您执行步骤 1 和/或 2 以减少搜索空间。不用说,您找到的最终值无论如何都不能保证是您的优化问题的全局解决方案 - 但可能对您的目的足够好。