文章目錄
1.基礎知識
1.1.凸函數&凹函數
凸函數
:
凸函數是一個定義在某個向量空間的凸集C(區間)上的實值函數f,在其定義域C上的任意兩點x、y,以及,有
如果對於任意的有
則函數f是嚴格凸的。
凹函數
:
在數學中,凹函數是凸函數的相反。凹函數是一個定義在某個向量空間的凹集C(區間)上的實值函數f,在其定義域C上的任意兩點x、y,以及,有
進一步地,對於凸函數而言,從圖像上來看,可以概括爲,任意兩點的連線在函數曲線的上方。一元可微函數在某個區間上是凸的,當且僅當它的導數在該區間上單調不減,即有。當x是向量時,如果其hessian矩陣H是半正定的(),那麼f是凸函數。如果或者,那麼稱f是嚴格凸函數。
顯然,log函數是凹函數(在EM算法將用到)。
1.2.期望(expectation)
在概率論和統計學中,一個離散性隨機變量的期望值(數學期望、均值也稱爲期望)是試驗中每次可能結果的概率乘以其結果的總和)。
採用形式化的定義,設Y是隨機變量X的函數,Y=g(X)(g是連續函數),那麼
(1)X是離散型隨機變量,它的分佈律爲,若絕對收斂,則期望值計算爲。
(2)X是連續型隨機變量,存在相應的概率密度函數,若積分絕對收斂,則期望值計算爲
1.3.Jensen不等式
Jensen不等式:
如果f是凸函數,X是隨機變量,則,此式等價於
,其中。由此可以認爲,上文對於凸函數與凹函數定義所用的表達式可以看作Jensen的特殊形式。
如果f是凹函數,則。(在EM算法中f(x)爲log函數)
特別地,如果f是嚴格凸函數,那麼當且僅當,也就是說X是常量。
如圖:實線f表示凹函數,X是隨機變量。
Jensen不等式的證明:
使用數學歸納法證明:
1)當n=1,2時,Jensen不等式很顯然成立;
2)假設n=k時,Jensen不等式成立,即:
3)則當n=k+1時
即
1.4.最大似然估計(MLE)
最大似然估計(MLE)是一種模型參數估計的常用方法。這一方法的使用情景常常是這樣的,對於給定的模型以及已經觀察到的樣本值,依據已經得到的樣本的觀察值來估計該該模型的參數,而其中蘊含的一個直觀的想法是:在給定模型下
,現在已經得到樣本值,這表示取得這一觀察值的概率比較大,而我們所估計出來的參數,正是爲了使現有觀察情況出現的可能性最大。要特別說明的是,最大似然估計這一方法中,有一個很重要的假設,就是所使用的樣本之間是滿足獨立同分布的。
最大似然估計的一般求解過程:
(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就是要求出最佳的參數,使得:
這個時候要求,“令一階求函數等於0”的方法已經行不通了,因爲有隱含變量Y的存在。實現上上式很難找到一種解析求法,不過一種迭代的爬山算法可求解該問題。
2.4.Expectation Maximization
EM是一種迭代算法,它試圖找到一系列的估計參數,使得訓練數據的marginal likelihood是不斷增加的,即:
算法剛開始的時候賦予隨機的值
,每次迭代經歷一個E-Step和一個M-Step,迭代終止條件是與相等或十分相近。
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}表示小球進入杯子前最後一步走的是哪條線路。
先給
賦予一個隨機的值p表示球進入木樁右邊的概率。
EM算法求的是球進入木樁右邊的概率,而進入木樁右邊有三種可能
。
E-Step:
比如進入杯子a的概率爲:
同時我們注意到
Y取值0,1,2,3,隱藏概率
X取值a,b,c,觀測概率
線路是杯子上方的數字0,1,2,3
進入杯子b有兩條路線,線1是其中一條,
是觀測球進入頂層三角形的右邊的概率,那麼左邊概率爲
要進入杯子b,走在不同三角形的邊上,是一件事情的不用步驟,需要用到乘法原理。
表示走的是線1的概率
表示走的是線2的概率
(i)表示實驗的次數
觀測球進入b時,是線1的概率:
線2的概率:
其它情況下Y的後驗概率都爲0。
M-Step:
我們只需要計算非0項就可以了
左邊知道,右邊????
簡化即:
上面的每行第3列和第4列相乘
,最後再按行相加
,就得到關於的函數,
分別對,,求偏導,令導數爲0,可求出,,。
這裏補充一個求導公式:
我們這個例子非常簡單,計算θ(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的後驗概率,通過概率公式,將問題轉爲:
這相當於用在給定Y和情況下的期望,來近似表達,這是EM算法E步所做。
tips
EM算法的適用情景。EM算法適用於含有隱變量或潛在變量的概率模型的參數的估計。若所給問題只有觀測變量,則可以通過極大似然估計獲得模型參數。