鲍姆韦尔奇许多可能的观察

2024-09-25 08:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在,当您初始化B时,每一行的总和必须为1。由于两行中的每一行都有4096个值,所以数字非常小。当我计算alphabeta时,它们的行最终会随着t的增加而接近0。这是一个问题,因为您无法计算gamma,因为它试图计算x/0或{}。我如何运行算法而不崩溃,也不永久改变我的值?在


Tags: 模型alpha算法参数状态序列矩阵数字
1条回答
网友
1楼 · 发布于 2024-09-25 08:25:44

这听起来像是标准的HMM缩放问题。看看“隐马尔可夫模型教程…”(Rabiner,1989),第五节“缩放”。在

简单地说,您可以在每次重新缩放alpha,并使用与相应的alpha相同的因子重新缩放{},一切都应该正常。在

相关问题 更多 >