每个状态具有多个排放的隐马尔可夫模型

机器算法验证 隐马尔可夫模型 无监督学习 期望最大化
2022-03-24 14:23:23

我想将隐马尔可夫模型用于无监督序列标记问题。由于我的应用程序领域的特殊性(识别对话中的对话行为),我想为每个状态使用多个发射(即多个特征)。因此,从图形上看,该模型将如下所示: 具有多个观察值的 HMM

隐藏状态和观察变量都是离散的。排放概率(一世j | 小号一世)假设是独立的,并通过标准分类分布建模。

我的问题如下:是否有任何公开可用的工具包或算法可以让我通过 Baum-Welch 的变体来学习这种类型的多重发射 HMM 的参数?据我所知,经典 HMM 工具包支持的唯一多重发射类型似乎是多元高斯,但我找不到关于上述类型的独立分类分布的任何信息。

当然,我知道我可以通过将每个观察值视为值向量(该向量中的每个维度对应于特定特征)并通过经典 Baum-Welch 估计该向量空间上的发射概率来“绕过”这个问题,但这会引入很多不必要的数据稀疏性。

有没有人有解决这个问题的建议?我敢肯定,我不是第一个尝试将 HMM 应用于具有多种特征的无监督学习的人!(或者也许我应该使用另一种类型的模型?我也考虑过使用 CRF,但它们似乎更难以应用于无监督学习问题)。

2个回答

自从您发布以来已经有一段时间了,但以防万一,R 中的包msm可能是您需要的。此处的文档在第 2.18 节中通过示例很好地解释了,但简而言之,此包将允许您使用参数hmodel和使用hmm-distshmmMV提供的值同时对状态的排放进行建模. 支持多种类型的分布,包括离散变量。如果您认为您的结果排放来自相同的分布(以状态为条件),那么您可以约束 msm 以这种方式拟合模型,并根据给定状态的所有排放观测值估计一个通用模型。它们也可能被允许具有不同的参数或分布形式,并被拟合为多元模型。

然而,在拟合多元模型时, msm目前似乎不支持估计协变量对结果分布的影响(我实际上发现这个线程的原因,因为这是我现在遇到的问题)。换句话说,如果您确实使用了多变量方法(如果您的所有排放都具有相同的分布,这对您来说可能不是必需的),msm将只允许您的排放模型参数取决于状态而不是其他协变量。msm也没有使用 Baum-Welch,而是使用前向算法直接用矩阵乘积计算似然度。

处理观测分布稀疏性的一种简单方法是将其建模为朴素贝叶斯模型。您仍然可以使用 Baum-Welch 稍作修改。