我正在使用EM编程GMM。我遇到了以下问题。正如您将在this website中看到的,有一个参数“pi”,换句话说就是权重或概率值。
我的问题是这是如何计算的?或者它是否在实际编码中被忽略了?
答案 0 :(得分:2)
pi_k是第k个高斯的混合系数。你绝对不能忽视它。 pi_k的最大似然估计是您的实例的第k个指标变量的平均值。您引用的页面调用这些指示符\ alpha_ik。
答案 1 :(得分:0)
您可能已经阅读过,EM的每次迭代都有两个步骤。期望步骤和最大化步骤。在每个期望步骤中,我们越来越精确地了解每个训练样本属于每个群集的程度。使用该估计,在最大化步骤中,我们计算GMM的参数,其最大化可能性。 pi_k是最大化步骤中由此计算的参数之一。因此,pi_k会在每次迭代时重新进行评估。
使用EM的opencv实现,如果'em_model'是您的EM模型,并且已经过训练,
Mat weights = em_model.get<Mat>("weights");
将为您提供pi_k的值。