一:EM算法介紹
1)算法解釋:
Expectation-maximization algorithm,期望最大化算法。用於含有不可觀察的隱形變量的,概率模型中,並利用參數最大似然估計。
2)計算思想:
因爲模型包含隱含的變量,可以看作參數A,同樣的對於要估計的其他參數可以看作B,知道B,可以給出求出A,同樣的知道A,可以給出最優的參數B。EM算法就是,先假設已知參數B,然後求出A,再用求出的A,去得到新最優B。有點類似於交替方向法。一直到收斂爲止。這就涉及到算法收斂性問題。
3)最大似然估計介紹
舉例:假設我們需要調查我們學校的男生和女生的身高分佈。你在校園裏隨便地活捉了100個男生和100個女生。男左女右,首先統計抽樣得到的100個男生的身高。假設他們的身高是服從高斯分佈的。但是這個分佈的均值和方差,我們不知道,這兩個參數就是我們要估計的。
所有的男生身高服從高斯分佈
因爲這些樣本被選中,出現了,那麼我們就應該找到最好的參數
所以最大似然函數估計,其思想是:已知某個參數能使這些樣本出現的概率最大,我們就沒必要去選別的參數,直接把這個參數作爲估計的真實值。
4)EM思想介紹:
上例是:我們已知了,這堆樣本是屬於男生身高的,那堆樣本屬於女生身高的,所以直接可以利用最大似然估計進行參數的求解。
如果,這兩堆樣本混到一起,不能分清哪些樣本屬於男生,哪些樣本屬於女生,那麼應該怎麼來估計參數呢?
E步:首先分別假定,男生,女生的正態分佈參數:均值和方差。然後把這200個樣本,進行分類,對於每個樣本當然是分別帶入男女概率密度函數裏面,求得概率,概率大的屬於那一類。
M步:當這些樣本經過E步,已經分了兩類,一類屬於男生,一類屬於女生,然後按照最大似然估計,分別求出男生,女生的正態分佈參數:均值和方差。當沒達到收斂條件時,把參數:均值和方差,帶入E步,對樣本進行分類。然後再進行M步。直到收斂。
二:EM算法理論
按照上述的理解:對於樣本{x1,x2,…xn}。目的是求參數,使得其聯合概率密度函數或者說似然函數最大化。其最大似然函數如下:
不能直接求導進行計算有兩方面:
1:即使取對數後進行求導,依然很難得到解析解。因爲式子太過複雜
2:包含隱含的參量,使問題變的複雜。
接下來處理的方法是引用一個新的概率變量:隱含變量z的分佈Qi。對於上例可知,隱含的分佈是二項分佈伯努力分佈。
接着對上述問題進行計算:
其中最後一項不等式有 Jensen不等式給出。
可以看到,目的是對最大似然取最大,現在只有當其下界不斷的增大,不斷的進行逼近最大似然值。下界怎麼能不斷的增大呢,這其實就涉及到EM算法的E步了,不斷的調整隱含變量的分佈概率值和樣本的分佈概率值,從而達到逼近下界。