1. 程式人生 > >EM演算法(基礎及核心概念)

EM演算法(基礎及核心概念)

Jensen不等式

其實在運籌學以及基礎的優化理論中,便有涉及。設f是定義域為實數的函式,如果對於所有的實數x,這裡寫圖片描述,那麼f是凸函式。拓展到多元的情形,x是向量時,如果其對應的Hessian矩陣H是半正定的(這裡寫圖片描述),那麼f是凸函式。特別的,當這裡寫圖片描述或者海瑟矩陣為正定時(H>0),那麼稱函式f是嚴格凸函式。

  • Jensen不等式表述如下:

    如果f是凸函式,X是隨機變數,那麼這裡寫圖片描述

    特別地,如果f是嚴格凸函式,當且僅當這裡寫圖片描述(也就是說X是常量時),這裡寫圖片描述成立,畫一個草圖可以直觀地看出:

    這裡寫圖片描述

可以看到,左圖是符合我們對於凸函式的定義的,右圖則不符合。

同理我們可以知道,當Jensen不等式應用於凹函式時,不等號變向,即E

[f(X)]f(EX)

最大似然估計

在講解EM演算法之前,還需要最大似然估計的相關知識。

假設我們需要調查學校的男生的身高分佈。我們進行簡單隨機抽樣(當然,分層抽樣啊,整群抽樣都是OK的~),隨機抽選了100個男生作為抽樣樣本。然後得到的100個樣本值。假設他們的身高(對應的男生總體)是服從高斯分佈(總體分佈)的。但是這個分佈的均值u和方差σ2我們不知道(總體分佈的引數未知),這兩個引數就是我們要估計的。記作:這裡寫圖片描述

用數理統計的語言表達出來便是,我們獨立地按照概率密度p(x|θ)抽取100樣本組成樣本集X,我們想通過樣本集X來估計出未知引數θ。這裡假設概率密度p(x|θ)我們知道了是高斯分佈這裡寫圖片描述的形式,其中的未知引數是這裡寫圖片描述

。抽到的樣本集是X=x1,x2,,xn,其中xi表示抽到的第i個人的身高,這裡n就是100,表示抽到的樣本個數。又由於抽取到的每個樣本之間相互獨立,故聯合概率密度函式便是其各自的概率密度函式的連乘,形式如下:
這裡寫圖片描述

這個聯合概率反映了,在概率密度函式的引數是θ時,得到樣本集X的概率。因為這裡X是已知的,也就是說我抽取到的這100個人的身高可以測出來,也就是已知的了。而θ是未知了,則上面這個公式只有θ是未知數,所以它是θ的函式。這個函式表示的是在不同的引數θ取值下,取得當前這個樣本集的可能性,因此稱為引數θ相對於樣本集X的似然函式(likehood function)。記為L(θ)

極大似然估計,是一種概率論在統計學的應用,它是常見的引數估計的方法之一。其是建立在這樣的思想上:已知某個引數能使這個樣本集出現的概率最大,我們當然不會再去選擇使得這個樣本集出現的概率較小的引數,所以乾脆就把這個引數作為估計的真實值

比較拗口哈~,不過理解起來還是比較容易的。就拿前面的例子說,如果引數這裡寫圖片描述使得該樣本集出現的概率最大,我們肯定是不會去選擇引數這裡寫圖片描述這裡寫圖片描述等引數的對吧。

這裡寫圖片描述
但通常為了便於分析,可以取對數得到對數似然函式,
這裡寫圖片描述
即:
這裡寫圖片描述

好了,現在我們知道了,要求解θ,只需要使θ的似然函式L(θ)極大化,然後極大值對應的θ就是我們的估計。這裡就回到了求最值的問題了。怎麼求一個函式的最值呢?當然,在存在解析解的情況下,我們直接求其偏導數並令其為0即可得出;

但是在不存在解析解或者直接求解比較困年的情況下,我們通常是採取梯度下降(上升)法來進行求解的,例如典型的LR的引數求解中便是利用了梯度下降法;又SVM在求解的實現時,利用SMO求解時,是同時對兩個拉格朗日乘子進行梯度上升法(由於SMO是求解max W(a),詳見博文http://blog.csdn.net/buracag_mc/article/details/76762249),同樣利用迭代來求解的。這裡不是本文的側重點,故不再展開贅述了。

大概總結一下,求解最大似然函式估計值的一般步驟:

  • 求得聯合概率密度,寫出似然函式;

  • 對似然函式取對數,並整理;

  • 求偏導數,並令其為0,得到似然方程;

  • 求解似然方程,得到的引數即為所求。

EM演算法

給定的訓練樣本集,樣本間獨立,我們想找到每個樣例隱含的類別z,能使得p(x,z)最大。p(x,z)的最大對數似然估計如下:

這裡寫圖片描述

利用似然估計求解的思想。

  • 求得似然函式

  • 取對數,得到對數似然函式

  • 對每個樣例的每個可能類別z求聯合分佈概率和。

但是直接求θ一般比較困難,因為有隱藏變數z存在,但是一般確定了z後,求解就容易了。

EM是一種解決存在隱含變數優化問題的有效方法。既然不能直接最大化這裡寫圖片描述,我們可以不斷地建立的下界這裡寫圖片描述(E步),然後優化下界(M步),直到差異足夠小。

對於每一個樣本xi,讓Qi表示該樣例隱含變數z的某種分佈,Qi滿足的條件是這裡寫圖片描述。(分類變數便是求和符號,如果z是連續變數,那麼Qi是概率密度函式,對其積分即可)。

講的比較抽樣哈?沒關係,繼續用小例子來說明:
對於第二部分講的似然估計的內容,我們要估計的只有一個總體的引數(即學校男生的身高分佈引數);但是如果我們要同時估計男生和女生的身高分佈情況呢?

我們改變一下假設,同時隨機選取100個男生和100個女生混在一起,得到一個樣本值後(即身高值),我們不知道是從男生的那個身高分佈中選取的,還是從女生的那個身高分佈中選取的。對於每一個樣本,我們就有兩個東西需要進行估計的了:

  • 其一是這個人是男生還是女生?

  • 其二是男生和女生對應的身高的高斯分佈的引數是多少?

這裡假設隱藏變數z是身高,那麼隱藏變數對應的分佈就是連續的高斯分佈。如果隱藏變數z是男女,那麼就是伯努利分佈了。這樣講,應該是比較容易理解隱藏變數的意思了。

下面我們假設隱藏變數z是男女,可以由前面闡述的內容得到下面的公式:
這裡寫圖片描述

(1)式到(2)式沒問題,就是分子分母同乘以一個相等的函式,這裡即是隱藏變數的概率密度函式。(2)式到(3)式利用到了第一部分講的Jensen不等式,首先考慮到log(x)是凹函式。
這裡寫圖片描述

就是這裡寫圖片描述的期望(看成函式值乘上對應的權重,最後加和)

即將自變數看成這裡寫圖片描述,f(x)看成這裡寫圖片描述便可理解了。具體轉換步驟:
這裡寫圖片描述

這個過程可以看作是對這裡寫圖片描述求了下界。對於Qi的選擇,有多種可能,那種更好的?假設θ已經給定,那麼這裡寫圖片描述的值就決定於這裡寫圖片描述這裡寫圖片描述了。我們可以通過調整這兩個概率使下界不斷上升,以逼近的真實值,那麼什麼時候算是調整好了呢?最終當不等式變成等式時,說明我們調整後的概率能夠等價於這裡寫圖片描述了。這裡給出一張圖,直觀地說明不斷地擡高下界以逼近我們所求的這裡寫圖片描述:【1】

這裡寫圖片描述

按照這個思路,我們要找到等式成立的條件。根據Jensen不等式,要想讓等式成立,需要讓隨機變數變成常數值,即:
這裡寫圖片描述

c為常量,不依賴於這裡寫圖片描述。對此式子做進一步推導,我們知道這裡寫圖片描述,那麼也就有這裡寫圖片描述(多個等式分子分母相加不變,這個認為每個樣例的兩個概率比值都是c),那麼有下式:
這裡寫圖片描述

至此,我們推出了在固定其他引數θ後,這裡寫圖片描述的計算公式就是熟悉的後驗概率公式,解決了這裡寫圖片描述如何選擇的問題。這一步就是E步,建立這裡寫圖片描述的下界。

接下來的便是M步,就是在給定這裡寫圖片描述後,調整θ,去極大化這裡寫圖片描述的下界(在固定後,下界還可以調整的更大)。

那麼一般的EM演算法的步驟如下:

  • 初始化分佈引數θ

  • 重複以下步驟直到收斂:

    • E步驟:根據引數初始值或上一次迭代的模型引數來計算出隱性變數的後驗概率,其實就是隱性變數的期望。作為隱藏變數的現估計值:
      這裡寫圖片描述
    • M步驟:將似然函式最大化以獲得新的引數值:
      這裡寫圖片描述

如何確保EM的引數估計值收斂呢?假定這裡寫圖片描述這裡寫圖片描述是EM第t次和t+1次迭代後的結果。如果我們證明了這裡寫圖片描述,也就是說極大似然估計單調增加,那麼最終我們會到達最大似然估計的最大值。
詳細證明可以參考部落格【2】

最終會得到證明結果:
這裡寫圖片描述

這樣就證明了會單調增加。一種收斂方法是不再變化,還有一種就是變化幅度很小。

OK,我們將EM演算法的思想用到我們這部分的例子上:

  • 首先我們初始化引數θ,男生的總體分佈引數這裡寫圖片描述,女生的總體的分佈引數這裡寫圖片描述

  • 然後我們將200個樣本值分別計算出隱藏變數的後驗概率,作為隱藏變數的現估計值。即在樣本xi的取值下,該樣本屬於男生的後驗概率是多少,屬於女生的後驗概率是多少,並將該樣本劃分到後驗概率最大的那類去。即E步。

  • 將200個樣本劃分給男生和女生完成後,重新根據對應的樣本,參照我們第二部分的內容,做極大似然估計,得到更新後的引數θ值。即M步

  • 重複二、三步,直到收斂

  • 最後,輸出男生和女生對應總體分佈的引數值。

參考資料如下: