強填EM演算法在理論與工程之間的鴻溝(上)

夕小瑤發表於2018-08-15

小夕曾經問一位做機器學習理論的學姐:“學姐學姐,EM演算法是什麼呢?”

學姐回答:“EM演算法啊,就是解決包含隱變數的引數估計問題。”

小夕:

強填EM演算法在理論與工程之間的鴻溝(上)

然後小夕去問一位做工程的學長:“學長學長,EM演算法是什麼呢?”

學長回答:“EM演算法就那樣啊,就是先用有標籤的樣本訓練個分類器,再給未知標籤的樣本貼標籤,然後再拿全部樣本再訓練分類器,就這樣來回倒騰~”

小夕:

強填EM演算法在理論與工程之間的鴻溝(上)

 於是小夕自己一個人看了一整天的EM演算法QAQ

前言

首先說,其實學長和學姐說的都很對。但是對於一個路人來說,很難將學長與學姐的說法聯絡到同一個東西上。而最終小夕總結出來的就是,做工程的學長的回答其實是做理論的學姐的回答下的一個簡化的特例

首先,我們來看一下理論上的期望最大化演算法,也就是EM演算法(不要想了,對於這個演算法,小夕打死也繞不開數學公式了,所以有公式恐懼症的同學請自行用手指蓋住它們...

另外,嚴正宣告一下,對於沒有微積分與概率統計基礎的同學,請直接等下一篇中得出的結論!非要看這一篇的話,請時刻保持理智,請時刻保持理智,請時刻保持理智。

理論家眼中的EM

開門見山,EM演算法的目標是使包含隱變數的資料集的後驗概率似然函式最大化,進而得到最優的引數估計

我們知道,通過貝葉斯公式,可以發現後驗概率中包含了似然函式先驗概率(忽略分母的那個evidence項),因此求最大後驗概率的過程中包含了求極大似然估計的過程。因此雖然EM演算法的目標是最大化後驗概率似然函式,而本質上就可以認為是最大化似然函式。因此下面我們直接討論最大化似然函式

似然函式設為l(θ),描述樣本可以用多維隨機變數(對應於機器學習的多維特徵),每一維的隨機變數都可以認為服從某種概率分佈。因此要描述每一維的樣本情況,我們只需要估計出這一維度的概率分佈模型的引數就可以啦。而將所有維度的分佈模型的引數放在一起,就是似然函式引數,即θ。因此根據定義,

強填EM演算法在理論與工程之間的鴻溝(上)似然函式代表著該包含m個樣本的樣本集存在的合理性(似然函式值越大,該樣本集的存在就越合理,即意味著引數取的越正確),描述每個樣本的多維隨機變數的分佈模型的引數即上面的θ,p(x; θ)代表著固定θ的值,求p(x)的概率。

第二行的z則代表隱變數,確切的說是隱含的隨機變數。哈?看不懂第二步怎麼來的?請回去複習微積分...算了,小夕太過善良,還是講講吧。

顯然,這裡似然函式討論的是離散情況(畢竟都是∑符號而不是∫符號呀),因此,在p(x; θ)中加上z這個隨機變數後,只能將這個隨機變數積分掉才能保證加上z以後的式子依然等於p(x;θ),當然,z是離散的,所以積分掉的意思是“求和”掉。

(回顧一下,對於任何一個連續隨機變數x,∫p(x)dx=1;對於任何一個離散隨機變數x,∑p(x)=1)

好,懂了第二步,在繼續往下推之前,想一想我們可不可以直接計算第二步呢?當然不行啦,不僅有θ,還有隱變數啊。因此繼續往下推。

強填EM演算法在理論與工程之間的鴻溝(上)

誒?又出來個Qi。這個Qi是什麼呢?這個Qi是隱變數z的概率分佈函式啦。為什麼要加上它呢?再好好觀察一下最後這一步中的這一部分!

強填EM演算法在理論與工程之間的鴻溝(上)

有沒有發現什麼!?對!這就是數學期望呀~別說數學期望都忘了啊,小夕還是再囉嗦一下吧...對於某離散隨機變數X來說,其數學期望

強填EM演算法在理論與工程之間的鴻溝(上)

看吧~加上Qi這個概率分佈函式後,是不是就出來了一個數學期望啦!但好像還是不能計算,懂數值計算的讀者應該知道log(∑…)的計算量是十分恐怖的,而且我們還被我們加上了一個不知道怎麼計算的Qi!!!因此要繼續變!!!怎麼變呢?Jensen不等式來啦!

直接摳了個定義(看不懂沒關係):

強填EM演算法在理論與工程之間的鴻溝(上)

通過這個Jensen不等式,我們發現可以進一步往下推了。

強填EM演算法在理論與工程之間的鴻溝(上)

誒?雖然是往下推了一步,但是我們必須要讓等號恆成立才行啊,否則這個推理是不成立的呀。。。那麼怎麼讓等號恆成立呢?

根據Jensen不等式的等號成立條件,E[f(X)]≥f(E[X])中的隨機變數X必須恆等於常數!!也就是說:

強填EM演算法在理論與工程之間的鴻溝(上)≡c(c為常數)

於是重點來了,將分母的Qi移到右邊,將右邊的c移到左邊!我們發現:

強填EM演算法在理論與工程之間的鴻溝(上)

好,再利用強填EM演算法在理論與工程之間的鴻溝(上)(概率分佈函式的基本性質),發現我們可以繼續這樣推!

強填EM演算法在理論與工程之間的鴻溝(上)

推到最後竟然是這個?????

這個不就是每個樣本的隱變數z的後驗概率嗎!!!

也就是說我們只要求出來了每個樣本的隱變數的每個取值的後驗概率,就能得到這個樣本的Qi!!!

就能讓Jensen不等式的等號成立!!!

就能讓log(∑…)的不可計算成功變成可計算!!!

就能計算我們的目標——似然函式啦!!!

所以,咳咳,總之,我們首先固定一個θ(也就是隨便給θ取個初始值),然後我們計算出隱變數z的取值的後驗概率,就能讓這個包含隱變數的似然函式變成傳統意義上的似然函式~也就是隻考慮引數θ的似然函式~(這個過程稱為E步)

而最大化傳統意義上的似然函式就不用囉嗦啦~那就用傳統的方法最大化呀~最大化了以後就得到了當前的最優θ。(這個過程稱為M步)

而得到了當前的最優θ以後,我們又可以重新計算出隱變數z的取值的後驗概率,就能……~~~總之就又可以E步,然後又M步,然後又E,又M……

就這樣一直重複,一直重複,直到似然函式的值不再變化,此時每個樣本的Qi就是每個樣本的標籤~而此時的θ就是最終那個最優的θ啦~

至此,理論上的EM演算法完成了,最終得到的就是我們要估計的最優引數θ,順便得到了每個樣本的隱變數的取值。

那麼工程上看似是跟分類器打交道,小夕則說其實是理論的特例又是怎麼回事呢?敬請期待《機器學習系列-強填EM演算法在理論與工程之間的鴻溝(下)》,待小夕華麗麗的填上理論與工程的鴻溝。(下一篇沒有這一篇這麼恐怖,2333)

相關文章