我已经在python中实现了baum-welch算法,但是我现在在尝试训练HMM(隐马尔可夫模型)参数A
、B
、和{Y = (Y_1=y_1, Y_2=y_2,...,Y_t=y_t)
。每个观察变量Y_t
可以接受K
可能的值,在我的例子中K=4096
。幸运的是,我只有两个状态N=2
,但是我的发射矩阵B
是{
现在,当您初始化B时,每一行的总和必须为1。由于两行中的每一行都有4096个值,所以数字非常小。当我计算alpha
和beta
时,它们的行最终会随着t
的增加而接近0。这是一个问题,因为您无法计算gamma
,因为它试图计算x/0
或{
这听起来像是标准的HMM缩放问题。看看“隐马尔可夫模型教程…”(Rabiner,1989),第五节“缩放”。在
简单地说,您可以在每次重新缩放},一切都应该正常。在
alpha
,并使用与相应的alpha
相同的因子重新缩放{相关问题 更多 >
编程相关推荐