當前位置:編程學習大全網 - 源碼下載 - 05 EM算法 - 高斯混合模型 - GMM

05 EM算法 - 高斯混合模型 - GMM

04 EM算法 - EM算法收斂證明

GMM (Gaussian Mixture Model, 高斯混合模型)是指該算法由多個高斯模型線性疊加混合而成。每個高斯模型稱之為component。

GMM算法 描述的是數據的本身存在的壹種分布,即樣本特征屬性的分布,和預測值Y無關。顯然GMM算法是無監督的算法,常用於聚類應用中,component的個數就可以認為是類別的數量。

回到昨天說的例子:隨機選擇1000名用戶,測量用戶的身高;若樣本中存在男性和女性,身高分別服從高斯分布N(μ1,σ1)和N(μ2,σ2)的分布,試估計參數:μ1,σ1,μ2,σ2;

1、如果明確的知道樣本的情況(即男性和女性數據是分開的),那麽我們使用極大似然估計來估計這個參數值。

2、如果樣本是混合而成的,不能明確的區分開,那麽就沒法直接使用極大似然估計來進行參數的估計。

我們可以認為當前的1000條數據組成的集X,是由兩個高斯分布疊加而成的(男性的分布和女性的分布)。

如果能找到壹種辦法把每壹個高斯分布對應的參數π、 μ、σ求出來,那麽對應的模型就求解出來了。

如果模型求解出來後,如何對數據進行聚類?

這個公式求出來的分別是男性和女性身高分布的概率密度,如果把π、 μ、σ都求出來,以後我們可以構建出壹個 能夠根據樣本特征 計算出樣本屬於男性或女性的可能性。

實際做樣本分類的時候,我們把樣本X的特征x1~xn分別代入兩個公式中,求出來的兩個結果分別是:樣本X的性別是男、是女的可能性。如果是男的可能性大於是女的可能性,我們就把樣本X歸入男性的分類。

假定 GMM 由k個Gaussian分布線性疊加而成,那麽概率密度函數如下:

分析第1個等式:

p(x): 概率密度函數,k個Gaussian分布線性疊加而成的概率密度函數。

∑p(k)p(x|k): k個某種模型疊加的概率密度函數。

p(k): 每個模型占的權重,即上面提到的π。

p(x|k): 給定類別k後,對應的x的概率密度函數。

分析第2個等式: 目標 - 將公式寫成高斯分布的樣子。

π k : 即p(k)

p(x;μ k ,∑ k ): 多元高斯(正態)分布。有了觀測數據x後,在 給定了條件 下的高斯分布。這個 條件 1、第k個分類的均值μ k ; 2、第k個分類的方差∑ k ;

深入分析p(x;μ k ,∑ k )的參數:

如果樣本有n個特征,所有的特征x1~xn壹起服從壹個多元的高斯分布(正態分布),所有特征的均值應該是壹個向量 (μ 1 ~μ n );

μ k : 第k個分類的情況下(第k個高斯分布的情況下對應的每壹列的均值);μ k = (μ k1 ~μ kn )

∑ k : 協方差矩陣(對稱陣)。現在有n個特征,協方差矩陣是壹個n×n的矩陣。現在我們要算的是:

cov(x1,x1),cov(x1,x2),...,cov(x1,xn)

cov(x2,x1),cov(x2,x2),...,cov(x2,xn)

....

cov(xn,x1),cov(x1,x2),...,cov(xn,xn)

其中, 對角線 cov(x1,x1)、cov(x2,x2), ... ,cov(xn,xn)中,x1和x1的協方差 = x1的方差;即cov(x1,x1) = var(x1);所以 對角線上兩個特征的協方差 = 對應的特征的方差。

協方差 (Covariance)在 概率論 和 統計學 中用於衡量兩個變量的總體 誤差 。而 方差 是協方差的壹種特殊情況,即當兩個變量是相同的情況。

協方差表示的是兩個變量的總體的 誤差 ,這與只表示壹個變量誤差的 方差 不同。 如果兩個 變量 的變化趨勢壹致,也就是說如果其中壹個大於自身的期望值,另外壹個也大於自身的期望值,那麽兩個變量之間的協方差就是正值。 如果兩個變量的變化趨勢相反,即其中壹個大於自身的期望值,另外壹個卻小於自身的期望值,那麽兩個變量之間的協方差就是負值。

理解了公式後,再來看看公式在圖像上是如何體現的:

如果樣本X只有壹個特征x1,在二維的坐標系上的表示出來。特征x1是由n個單變量樣本的高斯分布疊加而成的。向量x1 k = ∑ k (x1 (1) ,x1 (2) ,~,x1 (n) ),如k=(男、女),累加男性分類下的特征高斯分布和女性分類下的高斯分布;

圖中 紅色曲線 表示原有數據的分布情況,我認為這個原有數據是由多個比較的高斯分布疊加而成的, 藍色曲線 表示單個單個高斯分布的分布情況。向量x1 = (x1 (1) ,x1 (2) ,~,x1 (n) );

PS: 藍1+藍2=紅 體現的就是公式 p(x) = ∑πp(x;μ,∑k);

在得知數據的特征 x=(x1~xn) 後,如果我們想把數據合理得聚類到壹個分類中,我們該如何去計算呢?

既然我已經得到了k個高斯分布對應的概率密度函數(現在設k=3,***3個分類),將當前特征的x=(x1~xn)代入我們的概率密度函數: p(x) = ∑πp(x;μ,∑k);

我們分別計算p(藍1)、p(藍2)、p(藍3),藍色三條線各對應k分類中的壹個,哪個數大,我認為當前的樣本該分到哪壹類。

GMM算法的兩個前提:

1、數據服從高斯分布;

2、我們人為定義了分類個數k。

問:我們人為假定了高斯分布的分類個數k,就類似於我們聚簇時分的聚簇中心個數壹樣。參數π、μ、σ該如何求出來?

答:和K-Means算法壹樣,我們可以用 EM算法 來求解這個問題。 GMM也滿足EM算法的聚類思想,首先人為得定義了聚類的個數k,從數據特征X中發掘潛在關系的壹種模型。而且我還默認數據是服從多個高斯分布的。

GMM算法中的隱含條件是:第k個模型占的權重 - 、 第k個高斯分布的情況下對應的每壹列的均值 - 、協方差矩陣 cov(xi,xj) - ;因為本質上我們是知道數據原有的分類狀況的,只是無法觀測到隱含在數據中的這些特性,使用EM的思想可以叠代得求解出這些隱含變量。

對聯合概率密度函數求對數似然函數:

對聯合概率密度函數求對數後,原本 連乘 的最大似然估計變成了 連加 的函數狀態。

EM算法求解 - E步:

套用公式後,我們可以假定隱含變量z的分布:Q(z (i) = j);

我們認為分布wj (i) = 第i個觀測值對應的隱含分類第z (i) 類; = 以(看不見的參數π、μ、∑)為參數的情況下,輸入第i觀測值的特征x後得到的分類z (i) 類;

EM算法求解 - M步:

M步第1行就是上壹章通過化簡找到 下界 的那個函數:

1、對均值求偏導:

2、對方差求偏導:

3、對概率使用拉格朗日乘子法求解:

06 EM算法 - 案例壹 - EM分類初識及GMM算法實現

  • 上一篇:求壹個用JAVA寫的登錄界面!
  • 下一篇:360智能攝像頭app怎麽下載
  • copyright 2024編程學習大全網