EM算法詳細推導

在深度學習的路上,從頭開始瞭解一下各項技術。本人是DL小白,連續記錄我自己看的一些東西,大家可以互相交流。

在看代碼的過程中,發現EM算法的瞭解不是很透徹,又回頭來手動推導了一遍EM算法,算是一個補充吧。如果不需要了解具體細節,可以看我之前這篇文章:

https://blog.csdn.net/weixin_38206214/article/details/81064625

一、前言

EM算法即期望最大化(Expection Maximization)算法。是一種迭代算法,作爲一種數據添加算法,在現在的DL學習中經常見到。參考了很多網上的博客,很多都省略了部分推導細節,讓推導看起來有點不明不白,自己重新整理了一下,手動推導了一邊過程,大家可以作爲細節補充看看。

二、似然函數和極大似然估計

假設總體的概率函數爲 p(x ; θ), 其中 θ 是一個未知參數或幾個未知參數組成的參數向量,屬於取值的參數空間。

x1, x2 ... xn是來自該總體的樣本,將樣本的聯合概率函數表示爲 θ 的函數。

設 L(θ) = L(x1, ..., xn; θ),表示我們從總體樣本(參數爲 θ )中,連續抽取到x1,...xn樣本的概率,即爲單個樣本的乘積,所以L(θ) 是一個連乘函數。稱爲樣本的似然函數。

L(θ)是參數 θ 的函數,隨着 θ 在參數變化,L函數也在變化。而極大似然估計目的就是在樣本{x1,...,xn}固定的情況下,尋找最優的 θ 來極大化似然函數:

上式在數學領域,可以看作是對 θ* 求解,求L(θ) 函數的極值點,導數爲0處,即爲 θ* 的點。

又因爲L(θ) 和 ln(θ) 在同一個 θ 處取得極值,我們可以對 L(θ) 取對數,將連乘轉化爲連加(方便求導),得到對數化似然函數:

  

三、Jensen不等式

設 f 是定義域爲實數的函數,如果對所有實數X,f的二階導數恆大於等於0,那麼f爲凸函數。Jensen不等式表達如下:

如果 f 爲凸函數,X爲隨機變量,那麼:

其中E[ ] 爲期望,也稱爲均值。上張圖解釋一下:

è¿éåå¾çæè¿°

設a, b爲X上的兩個點,設 f 爲凸函數,圖像如上。那麼a,b的期望(均值)的 f 映射,要小於 a 在 f 上的映射和 b 在 f 上的映射的均值。即:

[ f (a) + f (b) ] / 2 大於等於 f [ ( a + b ) / 2 ] 

原理其實學過導數和圖像的關係就能理解,可能這個名字比較沒見過,別害怕啦。

Jensen不等式的等號成立的條件是當X爲常量,即:函數f 的值爲一條直線。

PS.數學期望相關定理

若隨機變量X的分佈用分佈列 p(xi)或用密度函數 p(x)表示,則X的某一函數的數學期望爲:

我們這裏的數據爲樣本點,是離散型,所以用上面的形式。

四、邊際分佈列

在二維離散隨機變量(X, Y)的聯合分佈列{P(X=xi, Y=yj)}中,對j求和所得的分佈列

稱爲X的分佈列。

對Y求和同理。

五、EM算法推導

1、數據集:

觀測數據:觀測到的隨機變量X的樣本:
X = (x1,..., xn)

隱含變量:未觀測到的隨機變量Z的值:

Z = (z1,..., zn)

完整數據:包含觀測到的隨機變量X和隱含變量Z的數據:

Y = (X, Z)

Y = ((x1, z1),..., (xn, zn))

2、EM算法的推導

Em算法是從含有隱含變量的數據(完整數據)中計算極大似然估計。Z爲隱含變量,則從可觀測數據入手,對參數進行極大似然估計。

根據邊緣分佈列的定義:

首先改寫L(θ) :

式(1)將p (xi) 用邊緣分佈列反向拆分爲聯合分佈。

接下來,定義隱含變量Z的分佈Qi:

我們在(1)式的 ln 裏,分子分母同乘一個值,得到(2)式:

接下來需要利用到Jensen不等式和數學期望,在期望方程中,我們用到了

如上公式。套用在(2)式中,我們定義爲:

套用到Jensen不等式中,即爲:

根據Jensen不等式,其中lnx爲凹,公式如下:

接下來我們將(4)式展開,得到如下:

那麼,我們可以得到L(θ) 和 (5) 的關係:

我們可以將(5)式看作是 θ 的函數,θ 又是概率模型中的參數,那麼上式求得的左式,即爲L(θ)的下界。

我們求θ的過程,可以看作圖中右移的過程, 在給定θ之後,求Qi的過程,即爲上移的過程。

3、等式成立的條件

將上圖推導的(5)式複製下來:

我們首先固定住 θ,選擇Q的可能分佈,當等號成立的時候,即爲達到L(θ)的下界。

根據Jensen不等式等號成立的條件:

Jensen不等式的等號成立的條件是當X爲常量,即:函數f 的值爲一條直線。

在(3)式和(5)式的關係可看出:

等號成立的條件:

即Jensen不等式中,上圖爲我們定義的X。我們可以通過如下方法對C進行變換:

可以得到C的代值。

我們用C的代值來代替下式的右邊C:

那麼可以進一步推理:

則可以得到Qi(zi)的代值,即p(zi | xi ; θ)。從概率的角度而言,表示爲在θ參數的模型中,在xi的條件下,取到zi的概率。

至此,EM算法推導就結束了,接下來系統的講一下EM算法的邏輯步驟。

總結而言:

E步驟:固定 θ ,求隱含變量zi的概率分佈,Qi(zi)。

M步驟:給定Qi(zi),用極大似然估計來計算 θ,並更新。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章