问题标签 [viterbi]

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.

0 投票
2 回答
606 浏览

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

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

任何人都可以指导我这件事。

0 投票
1 回答
1798 浏览

encoding - 穿孔卷积码的维特比解码

我正在尝试在 OFDM/802.11a 的上下文中了解有关卷积编码/解码的更多信息。为此,我尝试了实现 802.11a 规范中的编码器/解码器。但是,就错误率而言,我可能会误解解码器的目标。

我的编码器似乎可以工作,因为它的输出与规范的输出相匹配。

但是,我的解码器(我使用 Viterbi 算法实现并使用http://home.netcom.com/~chip.f/viterbi/tutorial.html作为参考)在处理打孔代码时似乎效果不佳. 当我向解码器提供一个以 3/4 的速率被打孔的编码字符串时,结果大约有 380 个 864 位错误。也就是说,解码器输出的 380 位与编码器的原始输入不匹配。当我在不打孔的情况下向它提供编码字符串时,它会正确恢复 100% 的位。

我的问题是:适当的维特比解码器是否应该能够以 100% 的准确度解码已被穿孔但不受噪声影响的编码字符串?或者,是否理解对编码字符串进行穿孔会在解码字符串中产生位错误?

0 投票
0 回答
745 浏览

algorithm - 维特比块解码

我不知道这是否适合这里,但这里有:

我有一些使用Hamming Block Code编码的嘈杂数据,我想使用Viterbi Decoder对它们进行解码。

我做了功课,因此我知道维特比块解码器是如何工作的,但我想避免自己实现它,因为这需要相当长的时间并且可能不是最理想的。

我的问题如下:你知道维特比块解码器的任何 matlab 函数吗?我找到了 comm.ViterbiDecoder但它仅用于卷积编码。

同时,我尝试从编码器中检索尽可能多的信息,以防将来可能需要它(参见下面的代码)。

0 投票
1 回答
374 浏览

matlab - HMM工具箱中的问题

最近我在做一些HMM的培训,我使用了HMM工具箱。但我有一些问题,无法解决。

  1. 我训练我的嗯,如下所示。这里没有问题。

    /li>
  2. 我使用 Viterbi 算法找到通过 HMM 状态网格的最可能路径。

    现在有一个问题。我不知道“obslik”是什么意思。是观察矩阵1吗?

  3. 我想得到一个序列的概率,但我不知道我是否应该使用“fwdback”函数。如果我应该,那么“obslik”是什么意思?

    谢谢!!!

0 投票
1 回答
3167 浏览

r - 在 HMM 中实现 Viterbi 算法,改变基因组标记的发射矩阵

我想在实施隐藏马尔可夫方法以根据 SNP 基因型数据分配祖先时寻求帮助。鉴于我有一个这样生成的转换矩阵:

发射矩阵是 n 个 8x4 矩阵的列表,其中 n 等于数据中 SNP/行的数量。例如,对于 3 个 SNP/行的 8 个样本 (A1-A8) 的以下数据:

列表中的矩阵 1 将是

由于第 1 行中有 7 个样本具有 T,因此每个样本的概率为 1/7。由于只有 A8 拥有 C,因此将 C 分配给 A8 的概率为 100%。对于第 3 行,输出应为

使用上述转换矩阵和发射矩阵列表,我希望在任何等位基因序列上实现维特比算法。我目前拥有的代码无法为每一行使用不同的发射矩阵

0 投票
2 回答
3366 浏览

algorithm - Viterbi algorithm for second order HMM

I am trying to find some (preferably MATLAB) code for the Viterbi algorithm in a 2nd order HMM. I know how to apply it for a first order model, and understand the concept for 2nd order. However I am having trouble implementing it for a 2nd order model. Can anyone give me any good references? I have searched Google and, surprisingly, could not find anything that's reasonably clear.

Also, is there a MATLAB library that already implements this? I know there is one for a first order HMM. Thanks

0 投票
1 回答
157 浏览

matlab - Matlab 中的快速 DP(用于轮廓 HMM 的 Viterbi)

我在 Matlab 中遇到了 viterbi logodds 计算的效率问题。

基本上我的问题是嵌套循环是强制性的,这会大大降低代码速度。这是昂贵的部分:

我相信我不是第一个为配置文件 HMM 实现维特比的人,所以也许你有一些建议。我还查看了 Matlab 自己的 hmmviterbi,但没有发现(也使用嵌套循环)。我还测试了用一些原始操作替换 max ,但没有明显差异(实际上有点慢)。

0 投票
1 回答
185 浏览

r - 矩阵的维特比解码

目的:使用矩阵对隐藏序列进行全局解码。分步代码如下:

λ=rbind(c(0.999,0.0002,0.0003,0.0004,0.0001),c(0.001,0.9930,0.010,0.004,0.002),c(0.0004,0.0020,0.9900,0.0075,0.0001),c(0.000,0.00007,03. ,0.9940,0.0020),c(0.0010,0.0005,0.0040,0.0020,0.9925))

P=cbind(c(0.6,0.1,0.1,0.2),c(0.25,0.3,0.2,0.25),c(0.1,0.6,0.2,0.1),c(0.25,0.2,0.4,0.1),c( 0.5,0.2,0.2,0.1))

我创建了一个函数来解决隐藏序列的维特比解码并显示错误,所以我无法绘制图表来识别差异。谁能帮我解决这个问题。

0 投票
2 回答
1387 浏览

nlp - 在实施用于 POS 标记的 Viterbi 算法时,HMM 中的开始和结束状态是否必要?

我不完全理解如何在隐马尔可夫模型中使用开始和结束状态。为了设计和实施过渡和排放矩阵,这些是否必要?

0 投票
0 回答
375 浏览

algorithm - Viterbi Algorithm - Score

I am working on a project that uses the leap motion controller. I am using a Hidden Markov Model to model whether a hand is moving left, or, whether a hand is moving right. For this, I do the following:

1) Take the live data from the leap motion controller (80 values containing 2 values for each set)

2) Extract features "Velocity vector"

I have plotted the live data and it seems to be extracting the features ok. Now my problem is generating the HMM's. For this, I store the first 80 values inside a 2-Dimentional Vector and initialise and train each of the models with these values, for example:

-> Live data -> Left-> Capture first 80 values -> initialise HMM -> train HMM

-> Live data -> Right -> Capture first 80 values -> initialise HMM -> train HMM

I then save the output of each model into different text files:

For the recognition part of this problem, I read the values in to form the models of the HMM, for the live data again I extract the features and pass this to a viterbi_scoring algorithm. For this, I pass in: raw extracted features and each of the models.

I then output each of the scores, but none of them make any sense. I can't seem to figure out where I am going wrong. The methods seems to be right.

Any help or suggestions would be greatly appreciated.