隐马尔可夫模型和异常检测

机器算法验证 时间序列 隐马尔可夫模型
2022-03-24 21:43:07

在 Shane 对这个问题的回答中,他建议隐马尔可夫模型可以比小波更成功地用于异常/变化检测(有点不清楚 - 他正在解决的主题是异常检测,尽管他使用了“变化检测”这个词)

我对隐马尔可夫模型不是很熟悉,但据我了解,它们需要一个已知的马尔可夫过程(所有状态和转移概率都是已知的),并且每个状态都有一组已知的发射概率。使用这些可以完成的真正有趣的事情是,给定一系列排放,人们可以找到最可能导致这些排放的状态序列。

假设我正确理解了 HMM(如果我错了,请纠正我),它如何用于异常检测?如何确定使用 HMM 进行异常检测的基本马尔可夫过程和发射概率?

1个回答

根据这篇 Wikipedia文章,您可以从 HMM 中获得许多推理优势。第一个推论是为任何观察序列分配概率的能力Y=(Y1,,YN)通过边缘化所有可能的隐藏状态序列集X=(X1,,XN)

P(Y)=XP(X)P(Y|X)

这样,您甚至可以在观察到达时以在线方式将概率分配给观察序列(使用非常有效的前向算法)。异常是根据(相对)极不可能的观察结果P(Y)(可以使用阈值来决定)。当然,价值P(Y)随着越来越小N增加。许多方法可用于重整化 P(Y)使其保持在浮点数据类型的可表示范围内并启用有意义的阈值。例如,我们可以使用以下作为异常度量:

AN=logP(YN|Y1,,YN1)=logP(Y1,,YN)P(Y1,,YN1) AN=logP(Y1,,YN)logP(Y1,,YN1)