Statistical algorithm - 讓人著迷的EM演算法
來自專欄生物信息學-info
如何理解EM演算法?
通常來講,一堆由已知分布得到的數據,如果模型中的變數都是可以觀測到的,為了求其中的參數 ,可以直接使用極大似然估計。
然而有這麼一種情況,當模型含有隱含變數的時候,極大似然估計的計算過程就會顯得極為複雜,甚至不可解。這時候就需要用到EM演算法了,那麼,EM演算法的思想究竟是什麼呢?
這裡,推薦一篇寫的很好的博客。
如何感性地理解EM演算法?
在直觀的理解EM思想後,我下面進行公式推導。從數學上來理解EM演算法。
EM演算法的數學公式推導
假設,有一個含有隱含變數 的模型,其概率密度函數為 。現在,我們希望得到:
【備註:極大似然估計】【1】
由 【備註:邊緣分布】【2】,
則 有,
【3】
到這一步,卡住了,卡死了,公式無從展開了。
我們需要思考。如果極大似然函數如上,求導時,勢必會面臨類似 這樣的函數,它的導函數很複雜,難以求解。
說到 這樣的式子,第一反應便是均值不等式,驗證一下想法,
由 ,有,
,變形,有,
,
咦,這是什麼?這個是不是說明, 【備註:Jense不等式】【4】
當然,上述推導,Jense不等式是可以解釋的。但看到log里的連加,想變成log中的連乘,還是均值不等式比較容易聯想到。
也就是說,需要把【3】式中log里的連加變成連乘,需要構造一個期望函數。
對於【3】式,構造期望函數時,很容易想到 這樣的式子,而 是一個對於每一個z下的關於隨機變數y_j邊緣分布概率的求和公式,因此「a」是一個和z^(i)相關的分布函數,因此有概率密度函數 , 且,
現在,對於固定下來的每一個z,都能拿到z的概率密度值 ,和一個形如 這樣的式子。
根據 【備註: 是 】和【3】式,有
【5】
由於log函數在最後求導中會省略【5】式中分母下的 ,因此【5】式可簡化為,
【6】
其中, 【7】
【6】式為EM演算法中的M步,【7】式為EM演算法中的E步
每一步在做什麼呢,這裡有一個簡單的手繪圖稍作解釋,
通過每一次E步和M步的迭代,可以尋找到一個局部最優點。不同的初始值,可以找到不同的局部最優點,從而找到全局最優點。下面的文章中將會實戰伯努利分布和二項分布來演示EM演算法的使用。
推薦閱讀:
※推薦系統中的矩陣分解技術
※如何對抗「大數據殺熟」?
※你問我答之「關於人工智慧客服YiBot的一切」
※介紹一位可能過時的咖狗神器XGBoost