第9章 EM算法及其推廣
EM算法是一種迭代算法,用於含有隱
變量(hidden variable)的概率模型參數的極大似然估計,或極大后驗概率估計。
EM算法的每次迭代由兩步組成:E步,求期望(expectation);M步,求極大
( maximization ),所以這一算法稱為期望極大算法(expectation maximization
algorithm),簡稱EM算法
。
9.1 EM算法的引入
一般地,用Y表示觀測隨機變量的數據,Z表示隱隨機變量的數據。Y和Z
連在一起稱為完全數據( complete-data ),觀測數據Y又稱為不完全數據
(incomplete-data)。假設給定觀測數據Y,其概率分布是P(Y | theta),其中
theta
是需要
估計的模型參數,那么不完全數據Y的似然函數是
P(Y | theta)
,對數似然函數
L(theta)=log
P(Y | theta);
假設Y和Z的聯合概率分布是P(Y, Z }句,那么完全數據的對
數似然函數是log P(Y, Z
| theta
)。
觀測數據的似然函數為

EM算法通過迭代求
L(theta)=log
P(Y | theta)
的極大似然估計。每次迭代包含兩步
E步,求期望;M步,求極大化。

定義9.1 ( Q函數) 完全數據的對數似然函數
log P(Y, Z
| theta
)
關於在給定觀測
數據Y和當前參數
theta(i)
下對未觀測數據Z的條件概率分布P(Z | Y,
theta
(i)
)的期望稱
為Q函數,即

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)給出停止迭代的條件,一般是對較小的正數,若滿足

則停止迭代.
EM算法的導出
通過近似求解觀測數據的對數似然函數的極大化問題來導出EM算
法,由此可以清楚地看出EM算法的作用。
面對一個含有隱變量的概率模型,目標是極大化觀測數據(不完全數據)
Y關於參數
theta
的對數似然函數,即極大化

這一極大化的主要困難是式中有未觀測數據並有包含和(或積分)
的對數。
EM算法是通過迭代逐步近似極大化
L(theta)
的。
每次迭代需要滿足:新估計值
theta能使
L(theta)增加,
並逐步
達到極大值。i次迭代前后的差值為:

利用jensen不等式可以得出下界



為使
L(theta)極大,選擇
theta
(i+1)使B極大,可得,

等價於EM算法的一次迭代,即求Q函數及其極大化。EM算法是通過
不斷求解下界的極大化逼近求解對數似然函數極大化的算法。

EM算法的直觀解釋:
圖中上方曲線為
L(theta)
,下方曲線為
B
(
theta
,
theta
(i)
),
為對數似然函數
L(theta)
的下界,且在
theta=
theta
(i)
處相等。
EM算法找到下一個點
theta
(i+1)
使
函數
B
(
theta
,
theta
(i)
)
極大化,也使函數Q
(
theta
,
theta
(i)
)
極大化。函
數B的增加,保證對數似然函數L在每次迭代中也是增加的。EM算法
在點
theta
(i+1)
重新計算Q函數值,進行下一次迭代。在這個過程中,對數似然函數
L不斷增大。從圖可以推斷出EM算法不能保證找到全局最優值。
EM算法在非監督學習中的應用
訓練數據只有輸入沒有對應的輸出(X,?),從這樣的數
據學習模型稱為非監督學習問題。EM算法可以用於生成模型的非監督學習,生
成模型由聯合概率分布P(X, Y)表示,可以認為非監督學習訓練數據是聯合概率
分布產生的數據。X為觀測數據,Y為未觀測數據。
9.2 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
的收斂性兩層意思,前者並不蘊涵后者。此外,定理只能保證參數估計序列收斂
到對數似然函數序列的穩定點,不能保證收斂到極大值點。所以在應用中,初值
的選擇變得非常重要,常用的辦法是選取幾個不同的初值進行迭代,然后對得到
的各個估計值加以比較,從中選擇最好的。
9.3 EM算法在高斯混合模型學習中的應用
定義9.2 (高斯混合模型) 高斯混合模型是指具有如下形式的概率分布模型:



稱為第k個分模型。
高斯混合模型參數估計的EM算法
假設觀測數據由高斯混合模型生成,


1. 明確隱變量。寫出完全數據的對數似然函數
可以設想觀測數據y
j是這樣產生的:首先依概率a
k選擇第
k個高斯分布分模型;然后依第k個分模型的概率分布生成觀側
數據
y
j
。
這
時觀測數據
y
j
是已知的;反映觀測數據
y
j
來自第k
個分模型的數據是未知的,k=1,2,... ,K,為隱變量定義如下:

是0-1隨機變量。
那么完全數據是

完全數據的似然函數
為:


對數
似
然函數為:

2. EM算法的E步:確定Q函數

其中。

是在當前模型參數下第j個觀測數據來自第k個分模型的概率,稱為分模型k
對觀測數據
y
j
的響應度。


3. 確定EM算法的M步
迭代的M步是求函數Q對theta的極大值,即求新一輪迭代的模型參數

通過求偏導並令其為0和約束條件
可得,






9.4 EM算法的推廣
EM算法還可以解釋為F函數(F function)的極大-極大算法(maximization-
maximization
algorithm),基於這個解釋有若干變形與推廣,如廣義期望極大
(generalized expectation maximization, GEM)算法。
F函數的極大-極大算法
定義9.3 (F函數) 假設隱變量數據Z的概率分布為 P
~(Z),定義分布
P
~
與
參數theta
的函數F(
P
~
,theta
)
如下

成為F函數,其中H是分布
P
~
(Z)
的熵。
引理9.1 對於固定的
theta
,存在唯一的分布
P
~
(theta)
極大化F,這時
P
~
(theta)
由下式
給出:

並且
P
~
(theta)
隨
theta
連續變化.


定理9.3 設L(theta)=P(Y | theta)為觀測數據的對數似然函數,theta(i),i=1,2,... 為EM算法得到的參數估計序列,如果函數
F(P~ ,theta)在戶P~*和theta*有局部極大值,那么L(theta)也在theta*有局部極大值。類似地,如果F在P~*和theta*達到全局最大值,那么L也在theta*達到全局最大值。
定理9.4 EM算法的一次迭代可由F函數的極大-極大算法實現。
設
theta
(i)
為第i次迭代參數
theta
的估計,
P
~(i)
為第i次迭代函數
P
~
的估計。在第i+1
次迭代的兩步為
(1) 對固定的
theta
(i)
,求
P
~(i+1)
使F(
P
~
,
theta
(i)
)
極大化
(2) 對固定的
P
~(i+1)
,
求
theta
(i+1)
使F(
P
~(i+1)
,
theta
)
極大化
通過以上兩步完成了EM算法的一次迭代。
由此可知,
由EM算法與F函數的極
大-極大算法得到的參數估計序列
是一
致的。
EM算法的推廣--GEM算法

在GEM算法1中,有時求Q(
theta
,
theta
(i)
)的極大化是很困難的。
GEM
算法2和GEM算法3並不是直接求
theta
(i+1)
使Q達到極大的
theta
,而是找一個
theta
(i+1)
使得Q(
theta
(i+1)
, theta
(i)
) >
Q(
theta
(i)
, theta
(i)
)

當參數
theta
的維數為d(d>=2)時,可采用一種特殊的GEM算法,它將EM
算法的M步分解為d次條件極大化,每次只改變參數向量的一個分量,其余分
量不改變。

GEM算法的特點是每次迭代增加F函數值(並不一定是極大化F
函數),從而增加似然函數值。