我需要编写一个算法,找到HMM中前K个维特比路径(使用常规的维特比算法找到最佳路径)。
我认为我可能需要为每个状态N保存大小为k的V_t,N列表,其中包含以状态N结尾的前K条路径,但我不太确定如何跟踪该列表.. 有什么想法吗?谢谢
我需要编写一个算法,找到HMM中前K个维特比路径(使用常规的维特比算法找到最佳路径)。
我认为我可能需要为每个状态N保存大小为k的V_t,N列表,其中包含以状态N结尾的前K条路径,但我不太确定如何跟踪该列表.. 有什么想法吗?谢谢
transition[4][4]
emissions[4][2]
初始概率:
p[2]
alpha(i, 1) = p[i] * emissions[i][o_1]
alpha(i, t) = emissions[i][o_t] * max_{k in states} (alpha(k, t-1) * transition[k][i])
假设我们有一个矩阵m,大小为4乘以k,其中一行表示前一个状态,m[state]表示以该状态结尾的前k个路径的概率。因此,m的每一行都按从大到小的顺序排序,现在的问题是找到:
Best_K_Values(t, i) = Top K over all i,preceding_state,k (emissions[i][o_t] * m[preceding_state][k] * transition[preceding_state][i])
其实关于这个问题已经有很多文献了。我找到了这个,需要仔细查看。
列出了应用程序的Viterbi解码算法清单
http://www.ensc.sfu.ca/people/faculty/cavers/ENSC805/readings/42comm02-seshadri.pdf