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

白爾摩斯發表於2018-12-31

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一起服從一個多元的高斯分佈(正態分佈),所有特徵的均值應該是一個向量 (μ1n);
μk 第k個分類的情況下(第k個高斯分佈的情況下對應的每一列的均值);μk = (μk1kn)

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)在概率論統計學中用於衡量兩個變數的總體誤差。而方差是協方差的一種特殊情況,即當兩個變數是相同的情況。

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

總結 - 公式


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

藍1 + 藍2 = 紅

如果樣本X只有一個特徵x1,在二維的座標系上的表示出來。特徵x1是由n個單變數樣本的高斯分佈疊加而成的。向量x1k = ∑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) = 紅

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


GMM演算法的兩個前提:
1、資料服從高斯分佈;
2、我們人為定義了分類個數k。

基於這兩個前提,問題遞進:

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

答:和K-Means演算法一樣,我們可以用__EM演算法__來求解這個問題。 GMM也滿足EM演算法的聚類思想,首先人為得定義了聚類的個數k,從資料特徵X中發掘潛在關係的一種模型。而且我還預設資料是服從多個高斯分佈的。

GMM演算法中的隱含條件是:第k個模型佔的權重 – $color{red}{π}$、 第k個高斯分佈的情況下對應的每一列的均值 – $color{red}{μ}$、協方差矩陣 cov(xi,xj) – $color{red}{∑k}$;因為本質上我們是知道資料原有的分類狀況的,只是無法觀測到隱含在資料中的這些特性,使用EM的思想可以迭代得求解出這些隱含變數。

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

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

EM演算法求解 – E步:

E步 - 公式

套用公式後,我們可以假定隱含變數z的分佈:Q(z(i) = j);
我們認為分佈wj(i) = 第i個觀測值對應的隱含分類第z(i)類; = 以(看不見的引數π、μ、∑)為引數的情況下,輸入第i觀測值的特徵x後得到的分類z(i)類;

EM演算法求解 – M步:
M步第1行就是上一章通過化簡找到__下界__的那個函式:

M步 - 第1行就是通過化簡找到下界的那個函式

M步 - 第1行就是昨天我們推導這些公式

M步 - 公式

一維正態分佈 - 知識補充,背出來

多維正態分佈 - 對比一維單變數時的正態分佈公式,有多少個特徵n就等於多少。k是指屬於第幾類高斯分佈。


如果要分別求解三個未知變數, 則需要對每一個未知變數求偏導。

在公式中需要求的未知量有三個

1、對均值求偏導:

求解第l個分類下均值的向量

對均值求偏導

2、對方差求偏導:

對方差求偏導

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

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


$color{red}{本章最重要的是記住下面的內容:}$

記住這三個公式

一維正態分佈 - 知識補充,背出來

多維正態分佈 - 對比一維單變數時的正態分佈公式,有多少個特徵n就等於多少。k是指屬於第幾類高斯分佈。

06 EM演算法 – 案例一 – EM分類初識及GMM演算法實現


相關文章