高斯混合模型学习
轉自:http://blog.csdn.net/jojozhangju/article/details/19182013
1.高斯混合模型概述
高斯密度函數估計是一種參數化模型。高斯混合模型(Gaussian Mixture Model, GMM)是單一高斯概率密度函數的延伸,GMM能夠平滑地近似任意形狀的密度分布。高斯混合模型種類有單高斯模型(Single Gaussian Model, SGM)和高斯混合模型(Gaussian Mixture Model, GMM)兩類。類似于聚類,根據高斯概率密度函數(Probability Density Function, PDF)參數不同,每一個高斯模型可以看作一種類別,輸入一個樣本x,即可通過PDF計算其值,然后通過一個閾值來判斷該樣本是否屬于高斯模型。很明顯,SGM適合于僅有兩類別問題的劃分,而GMM由于具有多個模型,劃分更為精細,適用于多類別的劃分,可以應用于復雜對象建模。
1.1.單高斯模型
多維高斯(正態)分布概率密度函數PDF定義如下:
注意與一維高斯分布不同,其中x是維數為d的樣本向量(列向量), 是模型期望,∑是模型方差。
對于單高斯模型,由于可以明確訓練樣本是否屬于該高斯模型,故 通常由訓練樣本均值代替,∑由樣本方差代替。為了將高斯分布用于模式分類,假設訓練樣本屬于類別C,那么,式(1)可以改為如下形式:
式子(2)表明樣本屬于類別C的概率大小。從而將任意測試樣本輸入式(2),均可以得到一個標量,然后根據閾值t來確定該樣本是否屬于該類別。
*閾值t的確定:可以為經驗值,也可以通過實驗確定。另外也有一些策略可以參考,如:首先令t=0.7,以0.05為步長一直減到0.1左右,選擇使樣本變化最小的那個閾值做為最終t值,也就是意味著所選的t值所構造的分類模型最穩定。
*幾何意義理解:單高斯分布模型在二維空間應該近似于橢圓,在三維空間上近似于橢球。遺憾的是在很多分類問題中,屬于同一類別的樣本點并不滿足“橢圓”分布的特性。這就引入了高斯混合模型。
1.2.高斯混合模型
高斯混合模型是單一高斯機率密度函數的延伸,由于 GMM 能夠平滑地近似任意形狀的密度分布,因此近年來常被用在語音、圖像識別等方面,得到不錯的效果。
例如:例:有一批觀察數據 數據個數為n,在d維空間中的分布不是橢球狀(如圖1(a)),那么就不適合以一個單一的高斯密度函數來描述這些數據點的機率密度函數。此時我們采用一個變通方案,假設每個點均由一個單高斯分布生成(如圖1(b),具體參數 未知),而這一批數據共由M(明確)個單高斯模型生成,具體某個數據 屬于哪個單高斯模型未知,且每個單高斯模型在混合模型中占的比例 未知,將所有來自不同分布的數據點混在一起,該分布稱為高斯混合分布。
從數學上講,我們認為這些數據的概率分布密度函數可以通過加權函數表示:
上式即稱為GMM,,其中
表示第j個SGM的PDF。
j需要實現確定好,就像K-means中的K一樣。 是權值因子。其中的任意一個高斯分布 叫做這個模型的一個component。這里有個問題,為什么我們要假設數據是由若干個高斯分布組合而成的,而不假設是其他分布呢?實際上不管是什么分布,只要j取得足夠大,這個xx Mixture Model就會變得足夠復雜,就可以用來逼近任意連續的概率密度分布。只是因為高斯函數具有良好的計算能力,所以GMM被廣泛使用。GMM是一種聚類算法,每個component就是一個聚類中心。即在只有樣本點,不知道樣本分類(含有隱含變量)的情況下,計算出模型參數 。
這顯然可以用EM算法來求解。再用訓練好的模型去差別樣本所屬的分類,方法是:
Step1:隨機選擇K個component中的一個(被選中的概率是 )Step2:把樣本代入剛選好的component,判斷是否屬于這個類別,如果不屬于則回到step1
2.高斯混合模型參數估計
2.1樣本分類已知情況下的GMM
當每個樣本所屬分類已知時,GMM的參數非常好確定,直接利用Maximum Likelihood。設樣本容量為N,屬于K個分類的樣本數量分別是 ,屬于第k個分類的樣本集合是L(k)
2.2.樣本分類未知情況下的GMM
有N個數據點,服從某種分布,我們想要找到一組參數,使得生成這些數據點的概率最大,這個概率就是:
稱為似然函數(Likelihood Function)。通常單個點的概率很小,連乘之后數據會更小,容易造成浮點數下溢,所以一般取對數,變成:
稱為log-likelihood function。
GMM的log-likelihood function就是:
這里每個樣本所屬的類別是不知道的。Z是隱含變量。
我們就是要找到最佳的模型參數,使得(10)式所示的期望最大,“期望最大化算法”名字由此而來。
EM法求解:
EM要求解的問題一般形式是:
Y是隱含變量,我們已經知道如果數據點的分類標簽Y是已知的,那么求解模型參數直接利用Maximum Likelihood就可以了。EM算法的基本思路是:隨機初始化一組參數根據后驗概率來更新Y的期望E(Y),然后用E(Y)代替Y求出新的模型參數。如此迭代直到趨于穩定。
E-Step E就是Expectation的意思,就是假設模型參數已知的情況下求隱含變量Z分別取的期望,亦即Z分別取的概率。在GMM中就是求數據點由各個 component生成的概率。
注意到我們在Z的后驗概率前面乘以了一個權值因子,它表示在訓練集中數據點屬于類別的頻率,在GMM中它就是。
M-StepM就是Maximization的意思,就是用最大似然的方法求出模型參數。現在我們認為上一步求出的就是“數據點由component k生成的概率”。根據公式(5),(6),(7)可以推出:
總結
- 上一篇: 跑步出汗能减肥吗
- 下一篇: 随机梯度下降的实现细节