GMM高斯混合模型

2021-07-10 05:18:35 字數 3607 閱讀 3116

在一般的分類問題中,通常的套路都是提取特徵,將特徵輸入分類器訓練,得到最終的模型。但是在具體操作時,一開始提出的特徵和輸入分類器訓練的特徵是不一樣的。比如假設有n張

100×

100 100×100

的影象,分別提取它們的hog特徵x∈

rp×q

x∈rp×q,p

p為特徵的維數,

q q

為這幅影象中hog特徵的個數。

如果把直接把這樣的一萬個

x x

直接投入分類器訓練,效果不一定好,因為不一定每個畫素點的資訊都是有價值的,裡面可能有很多是冗餘的資訊。而且特徵維度太高會導致最終的訓練時間過長。

所以通常會對raw features做一些預處理。最常用的就是詞袋模型(bag of words)。

上圖中k-means+featuresc encoding這一步就是典型的詞袋模型。k-means是最常用的聚類方法之一,我們的例子中,有n幅影象,每幅影象有x∈

rp×q

x∈rp×q

的特徵,那麼所有資料的特徵矩陣為x∈

rp×n

q x∈rp×nq

。也就是說現在一共存在nq

nq個資料點,它們分布在乙個

p p

維的空間中,通過聚類後可以找到

m m

個聚類中心。然後對於每一幅影象而言,分別計算它的

q q個p

p維特徵屬於哪乙個聚類中心(距離最近),最終統計

m m

個聚類中心分別擁有多少特徵,得到乙個

m m

維的向量。這個向量就是最終的特徵。

k-means的缺點在於,它是乙個hard聚類的方法,比如有乙個點任何乙個聚類中心都不屬於,但是詞袋模型仍然可能會把它強行劃分到乙個聚類中心去。對於乙個點,它屬不屬於某個聚類中心的可能性是個屬於(0

,1) (0,1)

的整數值。

相反,高斯混合模型(gaussian mixture model) 就是一種soft聚類的方法,它建立在乙個重要的假設上,即任意形狀的概率分布都可以用多個高斯分布函式去近似。顧名思義,高斯混合模型是由很多個高斯分布組成的模型,每乙個高斯分布都是乙個component。每乙個component nk

∼(μk

,σk)

,k=1

,2,…

k nk∼(μk,σk),k=1,2,…k

對應的是乙個聚類中心,這個聚類中心的座標可以看作(μ

k,σk

) (μk,σk)

,對於乙個點xi

xi它屬於第

k k

個聚類中心的可能性pi

k pki

是乙個屬於0,

1 0,1

的概率值,也就是說在高斯混合模型中,乙個點可以看作是由多個component聯合生成的,pi

k pki

也是資料xi

xi由第k

k個component生成的概率。

所以當給定n張影象的訓練集合x1

,x2,

…,xn

x1,x2,…,xn

,那麼自然而然的想到可以嘗試利用多個高斯分布函式的線性組合擬合

x x

的分布。 那麼假設有

k k

個高斯分布,每個分布稱為乙個component,則p(

x)=∑

k=1k

p(x|

k)p(

k)p(x)=∑k=1kp(x|k)p(k)其中p

(x|k

)~n(

μk,σ

k)p(x|k)~n(μk,σk),設p

(k)=

πkp(k)=πk

表示的是第

k k

個高斯分布的被選中的概率,也就是權重。現在的任務就是找到 (μ

k,σk

,πk)

k=1,

…,k (μk,σk,πk)k=1,…,k

,令已知的 x1

,x2,

…,xn

x1,x2,…,xn

分布存在的可能性最大,也就是i似然函式最大。故有l

(μ,σ

,ϕ|x

)=lo

g∏i=

1np(

xi;μ

,σ,ϕ

)=∑i

=1nl

ogp(

xi;μ

,σ,ϕ

)=∑i

=1nl

og∑k

=1kp

(xi|

μk,σ

k)p(

k;ϕk

) l(μ,σ,ϕ|x)=log∏i=1np(xi;μ,σ,ϕ)=∑i=1nlogp(xi;μ,σ,ϕ)=∑i=1nlog∑k=1kp(xi|μk,σk)p(k;ϕk)

對上式分別對於μ,

σ,ϕ μ,σ,ϕ

求偏導並置於0,就可以求出最優的引數。但是上式中又有加和,我們沒法直接用求導解方程的辦法直接求得最大值。

所以一般解高斯混合模型都用的是em演算法。

em演算法分為兩步:

在e-step中,估計資料由每個component生成的概率。假設μ

,σ,ϕ

μ,σ,ϕ

已知,對於每個資料 xi

xi來說,它由第

k k

個component 生成的概率為 pi

k=πk

n(xi

|μk,

σk)∑

kk=1

πkn(

xi|μ

k,σk

) pki=πkn(xi|μk,σk)∑k=1kπkn(xi|μk,σk)

在m-step中,估計每個component的引數μk

,σk,

πkk=

1,…k

μk,σk,πkk=1,…k

。利用上一步得到的pi

k pki

,它是對於每個資料 xi

xi來說,它由第

k k

個component生成的概率,也可以當做第

k k

個component在生成這個資料上所做的貢獻,或者說,我們可以看作 xi

這個值其

中有pi

kxi xi這個值其中有pkixi

這部分是由 第

k k

個component所生成的。現在考慮所有的資料,可以看做第

k k

個component生成了 p1

kx1,

…,pn

kxn pk1x1,…,pknxn

這些點。由於每個component 都是乙個標準的 gaussian 分布,可以很容易的根據期望、方差的定義求出它們:μk

=1n∑

i=1n

pikx

i μk=1n∑i=1npkixiσk

=1n∑

i=1n

pik(

xi−μ

k)(x

i−μk

)tσk=1n∑i=1npki(xi−μk)(xi−μk)tπk

=1n∑

i=1n

pik πk=1n∑i=1npki

重複迭代前面兩步,直到似然函式的值收斂為止。

from: 

高斯混合模型(GMM)

講這個之前,要先對模糊聚類和基於概率模型的聚類有個大體的認識。不清楚的同學可以參考下jiawei的書去看一看,或者看看我的這篇文章。資料探勘 概念與技術 第三版 之第十一章的學習記錄 ok,這裡假設,大家已經有了上面我提到的先驗知識。gmm 和 k means 很像。不過 gmm 是學習出一些概率密...

高斯混合模型 GMM

本文主要針對初次接觸gmm的人,簡單的給出了一些自己初識的一些理解,比較淺顯。初次真正意義上接觸高斯混合模型 gaussian mixed model,gmm 是因為要用它來進行音訊分類,以音訊訊號特徵為輸入,通過gmm來建模,完成最終的分類。有乙個說法是gmm是多個高斯分布函式的線性組合。理論上g...

高斯混合模型 GMM

本文主要針對初次接觸gmm的人,簡單的給出了一些自己初識的一些理解,比較淺顯。初次真正意義上接觸高斯混合模型 gaussian mixed model,gmm 是因為要用它來進行音訊分類,以音訊訊號特徵為輸入,通過gmm來建模,完成最終的分類。有乙個說法是gmm是多個高斯分布函式的線性組合。理論上g...