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

时间:2016-11-10 09:03:03

标签: classification models hidden markov viterbi

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

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

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

3 个答案:

答案 0 :(得分:0)

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

引用hmmlearn documentation

  

HMM是一种生成概率模型,其中包含一系列序列   可观察的X变量由一系列内部隐藏生成   Z.隐藏的状态不是直接观察到的。该   假设隐藏状态之间的转换具有a的形式   (一阶)马尔可夫链。它们可以从一开始就指定   概率向量π和转移概率矩阵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算法。

答案 1 :(得分:0)

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

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.

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

答案 2 :(得分:0)

Viterbi Algorithm需要了解HMM。

可以用Maximum-Likely-Estimation (MLE)来估计HMM,它被称为Baum–Welch algorithm

如果您在使用维特比算法时遇到问题,可以使用有效的实现here