EM算法的例子--(1)

1.基礎知識

1.1.凸函數&凹函數

凸函數
凸函數是一個定義在某個向量空間的凸集C(區間)上的實值函數f,在其定義域C上的任意兩點x、y,以及t[0,1]t \in [0,1],有
在這裏插入圖片描述
如果對於任意的t[0,1]t \in [0,1]
在這裏插入圖片描述
則函數f是嚴格凸的。
在這裏插入圖片描述

凹函數
在數學中,凹函數是凸函數的相反。凹函數是一個定義在某個向量空間的凹集C(區間)上的實值函數f,在其定義域C上的任意兩點x、y,以及t[0,1]t \in [0,1],有
在這裏插入圖片描述
進一步地,對於凸函數而言,從圖像上來看,可以概括爲,任意兩點的連線在函數曲線的上方。一元可微函數在某個區間上是凸的,當且僅當它的導數在該區間上單調不減,即有f(x)>0f''(x)>0。當x是向量時,如果其hessian矩陣H是半正定的(H0H \geq 0),那麼f是凸函數。如果或者,那麼稱f是嚴格凸函數。
顯然,log函數是凹函數(在EM算法將用到)。

1.2.期望(expectation)

在概率論和統計學中,一個離散性隨機變量的期望值(數學期望、均值也稱爲期望)是試驗中每次可能結果的概率乘以其結果的總和)。
採用形式化的定義,設Y是隨機變量X的函數,Y=g(X)(g是連續函數),那麼
(1)X是離散型隨機變量,它的分佈律爲P(X=xk)=pk,k=1,2,...P(X=x_k)=p_k,k=1,2,...,若k=1g(xk)pk\sum^\infty_{k=1}g(x_k)p_k絕對收斂,則期望值計算爲E[Y]=E[g(X)]=k=1g(xk)pkE[Y]=E[g(X)]=\sum^\infty_{k=1}g(x_k)p_k
(2)X是連續型隨機變量,存在相應的概率密度函數,若積分絕對收斂,則期望值計算爲

1.3.Jensen不等式

Jensen不等式:
如果f是凸函數,X是隨機變量,則E[f(X)]f(E[X])E[f(X)]\geq f(E[X]),此式等價於在這裏插入圖片描述
,其中k=1npi=1\sum^n_{k=1}p_i=1。由此可以認爲,上文對於凸函數與凹函數定義所用的表達式可以看作Jensen的特殊形式。
如果f是凹函數,則E[f(X)]f(E[X])E[f(X)]\leq f(E[X])。(在EM算法中f(x)爲log函數)
特別地,如果f是嚴格凸函數,那麼E[f(X)]=f(E[X])E[f(X)]= f(E[X])當且僅當P(X=E[X])=1P(X=E[X])=1,也就是說X是常量。
如圖:實線f表示凹函數,X是隨機變量。

在這裏插入圖片描述

Jensen不等式的證明:
使用數學歸納法證明:
1)當n=1,2時,Jensen不等式很顯然成立;
2)假設n=k時,Jensen不等式成立,即:

在這裏插入圖片描述
3)則當n=k+1時

在這裏插入圖片描述


在這裏插入圖片描述

1.4.最大似然估計(MLE)

最大似然估計(MLE)是一種模型參數估計的常用方法。這一方法的使用情景常常是這樣的,對於給定的模型以及已經觀察到的樣本值x1,x2,...,xnx_1,x_2,...,x_n,依據已經得到的樣本的觀察值x1,x2,...,xnx_1,x_2,...,x_n來估計該該模型的參數,而其中蘊含的一個直觀的想法是:在給定模型下,現在已經得到樣本值x1,x2,...,xnx_1,x_2,...,x_n,這表示取得這一觀察值的概率比較大,而我們所估計出來的參數,正是爲了使現有觀察情況出現的可能性最大。要特別說明的是,最大似然估計這一方法中,有一個很重要的假設,就是所使用的樣本之間是滿足獨立同分布的。
最大似然估計的一般求解過程:
(1)寫出似然函數;
(2)對似然函數取對數,並整理;
(3)求導數,令導數爲0,得到似然方程;
(4)解似然方程,得到的參數即爲所求。

最大似然估計的數學解釋:
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

2.木樁例子

2.1.Maximum Likelihood Estimation

Maximum Likelihood Estimation(MLE)是要選擇一個最佳參數,使得從訓練集中觀察到和情況出現的概率最大。即模型:
在這裏插入圖片描述
此時模型只包含觀察變量和參數。
舉例來說明。如下圖
在這裏插入圖片描述
一個小黑球沿着一個三角形的木樁滾入杯子a或b中,可建立一個概率模型,由於是二值的,設服從Bernoulli分佈,概率密度函數爲:
在這裏插入圖片描述
p是k=0的概率,也是我們要使用MLE方法要確定的參數。
在上面的滾球實驗中,我們令Y是待確定的參數,X是觀察到的結果。連續10次實驗,觀察到的結果是X=(b,b,b,a,b,b,b,b,b,a)。小球進入a杯的概率爲p,則從觀測結果得:p=0.2,則滿足10次實驗的聯合概率爲:
在這裏插入圖片描述
在這裏插入圖片描述
爲了使X發生的概率最大,令上式一階求導函數爲0,得p=0.2。

2.2.含有隱含變量的彈球實驗

在這裏插入圖片描述
如上圖,現在又多了兩塊三角形木樁,分別標記序號爲0,1,2。並且實驗中我們只知道小球最終進入了哪個杯子,中間的路線軌跡無從得知。
X取值於{a,b,c}表示小球進入哪個杯子。Y取值於{0,1,2,3}表示小球進入杯子前最後一步走的是哪條線路。小球在3個木樁處走右邊側的概率分別是p=(p0,p1,p2)。跟上例中一樣,X表示訓練集觀測到的值,p是模型參數,而這裏的Y就是"隱含變量"。
假如我們做了N次實驗,小球經過路徑0,1,2,3的次數依次是N0,N1,N2,N3,則:
在這裏插入圖片描述

2.3.帶隱含變量的MLE

現在我們來考慮這個概率模型:Pr(X,Y;θ)。只有X是可觀察的,Y和θ都是未知的。
在這裏插入圖片描述
經過一組實驗,我們觀察到X的一組取值x=(x1,x2,…,xl),則聯合概率爲:
在這裏插入圖片描述
MLE就是要求出最佳的參數θ\theta^*,使得:
在這裏插入圖片描述
這個時候要求θ\theta^*,“令一階求函數等於0”的方法已經行不通了,因爲有隱含變量Y的存在。實現上上式很難找到一種解析求法,不過一種迭代的爬山算法可求解該問題。

2.4.Expectation Maximization

EM是一種迭代算法,它試圖找到一系列的估計參數θ(0),θ(1),θ(2),...\theta^{(0)},\theta^{(1)},\theta^{(2)},...,使得訓練數據的marginal likelihood是不斷增加的,即:
在這裏插入圖片描述
算法剛開始的時候θ(0)\theta^{(0)}賦予隨機的值,每次迭代經歷一個E-Step和一個M-Step,迭代終止條件θ(i+1)\theta^{(i+1)}θ(i)\theta^{(i)}與相等或十分相近。
E-Step是在已知的情況下計算X=x時Y=y的後驗概率:

在這裏插入圖片描述
f(x|X)是一個權值,它表示觀測值x在所有觀察結果X中出現的頻率。
M-Step:
在這裏插入圖片描述
E-Step求出:
在這裏插入圖片描述

這時候可以用“令一階導數等於0”的方法求出θ'。
EM算法收斂性的證明需要用到Jensen不等式,這裏略去不講。

  • 舉例計算

在這裏插入圖片描述

如上圖,現在又多了兩塊三角形木樁,分別標記序號爲0,1,2。並且實驗中我們只知道小球最終進入了哪個杯子,中間的路線軌跡無從得知。

X取值於{a,b,c}表示小球進入哪個杯子。Y取值於{0,1,2,3}表示小球進入杯子前最後一步走的是哪條線路。小球在3個木樁處走右邊側的概率分別是p=(p0,p1,p2)。跟上例中一樣,X表示訓練集觀測到的值p是模型參數而這裏的Y就是"隱含變量"。
假如我們做了N次實驗,小球經過路徑0,1,2,3的次數依次是N0,N1,N2,N3,則:
在這裏插入圖片描述
p0:第一個三角形的右邊
p1:第二層的第一個三角形的右邊

就拿上文那個3個木樁的滾球實驗來說,做了N次實驗,滾進3個杯子的次數依次是Na,Nb,Nc。
X取值於{a,b,c}表示小球進入哪個杯子。Y取值於{0,1,2,3}表示小球進入杯子前最後一步走的是哪條線路。
先給θ(0)=(p0(0),p0(0),p0(0))\theta^{(0)}=(p_0^{(0)},p_0^{(0)},p_0^{(0)})
在這裏插入圖片描述賦予一個隨機的值p表示球進入木樁右邊的概率。
EM算法求的是球進入木樁右邊的概率,而進入木樁右邊有三種可能
E-Step:
在這裏插入圖片描述
比如進入杯子a的概率爲:
在這裏插入圖片描述
同時我們注意到
在這裏插入圖片描述

Y取值0,1,2,3,隱藏概率
X取值a,b,c,觀測概率
在這裏插入圖片描述
線路是杯子上方的數字0,1,2,3
進入杯子b有兩條路線,線1是其中一條,

p0p_0是觀測球進入頂層三角形的右邊的概率,那麼左邊概率爲1p01-p_0
要進入杯子b,走在不同三角形的邊上,是一件事情的不用步驟,需要用到乘法原理。

(1p0)p1(1-p_0)p_1表示走的是線1的概率
p0(1p1)p_0(1-p_1)表示走的是線2的概率
(i)表示實驗的次數

觀測球進入b時,是線1的概率:

在這裏插入圖片描述
線2的概率:
在這裏插入圖片描述

其它情況下Y的後驗概率都爲0。

M-Step:
我們只需要計算非0項就可以了

在這裏插入圖片描述
在這裏插入圖片描述

左邊知道,右邊????
在這裏插入圖片描述
簡化即:
在這裏插入圖片描述

上面的每行第3列和第4列相乘,最後再按行相加,就得到關於θ(i+1)θ^{(i+1)}的函數,
在這裏插入圖片描述

分別對p0p_0,p1p_1,p2p_2求偏導,令導數爲0,可求出p0p'_0,p1p'_1,p2p'_2

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

這裏補充一個求導公式:
在這裏插入圖片描述

我們這個例子非常簡單,計算θ(1)已經是最終的解了,當然你要計算出θ(2)才下此結論。

3.三硬幣例子

假設有3枚硬幣,分別記做A,B,C。這些硬幣正面出現的概率是π,p,q。進行如下的實驗:先擲硬幣A,根據其結果選出硬幣B或C,正面選硬幣B,方面選硬幣C;然後投擲選中的硬幣,出現正面記做1,反面記做0。獨立重複n次,這裏n=10,結果爲:
1,1,0,1,0,0,1,0,1,1
假設只能觀察到投擲硬幣的結果,不能觀察投擲硬幣你的過程。問如何估計三枚硬幣各自出現正面的概率,即三硬幣模型的參數π,p,q。
一次實驗中,最終觀察到一個可能性(正,反)的概率:
在這裏插入圖片描述
其中,隨機變量y是觀測變量,取值0和1,表示一次實驗觀測結果是1還是0;隨機變量z是隱變量,表示未觀測到的投擲硬幣A的結果;表示參數模型。
將觀測數據表示爲Y,未觀測數據表示爲Z,則觀測數據的似然函數爲
在這裏插入圖片描述
爲方便計算,取其對數形式
在這裏插入圖片描述
那麼,求模型參數的極大似然估計,即
在這裏插入圖片描述
公式中含有log和,直接求解非常困難,只有通過迭代求解,EM算法就是此處採用的迭代算法。到這裏已經說明了EM算法的使用情景,以及爲何需要通過EM算法求解(關鍵在於隱變量Z的存在)。

tips
如果已知隱變量Z,令W={Y,Z},此時相當於W爲完全已知的變量。問題轉化爲如下:
在這裏插入圖片描述
避免了公式中含有log套,成爲只有已知變量的模型參數估計,通過極大似然估計法即可求解。
但是實際上,Z的值無法直接獲得準確值,但是可以在給定時求Z的後驗概率,通過概率公式,將問題轉爲:
在這裏插入圖片描述
這相當於用logP(Y,Zθ)logP(Y,Z|\theta)在給定Y和θ\theta情況下的期望,來近似表達logP(Y,Zθ)logP(Y,Z|\theta),這是EM算法E步所做。

tips
EM算法的適用情景。EM算法適用於含有隱變量或潛在變量的概率模型的參數的估計。若所給問題只有觀測變量,則可以通過極大似然估計獲得模型參數。

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