我使用 Baum-Welch 算法为越来越多的状态构建了几个隐马尔可夫模型。我注意到在 8 个状态之后,验证分数下降超过 8 个状态。所以我想知道由于某种过度拟合,隐马尔可夫模型的准确性是否会随着状态数量的增加而降低?
提前致谢!
我使用 Baum-Welch 算法为越来越多的状态构建了几个隐马尔可夫模型。我注意到在 8 个状态之后,验证分数下降超过 8 个状态。所以我想知道由于某种过度拟合,隐马尔可夫模型的准确性是否会随着状态数量的增加而降低?
提前致谢!
为了清楚起见,我在这里提出一个非常简化的现象说明。
假设您使用数据序列 (ABAB) 训练您的 HMM。假设您使用 2 态 HMM。自然,状态 1 将优化自身以代表 A,而状态 2 将代表 B(或相反)。然后,您有一个新序列 (ABAB)。你想知道这个序列相对于你的 HMM 的可能性。一个维特比算法会发现最可能的状态序列是(1-2-1-2),而鲍姆-韦尔奇算法会给这个序列一个高似然的状态序列和新序列的“值”(如果使用连续数据)清楚地匹配您的训练序列。
现在假设您使用相同的训练序列 (ABAB) 训练了一个三态 HMM。您的数据的初始聚类很可能会将 HMM 的 2 个第一个状态分配给符号 A 的表示,并将最后一个状态分配给符号 B(或再次相反)。
所以现在,查询序列(ABAB)可以表示为状态序列(1-3-1-3)或(2-3-2-3)或(1-3-2-3)或(2-3) -1-3) !这意味着对于这个三态 HMM,两个相同序列 (ABAB) 与 HMM 的相似性可能很低。这就是为什么对于任何 HMM 和任何数据集,超过一定数量的状态,性能会下降的原因。
您可以使用贝叶斯信息标准、Akaike 信息标准、最小消息长度标准等标准来估计最佳状态数,或者如果您只是想获得一个模糊的想法,可以使用 k-means 聚类和方差百分比解释。前 3 个标准很有趣,因为它们包含与模型参数数量相关的惩罚项。
希望能帮助到你!:)