我想通過閱讀在線可用來源瞭解GMM。我已經使用K-Means實現了聚類,並且看到GMM如何與K-means相比較。瞭解高斯混合模型的概念
以下是我也明白了,請讓我知道,如果我的觀念是錯誤的:
GMM就像KNN,在聚類在這兩種情況下取得的感覺。但是在GMM中,每個羣都有自己的獨立均值和協方差。此外,k-means執行數據點到簇的硬分配,而在GMM中,我們得到一組獨立的高斯分佈,並且對於每個數據點,我們有它屬於其中一個分佈的概率。
爲了更好地理解它,我使用了MatLab來對它進行編碼並實現所需的羣集。我已經使用SIFT特徵來進行特徵提取。並使用k-means聚類來初始化值。 (這是從VLFeat文檔)
%images is a 459 x 1 cell array where each cell contains the training image
[locations, all_feats] = vl_dsift(single(images{1}), 'fast', 'step', 50); %all_feats will be 128 x no. of keypoints detected
for i=2:(size(images,1))
[locations, feats] = vl_dsift(single(images{i}), 'fast', 'step', 50);
all_feats = cat(2, all_feats, feats); %cat column wise all features
end
numClusters = 50; %Just a random selection.
% Run KMeans to pre-cluster the data
[initMeans, assignments] = vl_kmeans(single(all_feats), numClusters, ...
'Algorithm','Lloyd', ...
'MaxNumIterations',5);
initMeans = double(initMeans); %GMM needs it to be double
% Find the initial means, covariances and priors
for i=1:numClusters
data_k = all_feats(:,assignments==i);
initPriors(i) = size(data_k,2)/numClusters;
if size(data_k,1) == 0 || size(data_k,2) == 0
initCovariances(:,i) = diag(cov(data'));
else
initCovariances(:,i) = double(diag(cov(double((data_k')))));
end
end
% Run EM starting from the given parameters
[means,covariances,priors,ll,posteriors] = vl_gmm(double(all_feats), numClusters, ...
'initialization','custom', ...
'InitMeans',initMeans, ...
'InitCovariances',initCovariances, ...
'InitPriors',initPriors);
基於上述我有means
,covariances
priors
和。我的主要問題是,現在是什麼?我現在有點迷路了。
也是means
,covariances
載體的尺寸分別爲128 x 50
。我期待他們是1 x 50
,因爲每一列是一個集羣,不會每個集羣只有一個均值和協方差? (我知道128是SIFT的功能,但我期待的手段和協方差)。
在k均值我用MATLAB命令knnsearch(X,Y)
基本上找到最近的鄰居X每個點Y.
那麼如何在GMM實現這一目標,我知道它的概率的集合,當然,與該概率最接近的匹配將是我們的獲勝集羣。這就是我困惑的地方。 所有在線教程都告訴我們如何實現means
,covariances
的值,但不要多說如何在集羣方面實際使用它們。
謝謝
附註:我想你混淆了[K均值(https://開頭en.wikipedia.org/wiki/K-means_clustering)和[kNN](https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm)(K-nearest neighbor)。第一種是聚類方法(無監督學習),第二種是分類方法(監督學習)。 – Amro 2014-09-26 19:07:28
該概念與GMM UBM說話者驗證是否相同? – 2016-10-22 07:26:37