我正在训练大型英文文本(布朗语料库的前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) .
我想我是'm stuck on a local maximum, so I altered the initial guess for observation matrix to match Stamp',它实际上给了我一个更新的观察矩阵,在相同的迭代次数内,状态*不同 . (50次迭代:http://pastebin.com/U0AgrJ2N; 100次迭代:http://pastebin.com/yAkruNjs)
我的问题是,我改变的初始观察矩阵(发射概率)显然让我摆脱了悲伤的局部最大值;但是我如何才能找到/优化这个初始猜测呢?
1 回答
Rabiner的HMM教程paper给出了答案,第V-C节,第273页: