【发布时间】:2014-06-11 10:55:42
【问题描述】:
在尝试为隐马尔可夫模型编写程序时,我对 Baum-Welch 算法的初始 HMM 做了最简单的假设:将所有内容都视为均匀分布。也就是说,
A[i][j] = 1/statenumber;
B[i][j] = 1/observationnumber;
P[i] = 1/statenumber;
最多取一个对数以避免下溢。它的好处是不需要检查规范化。
但到目前为止,我遇到的算法实际上并没有做太多。发射矩阵在第一次迭代时发生变化,但在那之后没有变化,并且转移矩阵和初始化向量根本不演化。好像伽玛矩阵根本没有变化。
一开始我以为是我的算法效果不佳,但在其他一些 HMM 库上尝试后,我似乎得到了相同类型的结果。
使用这样的初始化是否不可能收敛到正确的 HMM,初始化这些数组的理想方法是什么?
【问题讨论】:
-
你的意思是
A、B和P分别是transition probability、observation probability和initial probability吗?我认为没有问题。训练 HMM 的数据是否正确?如果您提供数据,我们可以给出更好的答案。
标签: c algorithm hidden-markov-models