GMM中的负概率

时间:2013-07-16 04:51:46

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

我很困惑。我已经通过遵循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

1 个答案:

答案 0 :(得分:2)

  

如下所示,feature_ubm的概率超过feature_train!?!

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

 sum(lp_train) > sum(lp_ubm)

hense

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

所以你的测试块被正确归类为火车,而不是ubm。