【问题标题】:Expectation Maximization opencv-Log Likelihood value期望最大化opencv-Log似然值
【发布时间】:2014-01-17 05:02:34
【问题描述】:

我正在使用 EM 估计 GMM 的参数,

当我使用我的 Matlab 脚本并运行 EM 代码时,我得到一个 “log-likelihood”的单一值..

然而,在 opencv 中,EM.train 的输出给出了一个矩阵,其中包含 每个样本的对数似然值

如何获得单个对数似然值?我需要取所有样本的所有对数似然值中的最小值还是所有对数似然值的总和?

【问题讨论】:

    标签: c++ opencv gaussian mixture-model expectation-maximization


    【解决方案1】:

    您需要用于估计概率密度函数的数据点的对数概率总和。您将获得估计的对数似然。

    你可以在"Pattern Recognition and Machine Learning" book找到很好的解释

    【讨论】:

    • @AndreySmorodov .. 我在这里遇到了一些麻烦——这本书也没有给我太多帮助...EM.train 输出一个维度为 (no_of_samples*1) 的“对数”矩阵和一个“probs”矩阵,它是 (no_of_samples*no_of_components)......当你的意思是“数据点的概率”时,我猜我应该使用“probs”矩阵并将其中的所有对数值求和?
    • 您可以按照此处所述计算对数似然:schraudolph.org/teach/ml03/MLmix.pdf 但据我所知,对数似然值不关心有用信息,它仅用于优化目的。例如,用于查找 mu 或 sigma。它针对训练集进行评估,而不是针对每个示例。不,我的意思不是概率矩阵值,它包含每个高斯混合分量的后验概率的概率,你需要估计 etire pdf 的概率。
    • 对了,我刚刚看了opencv的EM源码,有一行:trainLogLikelihood = sum(trainLogLikelihoods)[0];我想这就是你要找的答案。您需要对数似然矩阵的总和值。
    猜你喜欢
    • 2013-05-23
    • 2021-05-03
    • 2013-12-09
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多