问题标签 [hidden-markov-models]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 是否有任何 Matlab 函数用于处理具有连续观察变量的隐马尔可夫模型?
在 Matlab 统计工具箱中,有几个函数用于处理隐马尔可夫模型 (HMM),但它们都适用于离散观察符号。有谁知道是否有可以处理连续观察变量的工具箱或函数(可能来自第三方)?
python - 属性错误?程序即将运行
你好:只是一个简单的问题.. 我希望。我正在尝试使用该程序从语料库中生成随机文本..在这种情况下是一本书的一部分。
我有一个文本文件是我的语料库:(这是介绍,不会在这里发布整个内容)
接下来我有我正在尝试使用的课程:
最后给出错误的主要内容:“'Markov'对象没有属性'file_to_words'”
这里出了什么问题?谢谢。
algorithm - 维特比搜索 - 假设概率
我正在构建一个隐马尔可夫模型来确定某人是在说“是”还是“否”。我已经开发了隐马尔可夫模型,并且从这个页面看到了一个教程:
在本教程中它说:
该图通过假设的概率矩阵跟踪“是”和“否”的搜索路径。即使“否”的分数非常低,如果“是”没有出现在我们的词汇表中,仍然可以找到这个词的最可能路径。Viterbi 搜索可以通过阅读以下伪代码算法来理解(符号取自 Rabiner 的论文,A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition):
我已经阅读了这两篇论文,但我仍然对他们所说的地方感到困惑:
我的问题是这个概率矩阵来自哪里?例如,我做了以下事情:
- 读入音频文件
- 剥离了不值得考虑的音频信号
- 将需要考虑的信号拆分成块
这意味着我留下了包含音素的块。我已经计算了数据的过零,因此我的观点是:
对于“否”,来自此的数据非常低,
对于“是”,来自此的数据非常高。
所以在例子中(上面给出)它说:
那么我可以将零交叉的结果作为我的概率传递吗?我很困惑,希望有人可以帮助我。
algorithm - 在 HMM 中找到前 k 个维特比路径
我需要编写一个算法来找到 HMM 中的前 k 个维特比路径(使用常规维特比算法来找到最佳路径)。
我想我可能需要为每个状态 N 保存一个大小为 k 的列表 V_t,N,其中包含以状态 N 结尾的前 K 个路径,但我不太确定如何跟踪该列表。有什么想法吗?谢谢
sequence - 如何使用隐马尔可夫模型进行未来预测
我有许多可变长度的序列。对于这些,我想训练一个隐马尔可夫模型,稍后我想用它来预测(部分)序列的可能延续。到目前为止,我已经找到了两种使用 HMM 预测未来的方法:
1)幻觉延续并获得该延续序列的可能性。选择可能性最高的一个作为您的预测。此方法需要明确了解连接的可能值。
2)对(部分)序列使用维特比算法来获得最可能的隐藏状态序列。取该序列中最后一个隐藏状态的发射分布并预测例如该分布的平均值(通常是高斯分布)。
现在我的问题是:还有其他可能更原则性的方法来使用 HMM 预测未来吗?
谢谢!
mathematical-optimization - 隐马尔可夫模型初始猜测
我正在对大型英文文本(布朗语料库的前 50,000 个字符,仅包括字母和空格)训练 2 状态 HMM,我的算法遵循 Mark Stamp 的教程(www.cs.sjsu.edu/~stamp/RUA/ HMM.pdf)。
由于观察只包括 26 个字母和空格,最初我给每个观察(在一个状态内)的概率为 1/27,然后在保持行随机的同时将每个观察修改 0.0001。
将训练器运行 50 次迭代可以让我在 log[P(O|lambda)] 中获得非常微小的增量改进,其中 lambda 是更新后的模型。此外,在最终模型的观察矩阵中,每个观察的概率在两种状态下几乎相同(参见http://pastebin.com/xVVYNhGs)。
我想我被困在一个局部最大值上,所以我改变了观察矩阵的初始猜测以匹配 Stamp 的,它实际上给了我一个更新的观察矩阵,在相同的迭代次数内因状态*而不同。(50 次迭代: http: //pastebin.com/U0AgrJ2N;100 次迭代: http: //pastebin.com/yAkruNjs)
我的问题是,我改变的初始观察矩阵(发射概率)显然使我脱离了可悲的局部最大值;但是我将如何去寻找/优化这个最初的猜测?
algorithm - 使用 HMM 和 Viterbi 算法来纠正印刷错误
我想使用 HMM 和 Viterbi 算法来纠正印刷错误,我计算了所需的概率,但是当我应用 Viterbi 算法时,我得到了非常糟糕的结果,我逐行检查了代码,我找不到错误
nlp - 给定 100,000 个单词到音素的映射,我如何在音素边界上拆分原始单词?
我有 100,000 多个单词到他们的音素(CMUdict)的映射,例如:
我想将原始单词的字母分成等于音素数量的组,例如
我没有音素到字素的映射,但似乎我应该能够计算音素到字素的统计模型,然后用它来决定在哪里分割每个单词。(如果该模型也可以用于将新单词转换为其可能的音素,那就太好了)
我怎样才能做到这一点?我在想一个隐藏的马尔可夫模型听起来可能是适用的,但除了那种预感我不知道。
algorithm - 手势识别的HMM算法
我想开发一个使用 Kinect 和hidden Markov models
. 我在这里看了一个教程:HMM 讲座
但我不知道如何开始。什么是状态集,如何规范化数据才能实现HMM
学习?我知道(或多或少)应该如何处理信号和简单的“从左到右”的情况,但是 3D 空间让我有点困惑。谁能描述它应该如何开始?
任何人都可以描述步骤,如何做到这一点?特别是我需要知道如何做模型以及HMM
算法的步骤应该是什么。