【问题标题】:Negative probability in GMMGMM 中的负概率
【发布时间】:2013-07-16 04:51:46
【问题描述】:

我很困惑。我已经按照 MATLAB 代码为自己测试了一个程序:

feature_train=[1 1 2 1.2 1 1 700 709 708 699 678]; 
No_of_Clusters = 2;
No_of_Iterations = 10;
[m,v,w]=gaussmix(feature_train,[],No_of_Iterations,No_of_Clusters);

feature_ubm=[1000 1001 1002 1002 1000 1060 70 79 78 99 78 23 32 33 23 22 30]; 
No_of_Clusters = 3;
No_of_Iterations = 10;
[mubm,vubm,wubm]=gaussmix(feature_ubm,[],No_of_Iterations,No_of_Clusters);


feature_test=[2 2 2.2 3 1 600 650 750 800 658];
[lp_train,rp,kh,kp]=gaussmixp(feature_test,m,v,w);  
[lp_ubm,rp,kh,kp]=gaussmixp(feature_test,mubm,vubm,wubm);  

但是,结果让我感到奇怪,因为 feature_test 必须分类在 feature_train 而不是 feature_ubm 中。正如您在下面看到的,feature_ubm 的概率超过了 feature_train!?! 谁能帮我解释一下有什么问题? 问题与 gaussmip 和 gaussmix MATLAB 函数有关吗?

sum(lp_ubm)

ans =

-3.4108e+06

总和(lp_train)

ans =

-1.8658e+05

【问题讨论】:

    标签: machine-learning pattern-matching speech-recognition gaussian speaker


    【解决方案1】:

    如下所示,feature_ubm 的概率大于 feature_train!?!

    你看到的完全相反,尽管 ubm 的绝对值很大,但你正在考虑负数和

     sum(lp_train) > sum(lp_ubm)
    

    所以

     P(test|train) > P(test|ubm)
    

    因此,您的测试块被正确分类为 train,而不是 ubm。

    【讨论】:

    • 感谢您的回复。即使我完全使用 feature_train 而不是 feature_test,总和(lp_train)也会变成 -10.1083 !?!为什么?
    • -10 与 -1e+5 相比是一个非常好的对数概率。它非常接近对应于原始概率 1 的最佳可能对数概率 0。因此它检测到完全匹配。
    • 感谢您的帮助和指导。
    猜你喜欢
    • 2015-02-13
    • 1970-01-01
    • 2012-08-23
    • 2012-10-06
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多