如何用高斯混合模型 GMM 做聚類
當我們在做聚類任務時,
如果每一類的分佈已知的話,那麼要求出每個樣本屬於哪一類,
只需要計算出它歸屬於 k 個不同簇的概率,然後選擇概率值最高的那個簇作為它最終的歸屬即可。

但很多時候,樣本分佈的引數乃至概率密度函式的形式都是未知的
這時,我們通過設定一個目標,在優化目標的時候求出這些未知的引數。
在聚類這個問題中,我們希望達到的目標是:
第 i 個樣本 x(i) 之所以被歸屬到了第 k 個簇,是因為 它在這一類的概率是所有類中概率最大的。
所以目標為最大化樣本集的集體概率:

這其實是一個似然函式,要優化它,可以用極大化對數似然函式的方法,所以取對數。
這裡面的每個 ϕ 都是一個獨立的概率密度函式形式,而 θ 是對應的引數集合,
這時 K 個分模型的概率分佈都不相同——每個概率密度函式的形式不同,對應引數集合不同,引數本身又都是未知的,如果直接求解就會非常困難,
所以,這時我們可以把所有的 ϕ 都當作高斯分佈即可。也就是說這些樣本分屬的模型對應的概率密度函式形式相同,引數型別也相同,只是引數的具體取值有所差別:

高斯分佈(Gaussian Distribution),又名正態分佈(Normal distribtion),它的密度函式如上圖公式所示。
現實生活中的許多自然現象都被發現近似地符合高斯分佈,比如人類的壽命、身高、體重等,在金融、科研、工業等各個領域都有大量現實業務產生的資料被證明是符合高斯分佈的。
這時就用到了 高斯混合模型(GMM),
就是將若干個概率分佈為高斯分佈的分模型混合在一起的模型。
之所以可以把所有的 ϕ 都當作高斯分佈,
是高斯分佈有一個非常重要的性質:中心極限定理
中心極限定理:
在適當的條件下,大量相互獨立的隨機變數的均值經適當標準化後,依分佈收斂於高斯分佈,
即無論 xi 的自身分佈是什麼,隨著 n 變大,這些樣本平均值經過標準化處理—後的分佈,都會逐步接近高斯分佈。
有了這個定理,當我們遇到一個問題的時候,如果對某一變數做定量分析時其確定的分佈情況未知,只要掌握了大量的觀測樣本,都可以按照服從高斯分佈來處理這些樣本。
例如我們要做一個聚類任務,無論原本每一簇自身的分佈如何,我們都可以用高斯模型來近似表示它們。這個混合模型,就可以是一個高斯混合模型(GMM)
GMM 的學習目標為:

x(i) 是已經觀測到的樣本觀測資料,是已知的,zik 是未知的。
因為有沒被觀測到的隱變數存在,這樣的對數似然函式需要用 EM 演算法來優化。
用 EM 演算法學習 GMM 的引數分為4步:
各引數取初始值開始迭代;
E 步;
M 步;
重複 E 步和 M 步,直到收斂
E 步的任務是求 Q
M 步的任務是求 arg max Q

在 E 步,求出了 zik,代入 Q,得到 Q 只和引數 α,μ,σ 有關,
在 M 步,通過分別對各個自變數求偏導,再令導數為0,來求取 α,μ,σ 的極值點,
然後再帶回到函式中去求整體 arg max Q 的值。