ML基礎:高斯混合模型是什麼?

高斯混合模型是一種概率模型,它假設所有數據點都是從有限數量的高斯分佈的混合參數中生成的。

1.高斯混合模型概念

實際上,可以將混合模型視爲對 k-means聚類算法的擴展,它包含了數據的協方差結構以及隱高斯模型中心的信息。該方法使用了高斯分佈作爲參數模型,並使用了期望最大(Expectation Maximization,簡稱EM)算法進行訓練。

2.基本原理與相關知識

2.1 高斯分佈

**高斯分佈(Gaussian distribution)經常被稱爲正態分佈(normal distribution),是一種在自然界大量存在的、最爲常見的分佈形式。**下圖是一張標準的高斯分佈曲線圖,兩頭低,中間高,左右對稱因其曲線呈鐘形,因此人們又經常稱之爲鐘形曲線:

image

高斯分佈的概率密度函數公式如下:

image

公式中包含兩個參數,參數μ表示均值,參數σ表示標準差,均值對應正態分佈的中間位置,在本例中我們可以推測均值在180cm附近。標準差衡量了數據圍繞均值分散的程度。

注意:在實踐中,概率分佈要先進行歸一化,也就是說曲線下面的面積之和需要爲1,這樣才能確保返回的概率密度在允許的取值範圍內。

2. 期望最大化算法(EM)與高斯模型訓練

模型的EM訓練過程:

  1. 觀察採樣的概率值和模型概率值的接近程度,來判斷一個模型是否擬合良好。

​2.調整模型以讓新模型更適配採樣的概率值。

3.反覆迭代這個過程很多次,直到兩個概率值非常接近時,我們停止更新並完成模型訓練。

模型生成的數據來決定似然值,即通過模型來計算數據的期望值。通過更新參數μ和σ來讓期望值最大化。這個過程可以不斷迭代直到兩次迭代中生成的參數變化非常小爲止。該過程和k-means的算法訓練過程很相似(k-means不斷更新類中心來讓結果最大化),只不過在這裏的高斯模型中,需要同時更新兩個參數:分佈的均值和標準差

3. 高斯混合模型實際案例

雖然GMM經常用於聚類,但我們可以將獲得的聚類與數據集中的實際類別進行比較。我們用訓練集中的類的均值初始化高斯矩陣的均值,以使這種比較有效。

image

image

image

image

image

image

4. k-means和GMM的關係

在特定條件下,k-means和GMM方法可以互相用對方的思想來表達。在k-means中根據距離每個點最接近的類中心來標記該點的類別,這裏存在的假設是每個類簇的尺度接近且特徵的分佈不存在不均勻性。這也解釋了爲什麼在使用k-means前對數據進行歸一會有效果。高斯混合模型則不會受到這個約束,因爲它對每個類簇分別考察特徵的協方差模型。

**K-means算法可以被視爲高斯混合模型(GMM)的一種特殊形式。**整體上看,高斯混合模型能提供更強的描述能力,因爲聚類時數據點的從屬關係不僅與近鄰相關,還會依賴於類簇的形狀。n維高斯分佈的形狀由每個類簇的協方差來決定。在協方差矩陣上添加特定的約束條件後,可能會通過GMM和k-means得到相同的結果。

實踐中如果每個類簇的協方差矩陣綁定在一起(就是說它們完全相同),並且矩陣對角線上的協方差數值保持相同,其他數值則全部爲0,這樣能夠生成具有相同尺寸且形狀爲圓形類簇。在此條件下,每個點都始終屬於最近的中間點對應的類。

在k-means方法中使用EM來訓練高斯混合模型時對初始值的設置非常敏感。而對比k-means,GMM方法有更多的初始條件要設置。實踐中不僅初始類中心要指定,而且協方差矩陣和混合權重也要設置。可以運行k-means來生成類中心,並以此作爲高斯混合模型的初始條件。由此可見並兩個算法有相似的處理過程,主要區別在於模型的複雜度不同。

**整體來看,所有無監督機器學習算法都遵循一條簡單的模式:給定一系列數據,訓練出一個能描述這些數據規律的模型(並期望潛在過程能生成數據)。**訓練過程通常要反覆迭代,直到無法再優化參數獲得更貼合數據的模型爲止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章