1. 單高斯模型(SGM)
多維高斯分佈的概率密度函數如下式所示:
N(x|μ,Σ)=12π|Σ|√e−12(x−μ)⊤Σ−1(x−μ)
對於單高斯模型,由於可以明確訓練樣本是否屬於該高斯模型,因此
2. 混合高斯模型(GMM)
雖然單⾼斯分佈有⼀些重要的分析性質,但是當它遇到實際數據集時,也會有巨⼤的侷限性。考慮下圖給出的例⼦。這個數據集被稱爲“⽼忠實間歇噴泉”數據集,由美國黃⽯國家公園的⽼忠實間歇噴泉的272次噴發的測量數據組成。每條測量記錄包括噴發持續了⼏分鐘(橫軸)和距離下次噴發間隔了⼏分鐘(縱軸)。我們看到數據集主要聚集在兩⼤堆中,⼀個簡單的⾼斯分佈不能描述這種結構,⽽兩個⾼斯分佈的線性疊加可以更好地描述這個數據集的特徵。
混合高斯模型假設數據服從混合高斯分佈,通過將單個⾼斯分佈進⾏線性組合而得到的模型,被稱爲混合高斯模型(Gaussian Mixture Model)。下圖是⼀維混合⾼斯分佈的例⼦,藍⾊曲線給出了三個⾼斯分佈,紅⾊曲線表⽰它們的和。通過使⽤⾜夠多的⾼斯分佈,並且調節它們的均值和⽅差以及線性組合的係數,⼏乎所有的連續概率密度都能夠以任意的精度近似。
混合高斯模型通常用於聚類,假設模型由 K 個 高斯分佈組成(即數據包含K個類),每個高斯分佈稱爲一個“Component”,這些 Component 線性加成在一起就組成了 GMM 的概率密度函數:
p(x)=∑Kk=1p(k)p(x|k)=∑Kk=1πkN(x|μk,Σk)
其中,參數
下圖給出了⼆維空間中3個⾼斯分佈混合的例⼦。(a)每個混合分量的常數概率密度輪廓線,其中三個分量分別被標記爲紅⾊、藍⾊和綠⾊,且混合係數的值在每個分量的下⽅給出。(b)混合分佈的邊緣概率密度p(x)的輪廓線。(c)概率分佈p(x)的⼀個曲⾯圖。
爲了便於引入EM算法,我們通過隱變量來描述GMM。我們引⼊⼀個K維⼆值隨機變量z(稱爲隱變量),這個變量採⽤了“1-of-K”表⽰⽅法,其中⼀個特定的元素
p(zk=1)=πk
類似地,給定z的⼀個特定的值,x的條件概率分佈是⼀個⾼斯分佈
p(x|zk=1)=N(x|μk,Σk)
聯合概率分佈爲
p(x)=∑zp(z)p(x|z)=∑Kk=1πkN(x|μk,Σk)
現在假設我們有 N 個數據點,並假設它們服從某個分佈(記作
∑Ni=1lnp(xi)=∑Ni=1ln{∑Kk=1πkN(xi|μk,Σk)}
3. EM算法求解參數
本文不涉及EM算法的詳細介紹,簡單來講,EM的意思是“Expectation Maximization”:該過程分爲兩步:第一步,假設知道各個高斯分佈的參數(可以初始化一個,或者基於上一步迭代結果),去估計每個高斯模型的隱變量;第二步,基於估計的隱變量,回過頭再去確定高斯分佈的參數。重複這兩個步驟,直到收斂。
接下來我們需要最大化如下似然函數(通常的做法是求導並令導數等於零,然後解方程),亦即找到這樣一組參數值,它讓似然函數取得最大值,我們就認爲這是最合適的參數,這樣就完成了參數估計的過程。
∑Ni=1lnp(xi)=∑Nn=1ln{∑Kk=1πkN(xi|μk,Σk)}
由於在對數函數裏面又有加和,我們沒法直接用求導解方程的辦法直接求得最大值。採用EM算法的思想,混合高斯模型的參數確定可分爲以下兩步:
(1)E-step
估計數據由每個 Component 生成的概率(並不是每個 Component 被選中的概率):對於每個數據
γ(i,k)=πkN(xi|μk,Σk)∑Kj=1πjN(xi|μj,Σj)
由於式子裏的
(2)M-step
估計每個 Component 的參數:現在我們假設上一步中得到的
μkΣkπk=1Nk∑i=1Nγ(i,k)xi=1Nk∑i=1Nγ(i,k)(xi−μk)(xi−μk)T=Nk/N
其中Nk=∑Ni=1γ(i,k)
重複迭代前面兩步,直到似然函數的值收斂爲止。
4. 參考資料
http://blog.pluskid.org/?p=39
http://blog.csdn.net/linkin1005/article/details/41212085