EM演算法及其推廣
概述
EM演算法是一種迭代演算法,用於含有隱變數(hidden variable)的概率模型引數的極大似然估計,或極大後驗概率估計。
EM演算法的每次迭代由兩步組成:E步,求期望(expectation);M步,求極大( maximization ),所以這一演算法稱為期望極大演算法(expectation maximization algorithm),簡稱EM演算法。
EM演算法的引入
一般地,用Y表示觀測隨機變數的資料,Z表示隱隨機變數的資料。Y和Z連在一起稱為完全資料( complete-data ),觀測資料Y又稱為不完全資料(incomplete-data)。
假設給定觀測資料Y,其概率分佈是P(Y | theta),其中theta是需要估計的模型引數,那麼不完全資料Y的似然函式是P(Y | theta),對數似然函式L(theta)=logP(Y | theta);假設Y和Z的聯合概率分佈是P(Y, Z),那麼完全資料的對數似然函式是log P(Y, Z | theta)。
1、EM演算法定義
2、Q函式定義
完全資料的對數似然函式log P(Y, Z | theta)關於在給定觀測資料Y和當前引數theta(i)下對未觀測資料Z的條件概率分佈P(Z | Y,theta(i))的期望稱為Q函式,即
3、EM演算法說明
步驟(1) 引數的初值可以任意選擇。但需注意EM演算法對初值是敏感的。
步驟(2) E步求Q(theta, theta(i))。Q函式式中Z是未觀測資料,Y是觀測資料。注意,Q(theta, theta(i))的第1個變數theta表示要極大化的引數,第2個變數theta(i)表示引數的當前估計值。每次迭代實際在求Q函式及其極大。
步驟(3) M步求Q(theta, theta(i))的極大化,得到theta(i+1),完成一次迭代theta(i)更新至theta(i+1)。後面將證明每次迭代使似然函式增大或達到區域性極值。
步驟(4) 給出停止迭代的條件,一般是對較小的正數,若滿足
4、EM演算法匯出
通過近似求解觀測資料的對數似然函式的極大化問題來匯出EM演算法,由此可以清楚地看出EM演算法的作用。面對一個含有隱變數的概率模型,目標是極大化觀測資料(不完全資料)Y關於引數theta的對數似然函式,即極大化:
這一極大化的主要困難是式中有未觀測資料並有包含和(或積分)的對數。
(1)每次迭代需要滿足:新估計值 theta能使L(theta)增加,並逐步達到極大值。i次迭代前後的差值為:
(2)利用jensen不等式可以得出下界:
令
則且有
(3)選擇theta(i+1)使B極大:
EM演算法是通過不斷求解下界的極大化逼近求解對數似然函式極大化的演算法,簡單圖示如下:
(有其他的推導方式,見部落格http://www.cnblogs.com/bigmoyan/p/4550375.html還有https://www.cnblogs.com/pinard/p/6912636.html)
5、EM演算法在非監督學習中的應用
訓練資料只有輸入沒有對應的輸出(X,?),從這樣的資料學習模型稱為非監督學習問題。EM演算法可以用於生成模型的非監督學習,生成模型由聯合概率分佈P(X, Y)表示,可以認為非監督學習訓練資料是聯合概率分佈產生的資料。X為觀測資料,Y為未觀測資料。
EM演算法的收斂性
定理9.1 設P(Y | theta)為觀測資料的似然函式,theta(i) (i=1, 2,...)為EM演算法得到的引數估計序列,P(Y | theta(i) )(i=1, 2,...))為對應的似然函式序列,則P(Y | theta(i) )是單調遞增的,即
定理9.2 設P(Y | theta)為觀測資料的似然函式,theta(i) (i=1, 2,...)為EM演算法得到的引數估計序列,L(theta(i))=P(Y | theta(i) )(i=1, 2,...))為對應的似然函式序列,
(1)如果P(Y | theta)有上界,則L(theta(i))收斂到某一值L*;
(2)在函式Q與L滿足一定條件下,由EM演算法得到的引數估計序列theta(i)的收斂值theta*是L(theta)的穩定點。
EM演算法的收斂性包含關於對數似然函式序列L的收斂性和關於引數估計序列theta的收斂性兩層意思,前者並不蘊涵後者。
此外,定理只能保證引數估計序列收斂到對數似然函式序列的穩定點,不能保證收斂到極大值點。所以在應用中,初值的選擇變得非常重要,常用的辦法是選取幾個不同的初值進行迭代,然後對得到的各個估計值加以比較,從中選擇最好的。
EM演算法在高斯混合模型學習中的應用
1、高斯混合模型
2、推導
假設觀測資料由高斯混合模型生成,,
(1)明確隱變數。寫出完全資料的對數似然函式
可以設想觀測資料y j是這樣產生的:首先依概率a k選擇第k個高斯分佈分模型;然後依第k個分模型的概率分佈生成觀側資料y j。 這時觀測資料y j是已知的;反映觀測資料y j來自第k個分模型的資料是未知的,k=1,2,... ,K, 隱變數定義如下:完全資料的似然函式為:
其中,
對數似然函式為:
(2)EM演算法的E步:確定Q函式
式中的那個期望計算如下:
這個期望是在當前模型引數下第j個觀測資料來自第k個分模型的概率,稱為分模型k對觀測資料yj的響應度。
將和代回原式得:
(3)確定EM演算法的M步
迭代的M步是求函式Q對theta的極大值,即求新一輪迭代的模型引數:
3、高斯混合模型引數估計的EM演算法
EM演算法的推廣
EM演算法還可以解釋為F函式(F function)的極大-極大演算法(maximization-maximization algorithm),基於這個解釋有若干變形與推廣,如廣義期望極大(generalized expectation maximization, GEM)演算法。
。。。不好意思,還沒看懂,我後續會補。