关于使用 EM 训练 HMM

About training HMM by using EM

刚接触EM算法,正在研究隐马尔可夫模型

在用EM训练我的HMM时,我对数据设置很困惑。 (文本处理)

请确认我的EM使用是否正常

首先,我用我的整个训练集计算了排放概率矩阵的统计数据。然后,我跟运行EM同一套。 -> 未见数据的发射概率此时收敛为零。

当我阅读一篇课文Speech and Language Processing时,我发现练习8.3讲述了两个阶段的训练方法。

8.3 Extend the HMM tagger you built in Exercise 8.?? by adding the ability to make use of some unlabeled data in addition to your labeled training corpus. First acquire a large unlabeled corpus. Next, implement the forward-backward training algorithm. Now start with the HMM parameters you trained on the training corpus in Exercise 8.??; call this model M0. Run the forward-backward algorithm with these HMM parameters to label the unsupervised corpus. Now you have a new model M1. Test the performance of M1 on some held-out labeled data.

根据此声明,我 select 从我的训练集中(训练集的 1/3)中获取一些实例以获取初始统计信息。 然后,我 运行 带有整个训练集的 EM 程序,用于优化 EM 中的参数。

可以吗?

练习所指的过程是一种称为自我训练的无监督学习。这个想法是您使用整个标记的训练集来构建模型。然后你收集更多未标记的数据。找到新的未标记数据比找到新的标记数据要容易得多。之后,您将使用您最初训练的模型标记新数据。现在,使用自动生成的标签,训练一个新模型。