極大似然估計,只是一種概率論在統計學的應用,它是參數估計的方法之一。說的是已知某個隨機樣本滿足某種概率分布,但是其中具體的參數不清楚,參數估計就是通過若干次試驗,觀察其結果,利用結果推出參數的大概值。最大似然估計是建立在這樣的思想上:已知某個參數能使這個樣本出現的概率最大,我們當然不會再去選擇其他小概率的樣本,所以干脆就把這個參數作為估計的真實值。
我們先來假設這樣一個問題:要求解人群(100人)中男女身高的分布,這里很明顯有兩種分布,男和女,但是事先我們並不知道他們服從哪種分布,而且我們也不知道男的有多少人,女的有多少人,那么怎么辦呢?如果我們用混合高斯模型,我們假設男和女的分布都是符合高斯分布的,然后給定這個高斯分布一個初始值,這樣這個高斯分布就是已知的了。接着,用這個已經的高斯分布來估計男的多少人,女的多少人,假設男和女的類別分布為Q(z),這樣我們就可以求Q(z)的期望了,用期望來表示下一次迭代類別的初始值,這樣我們就知道男和女的所屬類別了,我們就可以用最大似然函數來估新的高斯模型的參數了。重復上述步驟…直到收斂!
ps:極大似然估計,只是一種概率論在統計學的應用,它是參數估計的方法之一。說的是已知某個隨機樣本滿足某種概率分布,但是其中具體的參數不清楚,參數估計就是通過若干次試驗,觀察其結果,利用結果推出參數的大概值。最大似然估計是建立在這樣的思想上:已知某個參數能使這個樣本出現的概率最大,我們當然不會再去選擇其他小概率的樣本,所以干脆就把這個參數作為估計的真實值。
EM算法,這是cv界比較有名的一種算法了,雖然很早就聽說過,但真正深究還是最近幾天看斯坦福公開課筆記的時候。之所以EM和MoG放在一起,是因為我們在求解MoG模型的時候需要用到EM算法,所以這里我們先來介紹下EM算法。
在介紹EM算法的之前,我們先來普及下Jensen不等式的知識。首先我們來給出Jensen不等式的定義:
定理很簡單,總結下來就是這么幾點。如果f是一個凸函數並且二階導數大於零(上文中有提出),則有。進一步, 若二階導數恆大於 0,則不等式等號成立當且僅當 x=E[x],即 x 是固定值。若二階導數的不等號方向逆轉,則不等式的不等號方向逆轉。如下圖:
好了,知道了Jensen不等式,我們下面來探討EM算法的一般形式。
suppose we have a training set consist of m independent examples,假設樣本的類別z服從某種未知的分布,那么對於這種隱含變量的模型我們可以求出它的似然函數為(求似然函數是為了求解我們假設模型中的各個參數,我們在求解一個分類或者回歸問題時,通常需要選定一個模型,比如NB,GDA,logistic regression,然后利用最大似然求解模型的參數):
這里我們並不知道所服從的分布,只知道它們服從某種概率分布就足夠了。接下來我們需要求解參數
來使得以上的
最大即可,由於
中對數函數相加的情況使得求解非常困難。於是我們轉化為下面這樣處理:
式中我們引入了z的一種未知分布(怎么選擇下面會講), 即
,繼續推導我們有
上式中我們用到了Jensen不等式,由於log函數式一個凹函數,所以不等式的不等號要逆轉了。簡而言之就是:
也就是說有一個下界,而這個下界中的對數已經放在了求和里面,因而求偏導比較容易。那么我們可不可以把minimum
轉化為minimum lowbound呢。有了這個思想之后我們只需要證明即可。假設當前的參數為
,在下界上計算出極大似人函數的新的參數為
,如果能夠保證
,我們就只需要在下界上進行極大似然估計就行了。證明如下:
這個式子前面幾項不難理解,關鍵是最后的一個等式,怎么才能保證呢? 哈哈,還記得Jensen不等式里面等式成立的條件么,對的,就是這個x=E[x],對應EM算法中就是要使
再加上條件,對此式子做進一步推導,我們知道
,那么也就有
,我們就可以這樣選擇Q(Z):
這樣我們就可以選出對Z的概率估計Q了。於是我們就得到了EM算法的一半不周,如下:
為了便於理解,這里畫一幅圖來加深大家的印象
到此為此我們就用一個下界lowbound,通過在lowbound上求解最大似然函數,從而不斷更新參數,最終解決EM算法的參數求解問題。
Mixtures of Gaussians(GDA)
混合高斯分布(MoG)也是一種無監督學習算法,常用於聚類。當聚類問題中各個類別的尺寸不同、聚類間有相關關系的時候,往往使用 MoG 更合適。對一個樣本來說, MoG 得到的是其屬於各個類的概率(通過計算后驗概率得到),而不是完全的屬於某個類,這種聚類方法被成為軟聚類。一般說來, 任意形狀的概率分布都可以用多個高斯分布函數去近似,因而,MoG 的應用也比較廣泛。
先來舉一個例子幫助大家理解,如下圖:
這是一個二維的高斯混合分布,數據點由均值為(-1,-2)和(1,2)的兩個高斯分布生成。 根據數據點屬於兩個高斯分布的后驗概率大小對數據點進行分類,可得下圖所示的聚類結果:
在MoG中,由於事先我們不知道數據的分布情況,我們需要先提出兩種假設:
假設 1 :z 服從多項式分布, 即:
假設 2: 已知 z 時, x 服從正態分布,即條件概率 p(x|z)服從正態分布,即:
則 x 與 z 的聯合分布概率函數為:
接下來求似然函數
利用似然函數求解參數的值
但是現在的問題是,我們的兩個假設不一定是成立的,那么如果在事先不知道樣本及其所屬類別的分布情況是,我們又該怎么來求解各個參數的值呢。想到了沒有,剛剛我們講到的EM算法就是來解決這樣一種問題的呀,所以我們想到了她-EM,就是水到渠成的事了。既然EM算法我們已經講解了,那么現在就直接拿來解MoG就是了,步驟如下:
具體說來,在E-step中, Z的概率更新如下:
在 M-step中, 根據E-step得到的Z的分布情況,對參數進行重新估計:
這樣通過不斷的迭代,不斷的更新參數,我們就可以求解出MoG模型的參數了。從分析過程來看,MoG對不確定分布的樣本處理效果會比較好。