混合高斯模型(Mixtures of Gaussians)和EM算法這篇討論使用期望最大化算法(Expectation-Maximization)來進行密度估計(density estimation)。
與k-means一樣,給定的訓(xùn)練樣本是
,我們將隱含類別標(biāo)簽用
表示。與k-means的硬指定不同,我們首先認(rèn)為
是滿足一定的概率分布的,這里我們認(rèn)為滿足多項式分布,
,其中
,
有k個值{1,…,k}可以選取。而且我們認(rèn)為在給定
后,
滿足多值高斯分布,即
。由此可以得到聯(lián)合分布
。
整個模型簡單描述為對于每個樣例
,我們先從k個類別中按多項式分布抽取一個
,然后根據(jù)
所對應(yīng)的k個多值高斯分布中的一個生成樣例
,。整個過程稱作混合高斯模型。注意的是這里的
仍然是隱含隨機變量。模型中還有三個變量
和
。最大似然估計為
。對數(shù)化后如下:
這個式子的最大值是不能通過前面使用的求導(dǎo)數(shù)為0的方法解決的,因為求的結(jié)果不是close form。但是假設(shè)我們知道了每個樣例的
,那么上式可以簡化為:
這時候我們再來對
和
進行求導(dǎo)得到:
就是樣本類別中
的比率。
是類別為j的樣本特征均值,
是類別為j的樣例的特征的協(xié)方差矩陣。
實際上,當(dāng)知道
后,最大似然估計就近似于高斯判別分析模型(Gaussian discriminant analysis model)了。所不同的是GDA中類別y是伯努利分布,而這里的z是多項式分布,還有這里的每個樣例都有不同的協(xié)方差矩陣,而GDA中認(rèn)為只有一個。
之前我們是假設(shè)給定了
,實際上
是不知道的。那么怎么辦呢?考慮之前提到的EM的思想,第一步是猜測隱含類別變量z,第二步是更新其他參數(shù),以獲得最大的最大似然估計。用到這里就是:
循環(huán)下面步驟,直到收斂: {
(E步)對于每一個i和j,計算
(M步),更新參數(shù):
}
在E步中,我們將其他參數(shù)
看作常量,計算
的后驗概率,也就是估計隱含類別變量。估計好后,利用上面的公式重新計算其他參數(shù),計算好后發(fā)現(xiàn)最大化最大似然估計時,
值又不對了,需要重新計算,周而復(fù)始,直至收斂。
的具體計算公式如下:
這個式子利用了貝葉斯公式。
這里我們使用
代替了前面的
,由簡單的0/1值變成了概率值。
對比K-means可以發(fā)現(xiàn),這里使用了“軟”指定,為每個樣例分配的類別
是有一定的概率的,同時計算量也變大了,每個樣例i都要計算屬于每一個類別j的概率。與K-means相同的是,結(jié)果仍然是局部最優(yōu)解。對其他參數(shù)取不同的初始值進行多次計算不失為一種好方法。
雖然之前再K-means中定性描述了EM的收斂性,仍然沒有定量地給出,還有一般化EM的推導(dǎo)過程仍然沒有給出。下一篇著重介紹這些內(nèi)容。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。