一、概述
概率模型有時既含有觀測變數,又含有隱變數,如果概率模型的變數都是觀測變數,那麼給定資料,可以直接利用極大似然估計法或者貝葉斯估計法估計模型引數。但是,當模型同時又含有隱變數時,就不能簡單地使用這些方法。em演算法適用於帶有隱變數的概率模型的引數估計,利用極大似然估計法逐步迭代求解。
二、jensen不等式
是區間上的凸函式,則對任意的
,有不等式:
即:e[f(x)] ≥ f(e(x)) ,因為(x1+x2+...+xn)/n=e(x),同理可得e(f(x))。當x1=x2=...=xn的時候等式成立。
如果是凹函式,怎正好反過來。
假設f(x)=log(x),則根據jensen不等式可得:
因為log函式是乙個凹函式,所以正好反過來,σλjyj就是變數y的期望。後面會用到該log對應的jensen不等式,當yi是乙個固定常數的時候等式成立。
三、高斯混合模型求解
1)問題描述
還是以經典的身高為例子,假設有100個身高的資料集,這100個人由廣東人和東北人組成,但是具體卻不知道每個人來自**。假設廣東人和東北人的身高分別符合某一引數的高斯分布,如何利用這100個人去評估求解廣東人和東北人的分布引數呢?如果我們知道哪個人來自**,利用極大似然估計直接求解即可得到各自的分布引數;但是這裡面不知道哪個人具體來自**,所以隱含了乙個地域分布的變數,含有隱變數的情況下就不能直接利用mle求解了,這個時候em就可以發揮作用了。這兩個人群混合在一起其實就是高斯混合模型,如下:
其中,αk是係數,αk≥0,σαk=1;ø(x;θk)是高斯分布密度函式,θk=(μk,σk)。這裡我們要求解的引數就是αk和θk,p(x;θ)這個兩個高斯分布的混合高斯模型。
2)公式推導
我們把隱變數考慮進去,用z表示隱變數地域的分布,例如z=0表示來自廣東,z=1表示來自東北,寫出對應的似然函式如下:
之所以後面按z累加概率,是因為在不知道乙個樣本來自**的情況下,就把可能出現的概率累加起來就是表示該樣本出現的概率。
上面這個式子log後面是乙個累加項,求導會非常麻煩,做乙個轉化,這裡面要用到上面提到的jensen不等式,求乙個近似的函式逼近原函式逐步求解:
這裡面的q(z)就是關於z的分布函式,q(z)≥0,∑q(z)=1,根據上面的jensen不等式可得上述不等式。
我們找到了似然函式的乙個下界,如何去優化呢?我們首先必須保證這個下界是緊的,也就是至少要滿足等號成立的條件。由jensen不等式,等式成立的條件是隨機變數是固定常數,也就是:
而滿足該式子等於常數c的時候,我們的q(z)到底是什麼形式呢?如何求得q(z)呢?往下看:
因為:
所以:
進而:
這個時候q(z)我們就找到了,q(z)就是在知道引數θ情況下,樣本xi屬於z地域的概率值。
3)圖形化展示優化思路
當我們初始化引數θ1的時候,帶入公式會得到q(z)的分布,這個時候的的q(z)是滿足等號成立的條件的,因為我們推導求q(z)公式的時候就是按等號成立的條件去推導的。所以這個時候的下界函式和原似然函式l(θ)在θ1處值是相等的,下界函式的曲線就是圖示中θ1與θ2所在的第乙個黑色曲線。下一步我們優化下界函式,求得其極大值,就會得到如圖所示的θ2的引數值。此時我們將θ2再次帶入公式,得到乙個新的q(z)分布,q(z)變了,當然下界函式曲線也變了,新的下界函式就是圖示θ2和θ3所在的第二條黑色曲線,因為θ2帶入q(z)之後,這個時候跟θ1帶入一樣,是滿足等式成立的條件的,所以新的黑色曲線就在θ2處上方與l(θ)值相等,接著求當前下界函式的極大值,得出θ3引數。如此下去,就能無限接近原似然函式的極值點。
4)演算法具體步驟
首先,初始化引數θ
(1)e-step:根據已知引數θ計算每個樣本屬於z的概率,即這個身高來自廣東或東北的概率,這個概率就是q(z),這一步為什麼叫求期望呢?我的理解是這樣的,下界函式是 ∑∑q(z)*log(p(x,z;θ)/q(z)),q(z)本身就是乙個概率分布,所以這正是求期望的公式。
(2)m-step:根據計算得到的q(z),求出含有θ的似然函式的下界並最大化它,得到新的引數θ。這裡面下界函式中,q(z)帶入初始化或者前一步已知的θ引數值,而p(xi,z;θ)中θ引數還是未知,相當於成了以θ為變數的函式,這一步極大化求函式的極值點對應的θ點即可。
重複(1)和(2)直到收斂,可以看到,從思想上來說,和最開始沒什麼兩樣,只不過直接最大化似然函式不好做,曲線救國而已。
至於為什麼這樣的迭代會保證似然函式單調不減,即em演算法的收斂性證明,《統計學習方法》裡面有證明。em演算法在一般情況是收斂的,但是不保證收斂到全域性最優,即有可能進入區域性的最優。
EM演算法理論總結
主要解決具有隱變數的混合模型的引數估計 在高斯模型中,每個聚類都服從某個概率分布,我們要做的就是利用em演算法確定這些分布的引數,對高斯模型來說就是計算均值和方差,對多項式模型那就是概率 個人的理解就是用含有隱變數的含參表示式不斷擬合,最終能收斂並擬合出不含隱變數的含參表示式 假如有人告訴你,那乙個...
A 演算法理解
廣度優先 bfs 和深度優先 dfs 搜尋 深度優先搜尋,用俗話說就是不見棺材不回頭。演算法會朝乙個方向進發,直到遇到邊界或者障礙物,才回溯。一般在實現的時候,我們採用遞迴的方式來進行,也可以採用模擬壓棧的方式來實現。如下圖,s代表起點,e代表終點。我們如果按照右 下 左 上這樣的擴充套件順序的話,...
理解EM演算法
em演算法應對的問題 隨機變數x 中y為觀測變數,存在一部分不能直接觀測的變數z,因此不能直接使用最大似然方法估計引數。em基本思路 1 expectation 直接假設分布引數的初始值,求隱變數z期望,從而 補全 不完全觀測資料,相當於得到了完全變數x的觀測樣本。2 maximization 利用...