Baum-Welch有许多可能的观察结果

时间:2015-06-10 22:10:07

标签: python hidden-markov-models

我已经在python中实现了baum-welch算法,但是我在尝试训练HMM(隐藏马尔可夫模型)参数ABpi时遇到了问题。问题是我有很多观察序列Y = (Y_1=y_1, Y_2=y_2,...,Y_t=y_t)。在我的案例中,每个观察变量Y_t都可以采用K个可能的值,K=4096。幸运的是,我只有两个状态N=2,但我的发射矩阵BN by K所以2行乘4096列。

现在,当您初始化B时,每行必须总和为1.由于两行中的每一行都有4096个值,因此数字非常小。这么小,当我去计算alphabeta时,他们的行最终接近0,t增加。这是一个问题,因为您在尝试计算gammax/0时无法计算0/0。如何在不崩溃且不永久改变我的值的情况下运行算法?

1 个答案:

答案 0 :(得分:0)

这听起来像标准的HMM缩放问题。看看"隐藏马尔可夫模型教程......" (Rabiner,1989),V.A" Scaling"。

简而言之,您可以每次重新调整alpha总和为1,并使用相同的因子重新调整beta,并将其作为相应的alpha,以及所有内容应该工作。