昨天的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這邊的流程會是
以上就是以EM演算法進行GMM的流程,明天我們來實做一次Kmean與GMM,接下來再跟大家繼續介紹EM演算法。