em演算法是一種迭代演算法,用於含有隱變數的概率模型引數的極大似然估計,或極大後驗概率估計。em演算法的每次迭代由兩步組成:e步求期望值,m步求最大值。
(em演算法是一種對模型引數的估計,該模型中含有隱變數)
概率模型有時既含有觀測變數,又含有隱變數或潛在變數。如果概率模型的變數都是觀測變數,那麼就可以通過極大似然估計或貝葉斯估計法估計模型引數。但是,當模型中含有隱變數的時候,就不能簡單的使用這些估計方法。em演算法就是含有隱變數的概率模型引數的極大似然估計,或極大後驗概率估計。
觀測資料的似然函式:p(
y|θ)
=∑zp
(z|θ
)p(y
|z,θ
) p(y
|θ)=
∑zp(
z|θ)
p(y|
z,θ)
對似然函式求最大值的結果就是引數θ θ
的極大似然估計。也就是對數似然函式l(
θ)=logp(
y|θ)
l (θ
)=
logp(
y|θ)
的極大似然估計。
em演算法與初值的選擇有關,選擇不同的初值可能得到不同的引數估計值。
(q函式)完全資料的對數似然函式lo
gp(y
,z|θ
) logp
(y,z
|θ
)關於在給定觀測資料y和當前引數θ(
i)θ (i
)下對未觀測資料z的條件概率分布p(
z,y|
θ(i)
) p(z,
y|θ(
i)
)的期望稱為q函式,即q(
θ,θ(
i))=
ez[logp(
y,z|
θ)|y
,θ(i
)]q (θ
,θ(i
))=e
z[
logp(
y,z|
θ)|y
,θ(i
)]
em演算法是通過不斷求解下界(對數似然函式的下界)的極大化逼近求解對數似然函式極大化的演算法。
em演算法可以用於生成模型的非監督學習。生成模型由聯合概率分布p(x,y)表示,可以認為非監督學習訓練資料是聯合概率分布產生的資料,x為觀測資料,y為未觀測資料。
定理1 設p(
y|θ)
p (y
|θ
)為觀測資料的似然函式,θ(
i)θ (i
)為em得到的引數估計序列,p(
y|θ(
i)) p(y
|θ(i
))
為對應的似然函式序列,則p(
y|θ(
i)) p(y
|θ(i
))
是單調遞增的。
初值的選擇十分重要,常用的方法是選擇幾個不同的初值進行迭代,然後對得到的各個估計值加以比較,從中選擇最好的。
em演算法的乙個重要應用是高斯混合模型(gaussian misture model, gmm)的引數估計。
f函式
gem函式
1.em演算法的由來/原理
我們面對乙個含有隱變數的概率模型,目標是極大化觀測資料(不完全資料)關於引數
θ θ
的對數似然函式,但是這一極大化的困難是在計算過程中有未觀測資料並有包含和(或積分)的對數。那麼em演算法通過迭代不斷求解下界的極大化逼近求解對數似然函式極大化的演算法。
2.演算法的過程;
1)選擇引數初值
2)e步:確定q函式,也就是求出完全資料的對數自然函式關於在給定觀測資料y和當前引數下對未觀測資料的條件概率分布p(
z,y|
θ(i)
) p(z
,y|θ
(i))
的期望
3)m步:求q函式的極大值,得出第i+1次迭代的引數的估計值。
4)重複2-3步直到收斂。
3.採用em演算法求解的模型有哪些?為什麼不用牛頓法或者梯度下降法?
一般有混合高斯、協同過濾、k-means。演算法一定會收斂,但是可能會收斂到區域性最優。em演算法是一種非梯度下降演算法,解決了梯度下降等優化方法的缺陷:求和的項數將隨著隱變數的數目以指數級上公升,會給梯度計算帶來麻煩)。
4.用em演算法推導解釋k-means:
k-means演算法是高斯混合聚類在混合成分方差相等,且每個樣本僅指派乙個混合成分時候的特例。k-means中每個樣本所屬的類就可以看成是乙個隱變數。
在e步中,我們固定每個類的中心,通過對每乙個樣本選擇最近的類優化目標函式;在m步,重新更新每個類的中心點,該步驟可以通過對目標函式求導實現,最終可得新的類中心就是類中樣本的均值。
統計學習方法 第9章 EM演算法
2019 july 04 em演算法 em 演算法精髓 em 演算法是通過不斷求解下界得極大化逼近對數似然函式極大化得演算法。構造下界函式 jessen 不等式 通過巧妙地取 q 的值而保證在引數的當前迭代點處下界函式與要求解的目標函式數值相等 jessen 不等式取等號 從而保證優化下界函式後在新...
統計學習方法 第9章 EM演算法
2019 july 06 em演算法 em 演算法精髓 em 演算法是通過不斷求解下界得極大化逼近對數似然函式極大化得演算法。構造下界函式 jessen 不等式 通過巧妙地取 q 的值而保證在引數的當前迭代點處下界函式與要求解的目標函式數值相等 jessen 不等式取等號 從而保證優化下界函式後在新...
《統計學習方法》筆記 EM演算法
em expectation maximization algorithm 用於含有隱變數的概率模型引數的極大似然估計。例子 有三枚a,b,c硬幣。首先a為選擇硬幣,對其進行投擲,其投擲結果正則選擇b硬幣進行投擲,反為選擇c硬幣,然後根據選擇的硬幣再進行投擲,記錄該硬幣的投擲結果,正面為1,反面為0...