1、概述html
機率模型有時既含有觀測變量,又含有隱變量,若是機率模型的變量都是觀測變量,那麼給定數據,能夠直接利用極大似然估計法或者貝葉斯估計法估計模型參數。可是,當模型同時又含有隱變量時,就不能簡單地使用這些方法。EM算法適用於帶有隱變量的機率模型的參數估計,利用極大似然估計法逐步迭代求解。算法
2、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是一個固定常數的時候等式成立。
3、高斯混合模型求解
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)算法具體步驟
參考連接:https://www.cnblogs.com/bigmoyan/p/4550375.html
https://www.cnblogs.com/Gabby/p/5344658.html