e步:利用當前估計的引數值,求出在該引數下隱含變數的條件概率值(計算對數似然的期望值);
m步:結合e步求出的隱含變數條件概率,求出似然函式下界函式的最大值(尋找能使e步產生的似然期望最大化的引數 值
。)然後,新得到的引數值重新被用於e步.....直到收斂到區域性最優解。(note:每次迭代實際在求q函式及其極大,即每次迭代使似然函式增大或達到區域性極值。)
優點:簡單性和普適性,可看作是一種非梯度優化方法(解決梯度下降等優化方法的缺陷:求和的項數將隨
著隱變數的數目以指數級上公升,會給梯度計算帶來麻煩)
缺點:對初始值敏感,不同的初值可能得到不同的引數估計值;不能保證找到全域性最優值。
log為凹函式,不等號要改變方向
令
三、em演算法在高斯混合模型中的應用:
高斯混合模型:
步驟:(1)明確隱變數,寫出完全資料的對數似然函式。
(2)em演算法的e步:確定q函式(即:完全資料的對數似然函式關於在給定觀測資料和引數的條件下對隱變數的條件概率的期望):
(3)m步:求q函式對theta的極大值,即求新一輪迭代的模型引數。
四、採用em演算法求解的模型有哪些?為什麼不用牛頓法或者梯度下降法?
一般有混合高斯、協同過濾、k-means。演算法一定會收斂,但是可能會收斂到區域性最優。求和的項數會隨著隱變數的數目指數上公升,會給梯度計算帶來麻煩。em演算法是一種非梯度優化演算法。
五、用em演算法推導解釋k-means:
k-means演算法是高斯混合聚類在混合成分方差相等,且每個樣本僅指派乙個混合成分時候的特例。k-means演算法與em演算法的關係是這樣的:
注意k-means
在執行之前需要進行
歸一化處理
,不然可能會因為樣本在某些維度上過大導致距離計算失效。
k-means中每個樣本所屬的類就可以看成是乙個隱變數,在e步中,我們固定每個類的中心,通過對每乙個樣 本選擇最近的類優化目標函式,在m步,重新更新每個類的中心點,該步驟可以通過對目標函式求導實現,最終可得新的類中心就是類中樣本的均值。
·1k-means是兩個步驟交替進行
:確定中心點,對每個樣本選擇最近中心點
--> e步和m
步。 · 2e步中將每個點選擇最近的類優化目標函式,分給中心距它最近的類
(硬分配
),可以看成是
em演算法中e步
(軟分配
)的近似。
·3 m步中更新每個類的中心點,可以認為是在「各類分布均為單位方差的高斯分布」的假設下,最大化似然值;
機器學習演算法 EM演算法
介紹 理論分析 現在,已經知道目標函式 似然函式 maxj p x 假設隱變數為z,那麼可以寫成j zp x z 我們假設當前的引數為 i 那麼可以得到 j j i logp x logp x i log zp x,z logp x i log z p z x,i p x z p z x,i log...
機器學習 EM演算法
em演算法 最大期望演算法 expectation maximization algorithm,em 是為處理缺失資料的引數的估計問題,主要分為e步和m步交替組成,對給定的初始引數依賴較大。from numpy import import numpy as np import matplotlib...
機器學習 EM演算法推導
有時,我們用極大似然的時候,公式中可能會有隱變數 l i 1m p yi i 1 m z p yi z i 1m zp z p y i z 也就是 y 取什麼值是由隱含的變數 z 決定的。舉個栗子 有三個硬幣,abc,先拋a,由a的正反面決定下一步拋 b 還是拋 c a是正面拋b,a是反面拋c。第二...