從最大似然到EM演算法:一致的理解方式

作者丨蘇劍林

單位丨廣州火焰信息科技有限公司

研究方向丨NLP,神經網路

個人主頁丨kexue.fm

最近在思考 NLP 的無監督學習和概率圖相關的一些內容,於是重新把一些參數估計方法理了一遍。

在深度學習中,參數估計是最基本的步驟之一了,也就是我們所說的模型訓練過程。為了訓練模型就得有個損失函數,而如果沒有系統學習過概率論的讀者,能想到的最自然的損失函數估計是平均平方誤差,它也就是對應於我們所說的歐式距離。

而理論上來講,概率模型的最佳搭配應該是「交叉熵」函數,它來源於概率論中的最大似然函數。

最大似然

合理的存在

何為最大似然?哲學上有句話叫做「存在就是合理的」,最大似然的意思是「存在就是最合理的」。具體來說,如果事件 X 的概率分布為 p(X),如果一次觀測中具體觀測到的值分別為 X1,X2,…,XN,並假設它們是相互獨立,那麼:

是最大的。如果 p(X) 是一個帶有參數 θ 的概率分散式 (X),那麼我們應當想辦法選擇 θ,使得 L 最大化,即:

對概率取對數,就得到等價形式:

如果右端再除以 N,我們就得到更精鍊的表達形式:

其中我們將 ?L(θ) 就稱為交叉熵。

理論形式

理論上,根據已有的數據,我們可以得到每個 X 的統計頻率 p?(X),那麼可以得到上式的等價形式:

但實際上,我們幾乎都不可能得到 p?(X)(尤其是對於連續分布),我們能直接算的是關於它的數學期望,也就是 (4) 式,因為求期望只需要把每個樣本的值算出來,然後求和併除以 N 就行了。所以 (5) 式只有理論價值,它能方便後面的推導。

要注意的是,上面的描述是非常一般的,其中 X 可以是任意對象,它也有可能是連續的實數,這時候就要把求和換成積分,把 p(X) 變成概率密度函數。當然,這並沒有什麼本質困難。

有監督模型

現在我們來觀察有監督學習中是如何應用上述內容的。假設輸入為 X,標籤為 Y,那麼 (X,Y) 就構成了一個事件,於是我們根據 (4) 就有:

這裡已經註明了是 X,Y 整體求數學期望,然而該式卻是不夠實用的。

分類問題

以分類問題為例,我們通常建模的是 p(Y|X) 而不是 p(X,Y),也就是我們要根據輸入確定輸出的分布,而不是它們的聯合分布。所以我們還是要從 (5) 式出發,利用 p(X,Y)=p(X)p(Y|X),先得到:

因為我們只對 p(Y|X) 建模,因此 (X) 我們認為就是 p?(X),那麼這相當於讓優化目標多了一個常數項,因此 (7) 等價於:

然後,我們還有 p?(X,Y)=p?(X)p?θ(Y|X),於是 (8) 式還可以再變化成:

最後別忘了,我們是處理有監督學習中的分類問題,一般而言在訓練數據中對於確定的輸入 X就只有一個類別,所以 p?(Yt|X)=1,其餘為 0,Yt 就是 X 的目標標籤,所以:

這就是最常見的分類問題的最大似然函數了:

變變變

事實上,上述的內容只是一些恆等變換,應該說沒有特別重要的價值,而它的結果(也就是分類問題的交叉熵損失)也早就被我們用得滾瓜爛熟了。

因此,這一節僅僅是展示了如何將最大似然函數從最原始的形式出發,最終落實到一個具體的問題中,讓讀者熟悉一下這種逐步推進的變換過程

隱變數

現在就是展示它的價值的時候了,我們要將用它來給出一個 EM 演算法的直接推導對於 EM 演算法,一般將它分為 M 步和 E 步,應當說,M 步是比較好理解的,難就難在 E 步的那個 Q 函數為什麼要這樣構造

很多教程並沒有給出這個 Q 函數的解釋,有一些教程給出了基於詹森不等式的理解,但我認為這些做法都沒有很好凸顯出 EM 演算法的精髓。

一般來說,EM 演算法用於存在隱變數的概率問題優化。什麼是隱變數?很簡單,還是以剛才的分類問題為例,分類問題要建模的是 p(Y|X),當然也等價於 p(X,Y),我們說過要用最大似然函數為目標,得到 (6) 式:

如果給出 (X,Y) 的標籤數據對,那就是一個普通的有監督學習問題了,然而如果只給出 X 不給出 Y 呢?這時候 Y 就稱為隱變數,它存在,但我們看不見,所以「隱」

GMM模型

等等,沒有標籤數據你也想做分類問題?當然有可能,GMM 模型不就是這樣的一個模型了嗎?在 GMM 中假設了:

注意,是 (Y)(X|Y) 而不是 (X)(Y|X),兩者區別在於我們難以直接估計 p(X),也比較難直接猜測 p(Y|X) 的形式。

p(Y) 和 p(X|Y) 就相對容易了,因為我們通常假設 Y 的意義是類別,所以 p(Y) 只是一個有限向量,而 p(X|Y) 表示每個類內的對象的分布。

既然這些對象都屬於同一個類,同一個類應該都長得差不多吧,所以 GMM 假設它為正態分布,這時候做的假設就有依據了,不然將所有數據混合在一起,誰知道假設什麼分布好呢?

pLSA模型

當然,並不只有無監督學習才有隱變數,有監督學習也可以有,比如我們可以設:

這時候多出了一個變數 Z,就算給出 (X,Y) 這樣的標籤數據對,但 Z 仍然是沒有數據的,是我們假想的一個變數,它也就是隱變數,pLSA 就是這樣的一個問題。這時候它的最大似然估計是:

聯合最大似然

再等等,你這個好像跟我之前看到的 pLSA 的目標函數不大一樣呀?還有 (6) 式也跟 GMM 的目標函數不一樣呀?你是不是弄錯了?

我覺得並沒有弄錯,最大似然函數應該要考慮的是整體聯合分布,也就是得把 Z 也考慮進去。而教程一般是這樣處理的:由於隱變數不可觀測,因此一般改用邊緣分布(也就是顯變數的分布)的最大似然為目標函數,即:

為最大化的目標。

事實上這種做法我認為是不大妥當的,隱變數雖然「隱」了,但既然我們假設它存在,那麼它就是真的存在了,既然真的存在,最大似然函數當然要考慮上它,這才是真正的「存在就是最合理的」,是連同隱變數一起最合理才對

而事實上這種處理不僅具有理論意義,它還極大簡化了 EM 演算法的推導,而如果採用邊緣分布最大似然的做法,我們就無法直觀地理解那個 Q 函數的來源了。

最後,可能有讀者「異想天開」:那麼參數 θ 是不是也可以看作一個隱變數呢?恭喜你,如果你有這層領悟,那你已經進入貝葉斯學派的思維範疇了。

貝葉斯學派認為,一切都是隨機的,一切都服從某個概率分布,參數 θ 也不例外。不過很遺憾,貝葉斯學派的概率理論很艱深,我們這裡還沒法派上用場。

EM演算法

好了,不再廢話了,還是正式進入對 EM 演算法的討論吧。

再變變變

以式 (6) 的模型為例,假設我們只有 X 的數據,沒有對應的標籤 Y,這時候 Y 是隱變數,但我們還是要算整體的最大似然,也就是前面的 (16) 式:

這時候我們依然沒有解決的問題是:我們不知道 p?(X,Y),甚至 p?(X) 我們也可能不知道(但我們可以算關於它的期望)。那好吧,將式子做一下變換:

這裡的 ?? 是對X 求的期望。現在好像有點意思了,然而並沒有什麼用,因為 p?(Y|X) 還是未知的。

EM大佬來了

這時候,大佬就發話了:先當它已知的吧,那麼我們就可以算參數 θ 了:

然後根據算出來的結果再去更新 p?(Y|X) 就是了,根據定義:

所以:

就讓它們交替更新吧。現在來看看 (18) 式,有個 E(求期望),又有個 M(argmax),就叫它 EM 演算法吧,那個被 E 的式子,我們就叫它 Q 函數好了。於是 EM 大佬就這樣出來了,Q函數也出來了,就這麼任性。

當然,EM 演算法中的 E 的本意是將:

看成是對隱變數 Y 求期望,這裡我們就隨意一點的,結論沒錯就行。

是不是感覺很突然?感覺啥也沒做,EM 演算法就這麼兩句話說清楚了?還包括了推導?

究竟在做啥

對於 pLSA 或者其他含有因變數的模型的 EM 演算法,也可以類似地推導。對比目前我能找到的 EM 演算法的推導,我相信上面的過程已經是相當簡潔了。儘管前面很多鋪墊,但其實都是基礎知識而已。

那這是如何實現的呢?回顧整個過程,其實我們也沒做什麼,只是堅持使用聯合隱變數的整體分布的最大似然,然後該化簡的就化簡,最終關於隱變數部分沒法化簡,那就迭代吧,迭著迭著就出來了

這樣子得到的推導,比從邊緣分布的最大自然出發,居然直接快捷了很多,也是個驚喜。

一致的理解

本文是作者對最大似然原理的一番思考,整體思路是從最大似然的原理和形式出發,來誘導出有監督/無監督學習的一些結果,希望能用一個統一的思想將各種相關內容都串起來。

最後發現結果也挺讓人滿意的,尤其是 EM 演算法部分,以後只需要記住一切的根本都是(聯合)分布的最大似然,再也不用死記 EM 演算法中的 Q 函數形式了。

當然,文章有些觀點都是「我認為」的,因此可能有不當之處,請讀者甄別。不過可以保證的是結果跟現有的都是一樣的。

本文由 AI 學術社區 PaperWeekly 精選推薦,社區目前已覆蓋自然語言處理、計算機視覺、人工智慧、機器學習、數據挖掘和信息檢索等研究方向,點擊即刻加入社區

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智慧前沿論文成果的學術平台。如果你研究或從事 AI 領域,歡迎在公眾號後台點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。

微信公眾號:PaperWeekly

新浪微博:@PaperWeekly


推薦閱讀:

不用很麻煩很累,三分鐘看懂「三大學習」
【純乾貨】無監督核心聚類演算法

TAG:無監督學習 | 深度學習DeepLearning | 有監督學習 |