聚类(1)——混合高斯模型 Gaussian Mixture Model
- 聚類(序)----監督學習與無監督學習
-
- 聚類(1)----混合高斯模型 Gaussian Mixture Model
- 聚類(2)----層次聚類 Hierarchical Clustering
- 聚類(3)----譜聚類 Spectral Clustering
--------------------------------
?
?
??? 聚類的方法有很多種,k-means要數最簡單的一種聚類方法了,其大致思想就是把數據分為多個堆,每個堆就是一類。每個堆都有一個聚類中心(學習的結果就是獲得這k個聚類中心),這個中心就是這個類中所有數據的均值,而這個堆中所有的點到該類的聚類中心都小于到其他類的聚類中心(分類的過程就是將未知數據對這k個聚類中心進行比較的過程,離誰近就是誰)。其實k-means算的上最直觀、最方便理解的一種聚類方式了,原則就是把最像的數據分在一起,而“像”這個定義由我們來完成,比如說歐式距離的最小,等等。想對k-means的具體算法過程了解的話,請看這里。而在這篇博文里,我要介紹的是另外一種比較流行的聚類方法----GMM(Gaussian Mixture Model)。
? ? GMM和k-means其實是十分相似的,區別僅僅在于對GMM來說,我們引入了概率。說到這里,我想先補充一點東西。統計學習的模型有兩種,一種是概率模型,一種是非概率模型。所謂概率模型,就是指我們要學習的模型的形式是P(Y|X),這樣在分類的過程中,我們通過未知數據X可以獲得Y取值的一個概率分布,也就是訓練后模型得到的輸出不是一個具體的值,而是一系列值的概率(對應于分類問題來說,就是對應于各個不同的類的概率),然后我們可以選取概率最大的那個類作為判決對象(算軟分類soft assignment)。而非概率模型,就是指我們學習的模型是一個決策函數Y=f(X),輸入數據X是多少就可以投影得到唯一的一個Y,就是判決結果(算硬分類hard assignment)?;氐紾MM,學習的過程就是訓練出幾個概率分布,所謂混合高斯模型就是指對樣本的概率密度分布進行估計,而估計的模型是幾個高斯模型加權之和(具體是幾個要在模型訓練前建立好)。每個高斯模型就代表了一個類(一個Cluster)。對樣本中的數據分別在幾個高斯模型上投影,就會分別得到在各個類上的概率。然后我們可以選取概率最大的類所為判決結果。
? ? 得到概率有什么好處呢?我們知道人很聰明,就是在于我們會用各種不同的模型對觀察到的事物和現象做判決和分析。當你在路上發現一條狗的時候,你可能光看外形好像鄰居家的狗,又更像一點點女朋友家的狗,你很難判斷,所以從外形上看,用軟分類的方法,是女朋友家的狗概率51%,是鄰居家的狗的概率是49%,屬于一個易混淆的區域內,這時你可以再用其它辦法進行區分到底是誰家的狗。而如果是硬分類的話,你所判斷的就是女朋友家的狗,沒有“多像”這個概念,所以不方便多模型的融合。
? ? 從中心極限定理的角度上看,把混合模型假設為高斯的是比較合理的,當然也可以根據實際數據定義成任何分布的Mixture Model,不過定義為高斯的在計算上有一些方便之處,另外,理論上可以通過增加Model的個數,用GMM近似任何概率分布。
? ? 混合高斯模型的定義為:
? ?
? ? 其中K為模型的個數,πk為第k個高斯的權重,則為第k個高斯的概率密度函數,其均值為μk,方差為σk。我們對此概率密度的估計就是要求πk、μk和σk各個變量。當求出的表達式后,求和式的各項的結果就分別代表樣本x屬于各個類的概率。
? ? 在做參數估計的時候,常采用的方法是最大似然。最大似然法就是使樣本點在估計的概率密度函數上的概率值最大。由于概率值一般都很小,N很大的時候這個連乘的結果非常小,容易造成浮點數下溢。所以我們通常取log,將目標改寫成:
??
? ? 也就是最大化log-likelyhood function,完整形式則為:
? ? 一般用來做參數估計的時候,我們都是通過對待求變量進行求導來求極值,在上式中,log函數中又有求和,你想用求導的方法算的話方程組將會非常復雜,所以我們不好考慮用該方法求解(沒有閉合解)。可以采用的求解方法是EM算法——將求解分為兩步:第一步是假設我們知道各個高斯模型的參數(可以初始化一個,或者基于上一步迭代結果),去估計每個高斯模型的權值;第二步是基于估計的權值,回過頭再去確定高斯模型的參數。重復這兩個步驟,直到波動很小,近似達到極值(注意這里是個極值不是最值,EM算法會陷入局部最優)。具體表達如下:
??
? ? 1、對于第i個樣本xi來說,它由第k個model生成的概率為:
? ?
? ? 在這一步,我們假設高斯模型的參數和是已知的(由上一步迭代而來或由初始值決定)。
? ?(E step)
? ?
? ? (M step)
? ? 3、重復上述兩步驟直到算法收斂(這個算法一定是收斂的,至于具體的證明請回溯到EM算法中去,而我也沒有具體關注,以后補上)。
?
? ? 最后總結一下,用GMM的優點是投影后樣本點不是得到一個確定的分類標記,而是得到每個類的概率,這是一個重要信息。GMM每一步迭代的計算量比較大,大于k-means。GMM的求解辦法基于EM算法,因此有可能陷入局部極值,這和初始值的選取十分相關了。GMM不僅可以用在聚類上,也可以用在概率密度估計上。
from:?http://blog.csdn.net/jwh_bupt/article/details/7663885
總結
以上是生活随笔為你收集整理的聚类(1)——混合高斯模型 Gaussian Mixture Model的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 聚类(序)——监督学习与无监督学习
- 下一篇: 局部特征(1)——入门篇