如圖1,圖中的點在我們看來明顯分成兩個聚類。這兩個聚類中的點分別通過兩個不同的正態分布隨機生成而來。但是如果沒有GMM,那麽只能用壹個的二維高斯分布來描述圖1中的數據。圖1中的橢圓即為二倍標準差的正態分布橢圓。這顯然不太合理,畢竟肉眼壹看就覺得應該把它們分成兩類。
這時候就可以使用GMM了!如圖2,數據在平面上的空間分布和圖1壹樣,這時使用兩個二維高斯分布來描述圖2中的數據,分別記為N(μ1,Σ1)和N(μ2,Σ2) 。圖中的兩個橢圓分別是這兩個高斯分布的二倍標準差橢圓。可以看到使用兩個二維高斯分布來描述圖中的數據顯然更合理。實際上圖中的兩個聚類的中的點是通過兩個不同的正態分布隨機生成而來。如果將兩個二維高斯分布N(μ1,Σ1)和N(μ2,Σ2) 合成壹個二維的分布,那麽就可以用合成後的分布來描述圖2中的所有點。最直觀的方法就是對這兩個二維高斯分布做線性組合,用線性組合後的分布來描述整個集合中的數據。這就是高斯混合模型(GMM)。
高斯混合模型(GMM)的數學表示:
期望極大(Expectation Maximization)算法,也稱EM算法,是壹種叠代算法,由Dempster et. al 在1977年提出,用於含有隱變量的概率參數模型的極大似然估計。
EM算法作為壹種數據添加算法,在近幾十年得到迅速的發展,主要源於當前科學研究以及各方面實際應用中數據量越來越大的情況下,經常存在數據缺失或者不可用的的問題,這時候直接處理數據比較困難,而數據添加辦法有很多種,常用的有神經網絡擬合、添補法、卡爾曼濾波法等,但是EM算法之所以能迅速普及主要源於它算法簡單,穩定上升的步驟能相對可靠地找到“最優的收斂值”。
(個人的理解就是用含有隱變量的含參表達式不斷擬合,最終能收斂並擬合出不含隱變量的含參表達式)
模型的EM訓練過程,直觀的來講是這樣:我們通過觀察采樣的概率值和模型概率值的接近程度,來判斷壹個模型是否擬合良好。然後我們通過調整模型以讓新模型更適配采樣的概率值。反復叠代這個過程很多次,直到兩個概率值非常接近時,我們停止更新並完成模型訓練。現在我們要將這個過程用算法來實現,所使用的方法是模型生成的數據來決定似然值,即通過模型來計算數據的期望值。通過更新參數μ和σ來讓期望值最大化。這個過程可以不斷叠代直到兩次叠代中生成的參數變化非常小為止。該過程和k-means的算法訓練過程很相似(k-means不斷更新類中心來讓結果最大化),只不過在這裏的高斯模型中,我們需要同時更新兩個參數:分布的均值和標準差.[3]
GMM常用於聚類。如果要從 GMM 的分布中隨機地取壹個點的話,實際上可以分為兩步:首先隨機地在這 K 個 Component 之中選壹個,每個 Component 被選中的概率實際上就是它的系數Πk ,選中 Component 之後,再單獨地考慮從這個 Component 的分布中選取壹個點就可以了──這裏已經回到了普通的 Gaussian 分布,轉化為已知的問題。
根據數據來推算概率密度通常被稱作 density estimation 。特別地,當我已知(或假定)概率密度函數的形式,而要估計其中的參數的過程被稱作『參數估計』。
(推導和叠代收斂過程這裏省略,可參考資料1)
壹個實際的例子:用GMM對iris數據集進行聚類,並通過make_ellipses表示出來
make_ellipses方法概念上很簡單,它將gmm對象(訓練模型)、坐標軸、以及x和y坐標索引作為參數,運行後基於指定的坐標軸繪制出相應的橢圓圖形。
在特定條件下,k-means和GMM方法可以互相用對方的思想來表達。在k-means中根據距離每個點最接近的類中心來標記該點的類別,這裏存在的假設是每個類簇的尺度接近且特征的分布不存在不均勻性。 這也解釋了為什麽在使用k-means前對數據進行歸壹會有效果。高斯混合模型則不會受到這個約束 ,因為它對每個類簇分別考察特征的協方差模型。
K-means算法可以被視為高斯混合模型(GMM)的壹種特殊形式。 整體上看,高斯混合模型能提供更強的描述能力,因為聚類時數據點的從屬關系不僅與近鄰相關,還會依賴於類簇的形狀。n維高斯分布的形狀由每個類簇的協方差來決定。在協方差矩陣上添加特定的約束條件後,可能會通過GMM和k-means得到相同的結果。
在k-means方法中使用EM來訓練高斯混合模型時對初始值的設置非常敏感。而對比k-means,GMM方法有更多的初始條件要設置。實踐中不僅初始類中心要指定,而且協方差矩陣和混合權重也要設置。可以運行k-means來生成類中心,並以此作為高斯混合模型的初始條件。由此可見並兩個算法有相似的處理過程,主要區別在於模型的復雜度不同。
高斯混合模型的基本假設是 已知類別的比例 和 類別的個數 ,但是不知道每個樣例的具體標簽,據此用EM的模式為每個樣本進行最優的標註。也就是說它適合的是 無標簽學習的分類問題 ,並且需要已知基本假設。
整體來看,所有無監督機器學習算法都遵循壹條簡單的模式:給定壹系列數據,訓練出壹個能描述這些數據規律的模型(並期望潛在過程能生成數據)。 訓練過程通常要反復叠代,直到無法再優化參數獲得更貼合數據的模型為止。
1/developer/news/231599 機器學習中的數學(4)-EM算法與高斯混合模型(GMM)
3/p/31103654 壹文詳解高斯混合模型原理