理解EM演算法

2021-09-23 14:25:46 字數 938 閱讀 9457

em演算法應對的問題

隨機變數x=中y為觀測變數,存在一部分不能直接觀測的變數z,因此不能直接使用最大似然方法估計引數。

em基本思路

<1>[expectation]直接假設分布引數的初始值,求隱變數z期望,從而"補全"不完全觀測資料,相當於得到了完全變數x的觀測樣本。

<2>[maximization] 利用最大似然估計更新假設引數,並迭代<1>,直到引數的變化收斂到設定值。

最大似然估計的前提是所有隨機變數x均是可觀測的。但是現實中一些情況下只有部分變數y可觀測,而存在隱變數z不可觀測。

即最大化觀測資料對應的似然函式

l (θ

)=lo

gp(y

∣θ)=

log∑

zp(y

,z∣θ

)=lo

g∑zp

(y∣z

,θ)p

(z∣θ

)l(θ)=logp(y|θ) = log \sum_p(y,z|\theta) = log \sum_p(y|z,\theta)p(z|\theta)

l(θ)=l

ogp(

y∣θ)

=log

z∑​p

(y,z

∣θ)=

logz

∑​p(

y∣z,

θ)p(

z∣θ)

由於該式子中存在未觀測資料,並且存在和的對數,因此難以直接通過解析解求極值。需要尋找數值迭代的方法逐步逼近極值。

參考

EM演算法簡單理解

在求解概率模型的時候,如果需要的變數都是觀測變數,不涉及到隱藏變數的話,可以使用極大似然或者貝葉斯估計來求解模型的引數。比如 對於單高斯模型來講,如果知道觀測變數,那麼就可以使用極大似然或者最小均方誤差來估計高斯模型的均值和方差。如果模型同時包含觀察變數和隱藏變數的話,傳統的方法不能完成模型的估計,...

如何理解EM演算法

em演算法是極大似然解的一種演算法。當使用基於極大似然估計的模型時,模型中存在隱變數,就要用到em演算法進行引數估計。以投硬幣為例說明 現有兩枚硬幣1和2,隨機投擲正面朝上的概率是p1和p2,然後為了估計這兩個概率做了上面的實驗,我們可以很容易得出 p1 3 1 2 15 0.4 p2 2 3 10...

快速理解EM演算法

如果使用基於最大似然估計的模型,模型中存在隱變數,就要用em演算法做引數估計。個人認為,理解em演算法背後的idea,遠比看懂它的數學推導重要。idea會讓你有乙個直觀的感受,從而明白演算法的合理性,數學推導只是將這種合理性用更加嚴謹的語言表達出來而已。打個比方,乙個梨很甜,用數學的語言可以表述為糖...