EM演算法與GMM(高斯混合聚類)
EM Algorithm
EM(Expectation maximization)演算法,也即期望最大化演算法,作為「隱變數」(屬性變數不可知)估計的利器在自然語言處理(如HMM中的Baum-Welch演算法)、高斯混合聚類、心理學、定量遺傳學等含有隱變數的概率模型參數極大似然估計中有著十分廣泛的應用。EM演算法於1977年由Arthur Dempster, Nan Laird和Donald Rubin總結提出,其主要通過E步(exceptation),M步(maximization)反覆迭代直至似然函數收斂至局部最優解。由於其方法簡潔、操作有效,EM演算法曾入選「數據挖掘十大演算法」,可謂是機器學習經典演算法之一。
Introduction
EM演算法推導一
對於概率模型,當模型中的變數均為觀測變數時,我們可以直接使用給定數據通過最大似然估計(頻率學派)或貝葉斯估計(貝葉斯學派)這兩種方法求解。然而當我們的模型中存在隱變數時,我們將無法使用最大似然估計直接求解,這時即導出EM演算法。
假設一個概率模型中同時存在隱變數 和可觀測變數 ,我們學習的目標是極大化觀測變數 關於模型參數 的對數似然,即:
式(1)中我們假設直接優化是很困難的,但是優化完整數據的似然函數相對容易,同時利用概率乘法公式將展開。然而由於未觀測變數 的存在,上式仍求解困難,因此我們通過迭代逐步最大對數似然 ,這裡假設第 次迭代後的估計值為 。根據要求,我們希望新估計的參數 使 增加,即 ,且逐步使 達到最大,因此考慮兩者之差:
這裡我們根據Jensen(琴生)不等式: ,其中 有:
同時由於 ,式(3)可進一步寫為:
因此有:
因此, 即為 的下界。故當 增大時 也將同時增加,為使 取得最大,則我們必須在 次迭代時選擇的 為使第 次迭代 取得最大的 ,即:
在上式的求解中我們略去了對求解 極大化而言的常數項 和 。
因此在EM演算法的每一迭代中,我們均需求解使得 取得最大值的 ,使得下一不迭代的 ,這樣如此反覆提高最大似然 的下界,直至逼近 的最優解(最大值)。
EM演算法推導二
這裡我們採用變分的方法,假設隱變數服從任一分布為 ,則 。故對於 同樣有:
記(1)為 ,(2)為 。其中 即為KL散度(相對熵),主要反映變數 分布的相似性,可以看出KL散度=交叉熵-信息熵,故交叉熵在某種意義上與KL散度等價。有:
由於 ,因此 即為對數似然函數 的下界。同理在每一次迭代中我們均需要最大化下界 ,則在第 次迭代中即有:
式(9)中 為一常數 ,故式(8)與式(6)等價。因此,綜上可知,EM演算法可描述為:
對於觀測變數數據 和隱變數數據 ,其聯合分布為 ,條件分布為 :
- Step1. 參數初始化 ,開始迭代。
- Step2. E步:記 為第 次迭代的參數 的估計值,則在第 次迭代的E步中,有:
上式中, 即為給定觀測數據 和當前估計參數下隱變數數據的條件概率分布。 函數為對數似然函數 關於在給定觀測數據和當前模型參數下對未觀測數據 的條件概率分布 的期望。
- Step3. M步:計算使 取得極大值的 ,確定第 次迭代的參數估計值 ,有:
- Step4. 迭代Step2,Step3直至收斂。其收斂條件一般為給定較小的正數 ,若滿足:
由於目標函數為非凸函數,因此EM演算法並不能保證收斂至全局最小值,即EM演算法的求解結果與初值的選擇有較大關係,該演算法對初值敏感。
上述推導過程可由下圖表示: