機器學習 EM演算法推導

2021-08-10 06:49:02 字數 3050 閱讀 5395

有時,我們用極大似然的時候,公式中可能會有隱變數: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。第二次拋不管是b還是c,如果是正面就記為1,如果是反面就記為0。如果我們連續重複【a→b或c】這個過程,得到了乙個序列1,1,0,1,0,0,1,0,1,1,問:怎麼估計三枚硬幣正面出現的概率?顯然這裡a就是乙個隱變數。由於它的不同,後面第二次拋硬幣得到正面的機率也不同。

em演算法就是解決這類含有隱變數的極大似然問題的有效演算法。

em演算法的基本思想是通過優化目標函式的下界,間接優化目標函式。

打個通俗的比方,我們都聽過小和尚抱小牛的故事,老和尚讓小和尚從小就抱一頭小牛。小牛每天長大,小和尚每天都抱得動。最後小和尚變得力大無比。這裡,小和尚的力氣就是目標函式,小牛的體重就是目標函式的下界。小牛隨著時間的增長而越來越重,這就是優化下界。而小和尚由於總抱小牛,力氣也隨著增長,這就是間接優化了目標函式。

em演算法中,目標函式的下界是由jensen不等式匯出的。

具體的,若 f(

x)是凸函式,則:f(

e[x]

)⩽e[

f(x)

] 若 f

(x) 是凹函式,則:f(

e[x]

)⩾e[

f(x)

] e是求期望。

方便起見,把似然函式簡寫成如下形式:l(

θ)=∏

i=1m

[∑zp

(z;θ

)p(y

i|z;

θ)]=

∑zp(

z;θ)

p(y|

z;θ)

(4.1)

取對數:l(

θ)=logl(

θ)=log∑z

p(z;

θ)p(

y|z;

θ)(4.2)

我們希望的是對數似然函式取極大值,所以在迭代到 n 次時,我們希望 l(

θn+1

)>l(

θn) 。考慮:l(

θ)−l

(θn)

=log[∑

zp(z

;θ)p

(y|z

;θ)]

−logp(

y;θn

)(4.3)

由於對數函式是凹函式,利用jensen不等式得到:l(

θ)−l

(θn)

=log[∑

zp(z

;θ)p

(y|z

;θ)]

−logp(

y;θn

)=log[∑z

p(z|

y;θn

)p(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

]−logp(y

;θn)

=logez

[p(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

]−logp(y

;θn)

⩾ez[

logp(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

]−logp(y

;θn)

=∑zp

(z|y

;θn)

logp(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

−∑zp

(z|y

;θn)

logp(y

;θn)

=∑zp

(z|y

;θn)

logp(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

p(y;

θn)(4.4)

仔細看上面推導中 n 的位置。

定義:l(θ

|θn)

=l(θ

n)+∑

zp(z

|y;θ

n)logp(z

;θ)p

(y|z

;θ)p

(z|y

;θn)

p(y;

θn)(4.5)

所以有:l(

θ)⩾l

(θ|θ

n)這樣,我們就得到了目標函式的下界。注意看(4.5)式右邊第二項,是乙個求期望的過程,也就是em演算法中的e步。之後再優化

θ 使得下界 l(

θ|θn

) 最大,就是m步。由(4.5)式,略去與

θ 無關的常數,m步優化的目標函式如下:

maxθ∑z

p(z|

y;θn

)logp(

z;θ)

p(y|

z;θ)

也就是說,每次讓下界增加,就最大程度地增加它。記: q(

θ|θn

)=∑z

p(z|

y;θn

)logp(

z;θ)

p(y|

z;θ)

=ez|

y;θ[

logp(y

,z;θ

)](4.6)

所以,e步就是:求 q(

θ|θn

) 。m步就是: 求 ar

gmax

θq(θ

|θn)

。重複直到收斂。

em演算法受初值影響大,不能保證首先到全域性最優,只能保證收斂到穩定點。

機器學習 EM演算法詳細推導和講解

今天不太想學習,炒個冷飯,講講機器學習十大演算法裡有名的em演算法,文章裡面有些個人理解,如有錯漏,還請讀者不吝賜教。然而現在我面臨的是這種情況,我手上的資料是四川人和東北人的身高合集,然而對於其中具體的每乙個資料,並沒有標定出它來自 東北人 還是 四川人 我想如果把這個資料集的概率密度畫出來,大約...

EM演算法推導

給定觀測樣本集 求帶有隱變數模型的最大似然。似然函式 l theta logp y theta log sum zp y,z theta log p y z,theta p z theta 將似然函式減去上一步的似然函式 begin l theta l theta log p y z,theta p...

機器學習 EM演算法

em演算法 最大期望演算法 expectation maximization algorithm,em 是為處理缺失資料的引數的估計問題,主要分為e步和m步交替組成,對給定的初始引數依賴較大。from numpy import import numpy as np import matplotlib...