iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 29
0

前面看了Kmean跟GMM,所以 EM 到底是什麼呢?我們今天就來看一下比較general一點的介紹

我們現在有一組資料 x 們,他們的參數是theta們,潛在變數們就寫成 Z,我們就可以把log likelihood寫成

接著我們做一個很簡單但是很神奇的動作,就是除q(z)再乘q(z)

這樣一來我就可以把log裡面變成期望值了,再利用log是concave的性質就可以寫成

而右邊那個式子我們就寫作 L(q, theta)

可以看到log likelihood一定會大於 L ,所以這是一個lower bound。那他跟真正的log likelihood會差多少呢?就是簡單的相減,我們先把 L 重新拆開

然後相減

用個小技巧,因為q(z)是機率值,全部相加會是一,所以把他乘上log likelihood

可以得到

log相減就是相除,所以

這就是KL散度

所以我們就可以把log likelihood寫成

那EM就分別是

  • E step : 給定 theta , 求 q
    ,如此可使KL散度最小。
  • M step : 給定 q(就是下面的p) , 求theta

示意圖如下(圖片出自 prml: p451)

所以EM流程的意思就是,先有一個theta,即可算出一個 p ,接著讓 q = p,使KL散度最小(也就是提昇至紅線高度),有了 q 與舊的theta,我們就可以透過最大化 L ,得到一個新的 theta(也就是提昇至新的藍線高度),由於KL散度必定大於等於零,所以確定這樣的反覆作業一定會收斂。

這就是EM演算法的大致的想法,而各種應用的演算法都只是以此為基礎建立的,只要你的模型設定好潛在變數,基本上就可以用了,例如之前的GMM,他的潛在變數就是那個 z ,而以此所推出來的就是 gamma!所以可以看到在GMM中,我們固定gamma更新參數,再固定參數更新gamma,這就是EM演算法的一個實踐!

然而 z 不一定會像GMM中只是一個二元的,或是只有一個,而是可能會有很多很多實數值,所以這個

在高維度的情況下很難計算,於是之後則有了Approximate inference去近似計算,然而這個部份篇幅有限,就不繼續介紹了,有興趣的朋友可以看PRML第十章,有相當完整的介紹!


上一篇
EM - 動手做做看 GMM篇
下一篇
結語 - 機器學習你也可以
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30

尚未有邦友留言

立即登入留言