我对隐马尔可夫模型相当陌生,我正试图围绕该理论的一个非常基本的部分展开思考。
我想使用 HMM 作为分类器,因此,给定数据的时间序列,我有两个类:背景和信号。
如何估计每个类别的排放概率?维特比算法是否需要背景和信号的模板来估计概率(数据|状态)?还是我完全错过了重点?
我对隐马尔可夫模型相当陌生,我正试图围绕该理论的一个非常基本的部分展开思考。
我想使用 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 算法。
所以我们的隐马尔可夫模型有两种状态,噪声和信号。我们还必须有我们观察到的东西,可以是 1 和 0。基本上,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.
因此,我们跟踪每个时隙的每个状态的概率,并且至关重要的是,我们到达那里的最有可能的路线(基于转换概率)。然后我们假设时间序列结束时最可能的状态是我们实际的最终状态,并向后追溯。