machine-learning - GMM 中的负概率

标签 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)

答=

-3.4108e+06

sum(lp_train)

答=

-1.8658e+05

最佳答案

As you see below the probability of feature_ubm is more than feature_train!?!

你看到的恰恰相反,尽管 ubm 的绝对值很大,但你正在考虑负数并且

 sum(lp_train) > sum(lp_ubm)

所以

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

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

关于machine-learning - GMM 中的负概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17668279/

相关文章:

android - Android语音识别的自定义语法

python - RandomizedSearchCV 的 PermissionError

graph - 如何利用无向图中的已知信息进行预测

machine-learning - 不使用 Matlab 的机器学习工具集的建议

java - 密码验证和 UNICODE

java - 免费(最好是开源)语音到文本库的选项

python - 需要 pandas 行操作的帮助

haskell - 从包装器中动态匹配嵌套的 GADT

php - 我需要一个与表字段中的任何值匹配的字符或字符串

python - Tkinter 与另一个无限循环(用于语音到文本的转换)