avatar
Viterbi怎么Rescale?# Engineering - 工程
y*o
1
我按照wikipedia给的那个pseudo code做的。
http://en.wikipedia.org/wiki/Viterbi_algorithm
目的是想找到隐性马科夫模型(HMM)的最佳State sequence.
如果Observation比较简短, 跑起来没有问题,如果太长,我会得到None.
想必一定是因为里面概率相乘,乘太多了,就underflow了。
可否将那做乘法的那3行相应地变成:
p = log(ep[state][output] * tp[state][next_state])
prob *= log(p)
v_prob *= log(p)
我数学很差,所以想请教前辈大牛儿们,如何rescale? 查不到什么文献。
wikipedia的pseudo-code在此:
def forward_viterbi(y, X, sp, tp, ep):
T = {}
for state in X:
## prob. V. path V. prob.
T[state] = (sp[state], [
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。