在深度學習的路上,從頭開始瞭解一下各項技術。本人是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),用極大似然估計來計算 θ,並更新。