在尝试为隐马尔可夫模型制作程序时,我对Baum-Welch算法的初始HMM做了最简单的假设:将所有内容都作为均匀分布。也就是说,
A[i][j] = 1/statenumber;
B[i][j] = 1/observationnumber;
P[i] = 1/statenumber;
高达对数以避免下溢。它的好处是不需要检查标准化。
但到目前为止,我遇到的算法并没有真正做多。发射矩阵在第一次迭代时改变,但在此之后不改变,并且转移矩阵和初始化矢量根本不发展。似乎伽马矩阵根本没有变化。
起初我以为我的算法运行得不好,但在其他HMM库上尝试之后,我似乎得到了相同类型的结果。
使用这样的初始化是否无法收敛到正确的HMM,初始化这些数组的理想方法是什么?
答案 0 :(得分:1)
Baum Welch算法无法使用统一的初始分布 - 更新将会退化。尝试将其随机化。