我正在使用 EM 对 GMM 进行编程。我遇到了以下问题。正如您将在本网站中看到的,有一个参数“pi”,即权重或概率值。
我的问题是这是如何计算的?还是在实际编码中被忽略?
我正在使用 EM 对 GMM 进行编程。我遇到了以下问题。正如您将在本网站中看到的,有一个参数“pi”,即权重或概率值。
我的问题是这是如何计算的?还是在实际编码中被忽略?
pi_k 是第 k 个高斯的混合系数。你绝对不能忽视它。pi_k 的最大似然估计量是您的实例的第 k 个指标变量的平均值。您引用的页面将这些指标称为 \alpha_ik。
您可能已经阅读过,EM 的每次迭代都有两个步骤。期望步骤和最大化步骤。在每个期望步骤中,我们对每个训练样本属于每个集群的程度有一个越来越精细的想法。使用这个估计,在最大化步骤中,我们计算最大化似然的 GMM 的参数。pi_k 是在最大化步骤中如此计算的参数之一。所以 pi_k 在每次迭代时都会重新评估。
使用 EM 的 opencv 实现,如果 'em_model' 是您的 EM 模型,并且如果它已经过训练,
Mat weights = em_model.get<Mat>("weights");
将为您提供 pi_k 的值。