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