繁体   English   中英

基本隐马尔可夫模型,维特比算法

[英]Basic Hidden Markov Model, Viterbi algorithm

我对隐马尔可夫模型相当新,我试图围绕理论的一个非常基本的部分。

我想使用HMM作为分类器,因此,给定一个时间序列的数据,我有两个类:背景和信号。

如何估算每个班级的排放概率? 维特比算法是否需要背景模板和信号来估计概率(数据|状态)? 或者我完全错过了这一点?

要使用Viterbi进行分类,您需要已经知道模型参数。
背景和信号是你的两个隐藏状态。 使用模型参数和观察数据,您希望使用Viterbi计算最可能的隐藏状态序列。

引用hmmlearn文档

HMM是一种生成概率模型,其中一系列可观察的X变量由一系列内部隐藏状态Z生成。隐藏状态不能直接观察到。 假设隐藏状态之间的转换具有(一阶)马尔可夫链的形式。 它们可以由起始概率向量π和转移概率矩阵A指定。可观察的发射概率可以是具有以当前隐藏状态为条件的参数θ的任何分布。 HMM完全由π,A和θ确定

HMM有三个基本问题:

 Given the model parameters and observed data, estimate the optimal sequence of hidden states. Given the model parameters and observed data, calculate the likelihood of the data. Given just the observed data, estimate the model parameters. 

第一和第二个问题可以分别通过称为维特比算法和前向后向算法的动态编程算法来解决。 最后一个可以通过迭代期望最大化(EM)算法来解决,该算法被称为Baum-Welch算法。

所以我们的隐马尔可夫模型,噪声和信号有两种状态。 我们也必须有一些我们观察到的东西,可能是零和零。 基本上,信号和零都是噪声,但是你的信号中会混入一些零,而噪声则会产生一些零。 所以你需要知道

Probablity of 0,1 when in the "noise" state 
Probability of 0,1 when in the "signal" state  
Probability of transitioning to "signal" when in the "noise" state. 
Probability of transitioning to "noise" when in the "signal" state.

因此,我们跟踪每个时段的每个状态的概率,最重要的是,我们到达那里的最可能路线(基于转换概率)。 然后我们假设时间序列结束时最可能的状态是我们的实际最终状态,并向后追踪。

维特比算法需要知道HMM。

可以使用最大可能估计(MLE)来估计HMM,并将其称为Baum-Welch算法

如果您在使用Viterbi算法时遇到问题,那么这里有一个可行的实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM