介紹一個EM算法的應用例子:高斯混合模型參數估計。
高斯混合模型
高斯混合模型(Gaussian Mixture Model, GMM)是由多個高斯分布組成的模型,其密度函數為多個高斯密度函數的加權組合。
這里考慮一維的情況。假設樣本 x是從 K 個高斯分布中生成的。每個高斯分布為
其中 µk 和 σk 分別為第 k 個高斯分布的均值和方差。
高斯混合模型 的圖表示
高斯混合模型的概率密度函數為
高斯混合模型的生成過程可以分為兩步:
- 1. 首先按 π1, π2, · · · , πK 的分布,隨機選取一個高斯分布(抽取的樣本滿足權重系數的分布);
- 2. 假設選中第 k 個高斯分布,再從高斯分布 N (x|µk, σk)中選取一個樣本 x。
參數估計
給定 N 個由高斯混合模型生成的訓練樣本 x(1), x(2), · · · , x(N),希望能學習其中的參數πk, µk, σk, 1 ≤ k ≤ K。由於我們無法觀測樣本x(n) 是從哪個高斯分布生成的,因此無法直接用最大似然來進行參數估計(含有隱變量)。我們引入一個隱變量z(n) ∈ [1, K]來表示其來自於哪個高斯分布, z(n) 服從多項分布,其多項分布的參數為 π1, π2, · · · , πK,即
對每個樣本 x(n),其對數邊際分布為
根據 EM算法,參數估計可以分為兩步進行迭代:
高斯混合模型的參數學習過程
給定一組數據,假設我們用兩個高斯分布來估計這組數據的分布情況。
代碼實現:待補充???