machine-learning - HMM 与手势识别的混淆

标签 machine-learning hidden-markov-models viterbi

我一直在阅读有关 HMM 理论的内容。据我了解,我们需要初始概率、转移概率和发射概率才能继续 HMM。我看到的关于 HMM 实现的例子从一开始就定义了所有这些概率。但问题是我想使用 HMM 识别手势,但我无法弄清楚如何定义概率(即转移概率和发射概率矩阵)。我知道如何使用维特比算法来获得最佳序列或如何使用前向-后向进行推理,这只是我担心的起始概率

任何人都可以指导我吗?

最佳答案

事实上,隐马尔可夫模型有三种主要算法,您提到了这三种算法中的两种:

  1. 前向-后向算法。
  2. 维特比算法
  3. Baum Welch algorithm :从训练数据中推断参数(初始概率、转移概率、发射概率)。
Baum-Welch 算法基本上是一种期望最大化算法,从随机起始参数开始,然后使用前向-后向算法计算初始参数的最大似然值,然后进行迭代。 this lecture note 中对该算法的伪代码进行了很好的阐述。 。它还讨论了语音识别的相关问题,这是 HMM 的一个非常成功的应用。不幸的是,它没有讨论 Baum-Welch 或其他算法在实践中通常很难实现的事实,因为概率变得非常小。因此,在实践中,您要么必须小心缩放,使用对数概率,要么使用 sci-kit learn 的 HMM 实现,其中包括所有三种主要 HMM 算法。

关于machine-learning - HMM 与手势识别的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598010/

相关文章:

python - Python sklearn 中是否有用于非线性逻辑回归的模块?

java - 分层HashMap N阶HMM实现

r - 如何对数据集进行分层采样,使用 Caret 进行统计分析并在 r 中重复?

python - 在 Pytorch 中连接两个张量

machine-learning - 使用矩阵 (NxN) 观测值创建离散隐马尔可夫模型?

c++ - 了解维特比算法

algorithm - 维特比算法中的这一行具体是做什么的?

c# - 如何在C#中实现维特比算法来拆分连体词?

python-3.x - Keras 中 X 的多项功能

python - Python 中的马尔可夫切换模型 Statsmodels