GMM與EM演算法(零)

2021-06-19 15:07:37 字數 2843 閱讀 7475

聚類的方法有很多種,

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

)。回到

gmm,學習的過程就是訓練出幾個概率分布,所謂混合高斯模型就是指對樣本的概率密度分布進行估計,而估計的模型是幾個高斯模型加權之和(具體是幾個要在模型訓練前建立好)。每個高斯模型就代表了乙個類(乙個

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

生成的概率為:

在這一步,我們假設高斯模型的引數

和是已知的(由上一步迭代而來或由初始值決定)。

最後總結一下,用

gmm的優點是投影後樣本點不是得到乙個確定的分類標記,而是得到每個類的概率,這是乙個重要資訊。

gmm每一步迭代的計算量比較大,大於

k-means

。gmm

的求解辦法基於

em演算法,因此有可能陷入區域性極值,這和初始值的選取十分相關了。gmm不僅可以用在聚類上,也可以用在概率密度估計上。

src:

EM演算法和GMM演算法

文章目錄 0.前言 1.e m在解決什麼問題?一句話概括em 2.e m是一種模型麼?3.e step和m step分別指的是什麼?4.e m的優化目標是什麼?5.e m收斂麼,為什麼?6.怎麼理解隱變數,對任意模型都可以引入隱變數麼?隱變數的合理性 7.如何理解gmm中的隱變數 8.怎麼理解gmm...

混合高斯模型(GMM)與EM演算法

有乙個資料集d d d 中的每個資料點是這樣產生的,先從k個類別中選擇乙個類別,然後從該類別對應的資料產生分布中產生資料點。若k選1的對應的分布是multinoulli分布,每個類別對應的資料產生分布是不同的高斯分布,估計資料點x對應的分布。這個問題對應的模型就是乙個混合高斯模型,具體的資料產生過程...

機器學習 高斯混合模型GMM和EM演算法

高斯混合模型就是用高斯 概率密度函式 正態分佈 曲線 精確地量化事物,它是乙個將事物分解為若干的基於高斯概率密度函式 正態分佈曲線 形成的模型。高斯混合模型 gmm 顧名思義,就是資料可以看作是從數個單高斯分布 gsm 中生成出來的。雖然我們可以用不同的分布來隨意地構造 xx mixture mod...