iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 27
0

昨天的kmean在預測時,就是一筆資料 x 進來,我就告訴你他是哪一群的。而今天要跟大家介紹的GMM(Gauusian Mixture Model)則是會告訴你這筆資料各個類別的機率分別是多少,也就是

這裡的 pi_k 就是他屬於 k 這個類別的機率值,pi 全部加起來會是 1 ,這邊就是我們導入潛在變數的時候了,我們導入 向量 z ,有 k 項,其中

並且建立 pi 與 z 的關係

所以我們就可以把 z 的機率寫成

有了 z 之後,我們可以把 p(x) 表示成與 z 有關的條件機率

就可以寫成

有了 z 自己的機率以及 (x | z)的條件機率,我們就寫出把 z 全部考慮近來的 p(x)

且這個表示與第一個式子等價,這樣做雖然看起來沒什麼意義,不過是為了導入EM演算法。另外就是可以拿來利用簡單的貝氏定理推導求出

這個值我們特別寫作,有看過遊戲王就知道那個很像r的念Gamma。

接著既然要EM,我們寫下對於某一組資料他的log likelihood

要最大化這個東西,當然還是老梗令對 mu ,sigma 跟 pi的微分等於零,可以得到



其中

看起來就這樣了,幹麻EM,不過其實再仔細看一下會發現,雖然好像有封閉解,不過其實裡面的參數是互相關聯的,要算mu sigma 或是 pi 都需要 gamma,而算gamma 又需要他們三個參數,所以這無法一步到位算完。這也是為什麼需要EM演算法。

而EM在GMM這邊的流程會是

  • 初始化mu sigma pi
  • E step : 固定mu sigma pi,算gamma
  • M step : 以新gamma算 mu,以新算出來的 mu 算 sigma,算pi
  • 計算log likelihood,收斂停止,否則繼續EM

以上就是以EM演算法進行GMM的流程,明天我們來實做一次Kmean與GMM,接下來再跟大家繼續介紹EM演算法。


上一篇
EM - 前言 與 Kmeans
下一篇
EM - EM in general
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30

尚未有邦友留言

立即登入留言