1

我正在对大型英文文本(布朗语料库的前 50,000 个字符,仅包括字母和空格)训练 2 状态 HMM,我的算法遵循 Mark Stamp 的教程(www.cs.sjsu.edu/~stamp/RUA/ HMM.pdf)。

由于观察只包括 26 个字母和空格,最初我给每个观察(在一个状态内)的概率为 1/27,然后在保持行随机的同时将每个观察修改 0.0001。

将训练器运行 50 次迭代可以让我在 log[P(O|lambda)] 中获得非常微小的增量改进,其中 lambda 是更新后的模型。此外,在最终模型的观察矩阵中,每个观察的概率在两种状态下几乎相同(参见http://pastebin.com/xVVYNhGs)。

我想我被困在一个局部最大值上,所以我改变了观察矩阵的初始猜测以匹配 Stamp 的,它实际上给了我一个更新的观察矩阵,在相同的迭代次数内因状态*而不同。(50 次迭代: http: //pastebin.com/U0AgrJ2N;100 次迭代: http: //pastebin.com/yAkruNjs

我的问题是,我改变的初始观察矩阵(发射概率)显然使我脱离了可悲的局部最大值;但是我将如何去寻找/优化这个最初的猜测?

4

1 回答 1

3

Rabiner的 HMM 教程论文第 VC 节第 273 页给出了对此的答案:

基本上,上述问题没有简单或直接的答案。相反,经验表明,在几乎所有情况下,对先验概率和转移矩阵的随机(受随机和非零值约束)或统一初始估计都足以对这些参数进行有用的重新估计。

然而,对于发射矩阵,经验表明良好的初始估计在离散符号情况下是有帮助的,并且在连续分布情况下是必不可少的(在处理多种混合物时)。**

这种初始估计可以通过多种方式获得,包括:

1)将观察序列手动分割成状态,并在状态内进行平均观察,

2)用平均法对观测值进行最大似然分割,

3)带聚类的分段 k 均值分割,

等等

于 2013-07-12T13:18:57.357 回答