機器學習-EM演算法(Expectation maximization algorithm)(三)高斯混和模型Gaussian Mixture Model(GMM)
高斯混合模型顧名思義就是將 K 個高斯分布湊在一起成為一個新的機率分布。每個高斯分布出現的機率為 πk,另外每個高斯分布都有其參數 μk 及 Σk。可以寫成以下數學式子:
首先要知道高斯混合模型的參數有哪些。我們假設高斯混合模型是由 K 個高斯分布組合而成,每個高斯分布都有一組 [πk,μk,Σk],這些就是我們想要從給定資料中來估計的參數。
一般來說,參數估計我們通常都會用最大概似估計 Maximum likelihood estimation,但這個方法在高斯混合模型中並不實用,因為高斯混和模型中多了隱函數,有了每個高斯分布的權重πk的限制讓整個問題變得很複雜,因此實務上都使用 EM演算法來找出高斯混合模型的參數。EM 演算法的精神仍然是使用 Maximum likelihood,但是與 Maximum likelihood estimation 不同的是 EM 演算法是一步步去優化找到最佳的參數。
EM:
E-step:
M-step:
這邊我們有三個參數要計算(πk,μk,Σk)。
求πk:
首先我們必須將πk總和等於一的條件加入,引進Lagrange Multiplier,並重新定義目標函數(L)為:
求μk:
求Σk:
多變量常態分布最大似然估計求解參數的部分可以參考:
https://ccjou.wordpress.com/2014/06/12/%E5%A4%9A%E8%AE%8A%E9%87%8F%E5%B8%B8%E6%85%8B%E5%88%86%E5%B8%83%E7%9A%84%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%A8%88/
爲了列式方便我們令
結論:
我們可以透過K-maens先產生一組初始參數,再經由EM演算法得到的三個方程式
進行參數更新,並計算新的概似函數的值,如此不斷地迭代,不斷的更新參數,直到概似函數的值已經沒什麼變動,或迭代次數達到門檻值。