1. 程式人生 > >高斯混合模型(GMM)及其求解(期望最大化(EM)演算法)

高斯混合模型(GMM)及其求解(期望最大化(EM)演算法)

1、高斯混合模型的公式表達

高斯混合模型是指隨機變數x具有如下形式的分佈(概率密度函式):
高斯混合模型 (公式1)
其中,引數θ代表所有混合成分的引數(均值向量μ與協方差矩陣Σ)的集合:
這裡寫圖片描述 (公式2)
每個混合成分的概率密度函式為:
這裡寫圖片描述 (公式3)
k表示該高斯混合分佈由k個高斯混合成分組成。αi為相應高斯混合成分的混合係數,由於高斯混合分佈也是一個分佈,所以有
這裡寫圖片描述 (公式4)
即:i=1kαi=1(5)

2、高斯混合模型的樣本生成過程

高斯混合模型是聚類演算法的一種。kmeans演算法是確切給出每個樣本被分配到某一個簇,稱為硬分配

;而高斯混合模型則是給出每個樣本被分配到每個簇的概率,最後從中選取一個最大的概率對應的簇作為該樣本被分配到的簇,稱為軟分配

高斯混合模型是假定按照以下生成過程生成所有樣本的(以下過程都是在把αi,μi,Σi當做已知的常數之後來思考):首先,根據α1,α2,,αk定義的先驗概率(所謂“先驗概率”可以理解為上帝創造的概率,不以其他力量為轉移,我們只能通過已經發生的事情結合條件概率公式來推導之,這裡的“先驗”指的就是這個概率是先於人類能夠觀察和感受到的經驗就已經存在的。)選擇高斯混合成分,也就是說αi就是第i個混合成分所佔據整個高斯混合成分的比重,這個比重是適應於所有樣本的;然後,根據被選擇的混合成分的概率密度函式進行取樣(樣本的生成是指樣本從無到有的過程,這裡不要認為是先有樣本再有高斯混合分佈。而我們求解高斯混合分佈的過程是由已知的樣本倒推高斯混合分佈,也就是求解所有的

αi,μi,Σi)

3、高斯混合模型的求解過程

求解高斯混合分佈的過程,也就是求解所有的模型引數αi,μi,Σi,此時已知樣本集D和預先設定的混合成分的個數k(這種需要預先設定好的引數稱為超引數)。

對模型引數進行引數估計,我們都會先想到極大似然估計(高斯(Gauss)最早提出最大似然估計,並將其用於研究測量誤差的分佈。後來該方法被Fisher總結應用於求引數估計,並命名為極大似然估計),於是,首先寫出極大似然函式的對數似然函式:
這裡寫圖片描述 (公式6)

若訓練集D={x1,x2,...,xm}

由上述過程生成,令隨機變數zj{1,2,,k}表示生成樣本xj的高斯混合成分的序號,其取值未知,顯然,zj的先驗概率P(zj=i)對應於αi(i=1,2,,k).根據貝葉斯定理,zj的後驗概率對應於

這裡寫圖片描述 (公式7)
在此解釋一下這個公式。有些人可能在看西瓜書時疑惑於書中這個公式中一會兒用pm表示概率,一會兒用p表示概率,其實用p或者pm表示都可以,因為它們都是表示的隨機變數或者條件隨機變數的概率,是等價的。

EM演算法的E步

在理想情況下,每個樣本應該是隻由一個混合成分生成,這個混合成分對應的也就是該樣本被分配到的簇,即樣本xj只由第i個混合成分生成,亦即p(zj=ixj)=1,並且p(zn=ixn)=0(nj)。但是,由於我們的無知,我們預先並不知道這樣的理想的高斯混合分佈是怎麼樣的,所以我們只能根據已經觀察到的資料集D來獲得每個樣本由每個混合成分生成的概率,這個概率也就是這個公式所表達的值,所以這也是這個公式為什麼是一個後驗概率的表示式(已知樣本