1、什么是高斯混合模型[1]
高斯混合模型(Gaussian Mixed Model)指的是多個高斯分布函數(shù)的線性組合,理論上GMM可以擬合出任意類型的分布银亲,通常用于解決同一集合下的數(shù)據(jù)包含多個不同的分布的情況(或者是同一類分布但參數(shù)不一樣,或者是不同類型的分布族扰,比如正態(tài)分布和伯努利分布)。
如圖1定欧,圖中的點在我們看來明顯分成兩個聚類渔呵。這兩個聚類中的點分別通過兩個不同的正態(tài)分布隨機生成而來。但是如果沒有GMM砍鸠,那么只能用一個的二維高斯分布來描述圖1中的數(shù)據(jù)扩氢。圖1中的橢圓即為二倍標準差的正態(tài)分布橢圓。這顯然不太合理爷辱,畢竟肉眼一看就覺得應該把它們分成兩類录豺。
這時候就可以使用GMM了!如圖2饭弓,數(shù)據(jù)在平面上的空間分布和圖1一樣双饥,這時使用兩個二維高斯分布來描述圖2中的數(shù)據(jù),分別記為N(μ1,Σ1)和N(μ2,Σ2) 弟断。圖中的兩個橢圓分別是這兩個高斯分布的二倍標準差橢圓咏花。可以看到使用兩個二維高斯分布來描述圖中的數(shù)據(jù)顯然更合理阀趴。實際上圖中的兩個聚類的中的點是通過兩個不同的正態(tài)分布隨機生成而來昏翰。如果將兩個二維高斯分布N(μ1,Σ1)和N(μ2,Σ2) 合成一個二維的分布,那么就可以用合成后的分布來描述圖2中的所有點刘急。最直觀的方法就是對這兩個二維高斯分布做線性組合棚菊,用線性組合后的分布來描述整個集合中的數(shù)據(jù)。這就是高斯混合模型(GMM)叔汁。
高斯混合模型(GMM)的數(shù)學表示:
2统求、什么是EM算法[2]
期望極大(Expectation Maximization)算法检碗,也稱EM算法,是一種迭代算法球订,由Dempster et. al 在1977年提出,用于含有隱變量的概率參數(shù)模型的極大似然估計瑰钮。
EM算法作為一種數(shù)據(jù)添加算法冒滩,在近幾十年得到迅速的發(fā)展,主要源于當前科學研究以及各方面實際應用中數(shù)據(jù)量越來越大的情況下浪谴,經(jīng)常存在數(shù)據(jù)缺失或者不可用的的問題开睡,這時候直接處理數(shù)據(jù)比較困難,而數(shù)據(jù)添加辦法有很多種苟耻,常用的有神經(jīng)網(wǎng)絡擬合篇恒、添補法、卡爾曼濾波法等凶杖,但是EM算法之所以能迅速普及主要源于它算法簡單胁艰,穩(wěn)定上升的步驟能相對可靠地找到“最優(yōu)的收斂值”。
(個人的理解就是用含有隱變量的含參表達式不斷擬合智蝠,最終能收斂并擬合出不含隱變量的含參表達式)
模型的EM訓練過程腾么,直觀的來講是這樣:我們通過觀察采樣的概率值和模型概率值的接近程度,來判斷一個模型是否擬合良好杈湾。然后我們通過調(diào)整模型以讓新模型更適配采樣的概率值解虱。反復迭代這個過程很多次,直到兩個概率值非常接近時漆撞,我們停止更新并完成模型訓練∨固現(xiàn)在我們要將這個過程用算法來實現(xiàn),所使用的方法是模型生成的數(shù)據(jù)來決定似然值浮驳,即通過模型來計算數(shù)據(jù)的期望值悍汛。通過更新參數(shù)μ和σ來讓期望值最大化。這個過程可以不斷迭代直到兩次迭代中生成的參數(shù)變化非常小為止至会。該過程和k-means的算法訓練過程很相似(k-means不斷更新類中心來讓結(jié)果最大化)员凝,只不過在這里的高斯模型中,我們需要同時更新兩個參數(shù):分布的均值和標準差.[3]
3奋献、GMM和EM的使用[1,3]
GMM常用于聚類健霹。如果要從 GMM 的分布中隨機地取一個點的話,實際上可以分為兩步:首先隨機地在這 K 個 Component 之中選一個瓶蚂,每個 Component 被選中的概率實際上就是它的系數(shù)Πk 糖埋,選中 Component 之后,再單獨地考慮從這個 Component 的分布中選取一個點就可以了──這里已經(jīng)回到了普通的 Gaussian 分布窃这,轉(zhuǎn)化為已知的問題瞳别。
根據(jù)數(shù)據(jù)來推算概率密度通常被稱作 density estimation 。特別地,當我已知(或假定)概率密度函數(shù)的形式祟敛,而要估計其中的參數(shù)的過程被稱作『參數(shù)估計』疤坝。
(推導和迭代收斂過程這里省略,可參考資料1)
一個實際的例子:用GMM對iris數(shù)據(jù)集進行聚類馆铁,并通過make_ellipses表示出來
make_ellipses方法概念上很簡單跑揉,它將gmm對象(訓練模型)、坐標軸埠巨、以及x和y坐標索引作為參數(shù)历谍,運行后基于指定的坐標軸繪制出相應的橢圓圖形。
4辣垒、k-means和GMM的關(guān)系[3]
在特定條件下望侈,k-means和GMM方法可以互相用對方的思想來表達。在k-means中根據(jù)距離每個點最接近的類中心來標記該點的類別勋桶,這里存在的假設是每個類簇的尺度接近且特征的分布不存在不均勻性脱衙。這也解釋了為什么在使用k-means前對數(shù)據(jù)進行歸一會有效果。高斯混合模型則不會受到這個約束例驹,因為它對每個類簇分別考察特征的協(xié)方差模型岂丘。
K-means算法可以被視為高斯混合模型(GMM)的一種特殊形式。整體上看眠饮,高斯混合模型能提供更強的描述能力奥帘,因為聚類時數(shù)據(jù)點的從屬關(guān)系不僅與近鄰相關(guān),還會依賴于類簇的形狀仪召。n維高斯分布的形狀由每個類簇的協(xié)方差來決定寨蹋。在協(xié)方差矩陣上添加特定的約束條件后,可能會通過GMM和k-means得到相同的結(jié)果扔茅。
在k-means方法中使用EM來訓練高斯混合模型時對初始值的設置非常敏感已旧。而對比k-means,GMM方法有更多的初始條件要設置召娜。實踐中不僅初始類中心要指定运褪,而且協(xié)方差矩陣和混合權(quán)重也要設置【寥常可以運行k-means來生成類中心秸讹,并以此作為高斯混合模型的初始條件。由此可見并兩個算法有相似的處理過程雅倒,主要區(qū)別在于模型的復雜度不同璃诀。
5、總結(jié)
高斯混合模型的基本假設是已知類別的比例和類別的個數(shù)蔑匣,但是不知道每個樣例的具體標簽劣欢,據(jù)此用EM的模式為每個樣本進行最優(yōu)的標注棕诵。也就是說它適合的是無標簽學習的分類問題,并且需要已知基本假設凿将。
整體來看校套,所有無監(jiān)督機器學習算法都遵循一條簡單的模式:給定一系列數(shù)據(jù),訓練出一個能描述這些數(shù)據(jù)規(guī)律的模型(并期望潛在過程能生成數(shù)據(jù))牧抵。訓練過程通常要反復迭代笛匙,直到無法再優(yōu)化參數(shù)獲得更貼合數(shù)據(jù)的模型為止。
【1】https://blog.csdn.net/jinping_shi/article/details/59613054? 高斯混合模型(GMM)及其EM算法的理解
【2】https://cloud.tencent.com/developer/news/231599? ? 機器學習中的數(shù)學(4)-EM算法與高斯混合模型(GMM)
【3】https://zhuanlan.zhihu.com/p/31103654? ? 一文詳解高斯混合模型原理