一、EM由來
很多時候對EM算法産生疑惑是不清楚這個算法是怎麼來的,為什麼這樣;又有什麼樣的用途。其實EM是一種以疊代的方式來解決一類特殊最大似然 (Maximum Likelihood) 問題的方法,這類問題通常是無法直接求得最優解,但是如果引入隐含變量(就是給這個存在但是具體值多少未知的變量一個假設的值),在已知隐含變量的值的情況下,就可以轉化為簡單的情況,直接求得最大似然解。是以要了解為啥要有EM算法,就要先了解極大似然估計;
二、極大似然
概念:
最大似然估計是個機率學的問題,其作用是對一次采樣的資料(包含了很多特征資訊點,知道其滿足什麼分布,如高斯分布,但參數未知,進而轉換為一個參數估計的問題),最大似然估計的作用是,利用一次采樣的資料(不完整的資料,以抛硬币的例子來說明最貼切),再通過對應的模型(比如抛硬币一般就是二項分布,男女身高比例一般都是符合高斯分布)來估計完整資料的真實分布(給定模型二項,高斯求他們的具體參數),但該估計是最大可能的估計,而不是無偏估計。
以下部分轉載自從最大似然到EM算法淺解 ;由于文章清晰易懂,就将其轉載過來;如有侵權,請告訴我。有部分根據自己了解修改。
舉例:
假設調查學校的男生和女生的身高分布(調查身高符合自然界規律,一般就是高斯分布了)。你怎麼做啊?
你說那麼多人不可能一個一個去問吧,肯定是抽樣了。
假設你在校園裡随便地活捉了100個男生和100個女生。他們共200個人(也就是200個身高的樣本資料)。那下一步怎麼辦啊?你開始喊:“男的左邊,女的右邊,其他的站中間!”。然後你就先統計抽樣得到的100個男生的身高。假設他們的身高是服從高斯分布的(這個)。但是這個分布的均值u和方差∂2我們不知道,這兩個參數就是我們要估計的。記作 θ=[u,∂]T θ = [ u , ∂ ] T
用數學的語言來說:在學校那麼多男生(身高)中,我們獨立地按照機率密度p(x|θ)抽取了100個(身高),組成樣本集X,我們想通過樣本集X來估計出未知參數θ。這裡機率密度p(x|θ)我們知道了是高斯分布N(u,∂)的形式,其中的未知參數是 θ=[u,∂]T θ = [ u , ∂ ] T 。抽到的樣本集是 X=x1,x2,…,xN X = x 1 , x 2 , … , x N ,其中 xi x i 表示抽到的第 i i 個人的身高,這裡N就是100,表示抽到的樣本個數。
由于每個樣本都是獨立地從p(x|θ)中抽取的,換句話說這100個男生中的任何一個,都是我随便捉的,從我的角度來看這些男生之間是沒有關系的。那麼,我從學校那麼多男生中為什麼就恰好抽到了這100個人呢?抽到這100個人的機率是多少呢?因為這些男生(的身高)是服從同一個高斯分布p(x|θ)的。那麼我抽到男生A(的身高)的機率是 p(xA|θ) p ( x A | θ ) ,抽到男生B的機率是 p(xB|θ) p ( x B | θ ) ,那因為他們是獨立的,是以很明顯,我同時抽到男生A和男生B的機率是 p(xA|θ)∗p(xB|θ) p ( x A | θ ) ∗ p ( x B | θ ) ,同理,我同時抽到這100個男生的機率就是他們各自機率的乘積了。用數學家的口吻說就是從分布是p(x|θ)的總體樣本中抽取到這100個樣本的機率,也就是樣本集X中各個樣本的聯合機率,用下式表示:
L(θ)=L(x1,x2,...,xn;θ)=∏i=1np(xi;θ) L ( θ ) = L ( x 1 , x 2 , . . . , x n ; θ ) = ∏ i = 1 n p ( x i ; θ )
這個機率反映了,在機率密度函數的參數是θ時,得到X這組樣本的機率。因為這裡X是已知的,也就是說我抽取到的這100個人的身高可以測出來,也就是已知的了。而θ是未知了,則上面這個公式隻有θ是未知數,是以它是θ的函數。這個函數反映的是在不同的參數θ取值下,取得目前這個樣本集的可能性,是以稱為參數θ相對于樣本集X的似然函數(likehood function)。記為L(θ)。
這裡出現了一個概念,似然函數。還記得我們的目标嗎?我們需要在已經抽到這一組樣本X的條件下,估計參數θ的值。怎麼估計呢?似然函數有啥用呢?那咱們先來了解下似然的概念。
某位同學與一位獵人一起外出打獵,一隻野兔從前方竄過。隻聽一聲槍響,野兔應聲到下,如果要你推測,這一發命中的子彈是誰打的?你就會想,隻發一槍便打中,由于獵人命中的機率一般大于這位同學命中的機率,看來這一槍是獵人射中的。
這個例子所作的推斷就展現了極大似然法的基本思想。
回到男生身高那個例子。在學校那麼男生中,我一抽就抽到這100個男生(表示身高),而不是其他人,那是不是表示在整個學校中,這100個人(的身高)出現的機率最大啊。那麼這個機率怎麼表示?哦,就是上面那個似然函數L(θ)。是以,我們就隻需要找到一個參數θ,其對應的似然函數L(θ)取到最大,也就是說抽到這100個男生(的身高)機率最大。這個叫做θ的最大似然估計量,記為:
θ^=argmaxθL(θ)−−−(表示求能讓函數L(θ)取得最大的參數θ是多少) θ ^ = arg max θ L ( θ ) − − − ( 表 示 求 能 讓 函 數 L ( θ ) 取 得 最 大 的 參 數 θ 是 多 少 )
有時,可以看到L(θ)是連乘的,是以為了便于分析,還可以定義對數似然函數,将其變成連加的:
H(θ)=lnL(θ)=lnL(x1,x2,...,xn;θ)=∑i=1nlnp(xi;θ) H ( θ ) = ln L ( θ ) = ln L ( x 1 , x 2 , . . . , x n ; θ ) = ∑ i = 1 n ln p ( x i ; θ )
好了,現在我們知道了,要求θ,隻需要使θ的似然函數L(θ)極大化,然後極大值對應的θ就是我們的估計。這裡就回到了求最值的問題了。怎麼求一個函數的最值?當然是求導,然後讓導數為0,那麼解這個方程得到的θ就是了(當然,前提是函數L(θ)連續可微)。那如果θ是包含多個參數的向量那怎麼處理啊?當然是求L(θ)對所有參數的偏導數,也就是梯度了,那麼n個未知的參數,就有n個方程,方程組的解就是似然函數的極值點了,當然就得到這n個參數了。
最大似然估計你可以把它看作是一個反推。多數情況下我們是根據已知條件(機率模型,模型參數)來推算結果,而最大似然估計是已經知道了結果(機率模型,抽樣資料),然後尋求使該結果出現的可能性最大的條件,以此作為估計值。
極大似然估計,隻是一種機率論在統計學的應用,它是參數估計的方法之一。說的是已知某個随機樣本滿足某種機率分布,但是其中具體的參數不清楚,參數估計就是通過若幹次試驗,觀察其結果,利用結果推出參數的大概值。最大似然估計是建立在這樣的思想上:已知某個參數能使這個樣本出現的機率最大,我們當然不會再去選擇其他小機率的樣本,是以幹脆就把這個參數作為估計的真實值。
求最大似然函數估計值的一般步驟:
(1)寫出似然函數;
(2)對似然函數取對數,并整理;
(3)求導數,令導數為0,得到似然方程;
(4)解似然方程,得到的參數即為所求;
三、EM算法原理
好了,重新回到上面那個身高分布估計的問題。現在,通過抽取得到的那100個男生的身高和已知的其身高服從高斯分布,我們通過最大化其似然函數,就可以得到了對應高斯分布的參數θ=[u, ∂]T了。那麼,對于我們學校的女生的身高分布也可以用同樣的方法得到了。
再回到例子本身,如果沒有“男的左邊,女的右邊,其他的站中間!”這個步驟,或者說我抽到這200個人中,某些男生和某些女生一見鐘情,已經好上了,糾纏起來了。咱們也不想那麼殘忍,硬把他們拉扯開。那現在這200個人已經混到一起了,這時候,你從這200個人(的身高)裡面随便給我指一個人(的身高),我都無法确定這個人(的身高)是男生(的身高)還是女生(的身高)。也就是說你不知道抽取的那200個人裡面的每一個人到底是從男生的那個身高分布裡面抽取的,還是女生的那個身高分布抽取的。用數學的語言就是,
抽取得到的每個樣本都不知道是從哪個分布抽取的
。
這個時候,對于每一個樣本或者你抽取到的人,就有兩個東西需要猜測或者估計的了,
一是這個人是男的還是女的?二是男生和女生對應的身高的高斯分布的參數是多少?
隻有當我們知道了哪些人屬于同一個高斯分布的時候,我們才能夠對這個分布的參數作出靠譜的預測,例如剛開始的最大似然所說的,但現在兩種高斯分布的人混在一塊了,我們又不知道哪些人屬于第一個高斯分布,哪些屬于第二個,是以就沒法估計這兩個分布的參數。反過來,隻有當我們對這兩個分布的參數作出了準确的估計的時候,才能知道到底哪些人屬于第一個分布,那些人屬于第二個分布。
這就成了一個
先有雞還是先有蛋的問題
了。雞說,沒有我,誰把你生出來的啊。蛋不服,說,沒有我,你從哪蹦出來啊。(呵呵,這是一個哲學問題。當然了,後來科學家說先有蛋,因為雞蛋是鳥蛋進化的)。為了解決這個你依賴我,我依賴你的循環依賴問題,總得有一方要先打破僵局,說,不管了,
我先随便整一個值出來,看你怎麼變,然後我再根據你的變化調整我的變化,然後如此疊代着不斷互相推導,最終就會收斂到一個解。
這就是EM算法的基本思想了。
EM算法就是這樣,假設我們想估計知道A和B兩個參數,在開始狀态下二者都是未知的,但如果知道了A的資訊就可以得到B的資訊,反過來知道了B也就得到了A。可以考慮首先賦予A某種初值,以此得到B的估計值,然後從B的目前值出發,重新估計A的取值,這個過程一直持續到收斂為止。
EM的意思是“Expectation Maximization”,在我們上面這個問題裡面,我們是先随便猜一下男生(身高)的正态分布的參數:如均值和方差是多少。例如男生的均值是1米7,方差是0.1米(當然了,剛開始肯定沒那麼準),然後計算出每個人更可能屬于第一個還是第二個正态分布中的(例如,這個人的身高是1米8,那很明顯,他最大可能屬于男生的那個分布),這個是屬于Expectation一步。有了每個人的歸屬,或者說我們已經大概地按上面的方法将這200個人分為男生和女生兩部分,我們就可以根據之前說的最大似然那樣,通過這些被大概分為男生的n個人來重新估計第一個分布的參數,女生的那個分布同樣方法重新估計。這個是Maximization。然後,當我們更新了這兩個分布的時候,每一個屬于這兩個分布的機率又變了,那麼我們就再需要調整E步……如此往複,直到參數基本不再發生變化為止。
這裡把每個人(樣本)的完整描述看做是三元組 yi={xi,zi1,zi2} y i = { x i , z i 1 , z i 2 } ,其中, xi x i 是第i個樣本的觀測值,也就是對應的這個人的身高,是可以觀測到的值。 zi1 z i 1 和 zi2 z i 2 表示男生和女生這兩個高斯分布中哪個被用來産生值 xi x i ,就是說這兩個值标記這個人到底是男生還是女生(的身高分布産生的)。這兩個值我們是不知道的,是隐含變量。确切的說, zij z i j 在 xi x i 由第j個高斯分布産生時值為1,否則為0。例如一個樣本的觀測值為1.8,然後他來自男生的那個高斯分布,那麼我們可以将這個樣本表示為{1.8, 1, 0}。如果 zi1 z i 1 和$z_{i2}的值已知,也就是說每個人我已經标記為男生或者女生了,那麼我們就可以利用上面說的最大似然算法來估計他們各自高斯分布的參數。但是它們未知,是以我們隻能用EM算法。
咱們現在不是因為那個惡心的隐含變量(
抽取得到的每個樣本都不知道是從哪個分布抽取的
)使得本來簡單的可以求解的問題變複雜了,求解不了嗎。那怎麼辦呢?人類解決問題的思路都是想能否把複雜的問題簡單化。好,那麼現在把這個複雜的問題逆回來,我假設已經知道這個隐含變量了,哎,那麼求解那個分布的參數是不是很容易了,直接按上面說的最大似然估計就好了。那你就問我了,這個隐含變量是未知的,你怎麼就來一個假設說已知呢?你這種假設是沒有根據的。呵呵,我知道,是以我們可以先給這個給分布弄一個初始值,然後求這個隐含變量的期望,當成是這個隐含變量的已知值,那麼現在就可以用最大似然求解那個分布的參數了吧,那假設這個參數比之前的那個随機的參數要好,它更能表達真實的分布,那麼我們再通過這個參數确定的分布去求這個隐含變量的期望,然後再最大化,得到另一個更優的參數,……疊代,就能得到一個皆大歡喜的結果了。
這時候你就不服了,說你老疊代疊代的,你咋知道新的參數的估計就比原來的好啊?為什麼這種方法行得通呢?有沒有失效的時候呢?什麼時候失效呢?用到這個方法需要注意什麼問題呢?呵呵,一下子抛出那麼多問題,搞得我适應不過來了,不過這證明了你有很好的搞研究的潛質啊。呵呵,其實這些問題就是數學家需要解決的問題。在數學上是可以穩當的證明的或者得出結論的。那咱們用數學來把上面的問題重新描述下。(在這裡可以知道,不管多麼複雜或者簡單的實體世界的思想,都需要通過數學工具進行模組化抽象才得以使用并發揮其強大的作用,而且,這裡面蘊含的數學往往能帶給你更多想象不到的東西,這就是數學的精妙所在啊)
四、EM算法推導
推導參考:
EM算法原理總結 —簡潔清晰
EM算法(Expectation Maximization Algorithm)詳解 – 後面的算法實作有一定的參考價值
機器學習之協方差矩陣、黑塞矩陣、标準差橢圓和EM算法 – 總結了jensen不等式實作原理,包括海森矩陣,正定等。
假設我們有一個樣本集 {x(1),…,x(m)} { x ( 1 ) , … , x ( m ) } (身高),包含m個獨立的樣本。但樣本i對應的類别 {z(1),…z(m)} { z ( 1 ) , … z ( m ) } (如z1對應第一個x是男女)是未知的(相當于聚類),也即隐含變量。此時(x,z)即為完全資料。樣本的模型參數為θ,則觀察資料x的機率為 P(x|θ) P ( x | θ ) ,完全資料的機率為 P(x,z|θ) P ( x , z | θ ) .

故我們需要估計機率模型 p(x,z) p ( x , z ) 的參數θ,但是由于裡面包含隐含變量z,是以很難用最大似然求解,但如果z知道了,那我們就很容易求解了。
對于參數估計,我們本質上還是想獲得一個使似然函數最大化的那個參數 θ θ ,現在與最大似然不同的隻是似然函數式中多了一個未知的變量z,見下式(1)。也就是說我們的目标是找到适合的θθ和 z z 讓L(θ)L(θ)最大。那我們也許會想,你就是多了一個未知的變量而已啊,我也可以分别對未知的θ和z分别求偏導,再令其等于0,求解出來不也一樣嗎?
θ^,z^=argmaxθ,zL(θ,z)=argmaxθ,z∑i=1mln∑z(i)p(x(i),z(i);θ)−−(含有兩個參數的似然函數)=∑i=1mln∑z(i)p(x(i),z(i);θ)=∑i=1mln∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))≥∑i=1m∑z(i)Qi(z(i))lnp(x(i),z(i);θ)Qi(z(i))(1)(2)(3) θ ^ , z ^ = arg max θ , z L ( θ , z ) = arg max θ , z ∑ i = 1 m ln ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) − − ( 含 有 兩 個 參 數 的 似 然 函 數 ) = ∑ i = 1 m ln ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) ( 1 ) = ∑ i = 1 m ln ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ( 2 ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) ln p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ( 3 )
其中 (2)式中引入Q, Qi(z(i)) Q i ( z ( i ) ) 為新引入的一個未知分布,滿足:
∑z(i)Qi(z(i))=1,1≥Qi(z(i))≥0 ∑ z ( i ) Q i ( z ( i ) ) = 1 , 1 ≥ Q i ( z ( i ) ) ≥ 0
引入這個Q這個Q就可以看成 p(x(i),z(i);θ)Qi(z(i)) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) 權重,這樣整體就可以看成log(E(Y))了。
(3)式中引入Jensen不等式(對數函數為凸函數:這個是外國叫法,我國高中叫做凹函數):
log(E(y))≥E(log(y)) l o g ( E ( y ) ) ≥ E ( l o g ( y ) )
本質上我們是需要最大化(1)式,,也就是似然函數,但是可以看到裡面有“和的對數”,求導後形式會非常複雜,是以很難求解得到未知參數z和θ。那OK,我們可否對(1)式做一些改變呢?我們看(2)式,(2)式隻是分子分母同乘以一個相等的函數,還是有“和的對數”啊,還是求解不了,那為什麼要這麼做呢?咱們先不管,看(3)式,發現(3)式變成了“對數的和”,那這樣求導就容易了。我們注意點,還發現等号變成了不等号,為什麼能這麼變呢?這就是Jensen不等式的大顯神威的地方。最後要求 L(θ) L ( θ ) 最大,中有在不等式相等的時候才能取得最大的;根據Jensen不等式如果取到等于,就有 p(x(1),z(1);θ)Qi(z(1))=p(x(2),z(2);θ)Qi(z(2))=...=p(x(i),z(i);θ)Qi(z(i))=C p ( x ( 1 ) , z ( 1 ) ; θ ) Q i ( z ( 1 ) ) = p ( x ( 2 ) , z ( 2 ) ; θ ) Q i ( z ( 2 ) ) = . . . = p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = C 為一個常數的時候等式成立(因為這個數i個都是相等的一個定值數)。
這個時候有:
p(x(i),z(i);θ)Qi(z(i))=Cp(x(i),z(i);θ)=C∗Qi(z(i))∑p(x(i),z(i);θ)=C∗∑Qi(z(i))由∑z(i)Qi(z(i))=1∑p(x(i),z(i);θ)=C p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = C p ( x ( i ) , z ( i ) ; θ ) = C ∗ Q i ( z ( i ) ) ∑ p ( x ( i ) , z ( i ) ; θ ) = C ∗ ∑ Q i ( z ( i ) ) 由 ∑ z ( i ) Q i ( z ( i ) ) = 1 ∑ p ( x ( i ) , z ( i ) ; θ ) = C
重新再來看Q:
Qi(z(i))=p(x(i),z(i);θ)C=p(x(i),z(i);θ)∑p(x(i),z(i);θ)=p(x(i),z(i);θ)p(x(i);θ)=p(z(i);x(i),θ) Q i ( z ( i ) ) = p ( x ( i ) , z ( i ) ; θ ) C = p ( x ( i ) , z ( i ) ; θ ) ∑ p ( x ( i ) , z ( i ) ; θ ) = p ( x ( i ) , z ( i ) ; θ ) p ( x ( i ) ; θ ) = p ( z ( i ) ; x ( i ) , θ )
就是一個關于一緻x,θ的隐含變量z分布。
Jensen不等式:
設f是定義域為實數的函數,如果對于所有的實數x。如果對于所有的實數x,f(x)的二次導數大于等于0,那麼f是凸函數。當x是向量時,如果其hessian矩陣H是半正定的,那麼f是凸函數。如果隻大于0,不等于0,那麼稱f是嚴格凸函數。
Jensen不等式表述如下:
如果f是凸函數,X是随機變量,那麼:E[f(X)]>=f(E[X])
特别地,如果f是嚴格凸函數,當且僅當X是常量時,上式取等号。
如果用圖表示會很清晰:
圖中,實線f是凸函數,X是随機變量,有0.5的機率是a,有0.5的機率是b。(就像擲硬币一樣)。X的期望值就是a和b的中值了,圖中可以看到E[f(X)]>=f(E[X])成立。
當f是(嚴格)凹函數當且僅當-f是(嚴格)凸函數。
Jensen不等式應用于凹函數時,不等号方向反向。
回到公式(2),因為f(x)=log x為凹函數(其二次導數為 −1x2<0 − 1 x 2 < 0 )。
(2)式中 ∑z(i)Qi(z(i))[p(x(i),z(i);θ)Qi(z(i))] ∑ z ( i ) Q i ( z ( i ) ) [ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ] 是 [p(x(i),z(i);θ)Qi(z(i))] [ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ] 的期望(因為期望定義為:E(X)=∑x*p(x),f(X)是X的函數,則E(f(X))=∑f(x)*p(x)),考慮到,又 ∑z(i)Qi(z(i))=1 ∑ z ( i ) Q i ( z ( i ) ) = 1 ,是以就可以得到公式(3)的不等式了:
∑i=1mln∑z(i)Qi(z(i))p(x(i),z(i);θ)Qi(z(i))(式2)≥∑i=1m∑z(i)Qi(z(i))lnp(x(i),z(i);θ)Qi(z(i))(式3) ∑ i = 1 m ln ∑ z ( i ) Q i ( z ( i ) ) p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ( 式 2 ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) ln p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ( 式 3 )
回到上面,現在已知 Qi(z(i))=p(z(i);x(i),θ) Q i ( z ( i ) ) = p ( z ( i ) ; x ( i ) , θ ) 并且在這個條件下取得等号:
θ^,z^=argmaxθ,zL(θ,z)=argmaxθ,z∑i=1mln∑z(i)p(x(i),z(i);θ)−−(含有兩個參數的似然函數)=∑i=1m∑z(i)Qi(z(i))lnp(x(i),z(i);θ)Qi(z(i)) θ ^ , z ^ = arg max θ , z L ( θ , z ) = arg max θ , z ∑ i = 1 m ln ∑ z ( i ) p ( x ( i ) , z ( i ) ; θ ) − − ( 含 有 兩 個 參 數 的 似 然 函 數 ) = ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) ln p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )
上面式子其中的一步求 L L 後存在兩個隐含變量,這個時候呢先可以随意給一個θ通過這個θ值求使得上面式子最大化的Qi(z(i))Qi(z(i)) 再通過 Qi(z(i)) Q i ( z ( i ) ) 求新一輪的θ。這樣通過幾輪疊代就當最後趨于穩定時候就得到最終值 。這種先确定一個在逐漸疊代的方法就是EM算法
EM算法(Expectation-maximization):
期望最大算法是一種從不完全資料或有資料丢失的資料集(存在隐含變量)中求解機率模型參數的最大似然估計方法。
EM的算法流程:
初始化分布參數θ;
重複以下步驟直到收斂:
E步驟:根據參數初始值或上一次疊代的模型參數來計算出隐性變量的後驗機率,其實就是隐性變量的期望。作為隐藏變量的現估計值:
Qi(z(i)):=p(z(i);x(i),θ) Q i ( z ( i ) ) := p ( z ( i ) ; x ( i ) , θ )
M步驟:将似然函數最大化以獲得新的參數值:
θ:=argmaxθ∑i=1m∑z(i)Qi(z(i))logp(x(i),z(i);θ)Qi(z(i)) θ := arg max θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) )
這個不斷的疊代,就可以得到使似然函數L(θ)最大化的參數θ了。那就得回答剛才的第二個問題了,它會收斂嗎?
感性的說,因為下界不斷提高,是以極大似然估計單調增加,那麼最終我們會到達最大似然估計的最大值。理性分析的話,就會得到下面的東西:
總結:
EM算法隻是裡面的思想,其中很多計算都是求最大化似然函數變量的推導公式。比如裡面的Jensen不等式。還有Q分布的轉換。這些都是給出具體EM實作的可行性。
EM算法思想的核心就是在多個隐含變量的情況下可以先求其中一個,再求另外一個參數的方法。通過算法的收斂性進行逐漸疊代求解。
最後,了解原理就好。不懂的話最好是一起推導一遍。就都可以了。