GMM及EM算法
標籤(空格分隔): 機器學習
前言:
* EM(Exception Maximizition) – 期望最大化算法,用於含有隱變量的概率模型參數的極大似然估計;
* GMM(Gaussian Mixture Model) – 高斯混合模型,是一種多個高斯分佈混合在一起的模型,主要應用EM算法估計其參數;
* 本篇博客首先從簡單的k-means算法給出EM算法的迭代形式,然後用GMM的求解過程給出EM算法的宏觀認識;最後給出EM的標準形式,並分析EM算法爲什麼收斂。
K-Means Clustering
目標函數(損失函數)
EM過程
- 隨機初始化樣本中心點,即均值
μk . - E step: 固定均值
μk ,用rnk 最小化目標函數J。 - M step: 固定
rnk ,用μk 最小化目標函數J。 - 不斷迭代,直至收斂。
Gaussian Mixture Model
將高斯混合模型看成是高斯分量的簡單線性疊加,目標是提供一類比單獨高斯分佈更強大的概率模型。
- 假設有K個高斯分佈構成了數據X,則其概率分佈爲:
p(x)=∑Kk=1πkN(x|μk,Σk) .
其中,數據點x屬於第k個高斯分佈的概率爲πk ,則有0≤πk≤1,∑Kk=1πk=1 - x的邊緣概率分佈爲
p(x)=∑Kk=1πkN(x|μk,Σk)
極大似然求解
對數似然函數爲:
其中,
關於μk 使對數似然函數最大:
兩邊同時乘以
記
關於Σk 使對數似然最大:
關於混合係數πk 使對數似然函數最大:
由於所有混合係數的和爲1,即滿足
對
兩邊同乘
對k = 1,..,K求和,得:
所以
EM
期望最大化EM算法的標準形式:
- E-step:來自第j個組份的概率
xij=Qi(zi=j)=p(zi=j|xi;Φ,μ,Σ)
- S-step:估計每個組份的參數。
∑mi=1∑z(i)Qi(z(i))logP(xi,zi;Φ,μΣ)Qi(z(i))
隱變量的視角解釋GMM
有時模型內既存在觀測變量(observable variable),又存在隱變量(latent variable). 當存在隱變量時,直接使用極大似然法或者貝葉斯估計模型參數就比較困難。而EM算法的目標是找到具有潛在變量的模型的最大似然解。
圖模型:
- 記所有的觀測數據的集合爲
X=x1,x2,...,xn , 所有隱變量的集合爲Z=z1,z2,...,zk ,模型所有參數的集合爲θ .
則對數似然函數爲:
lnp(X|θ)=ln{∑zp(X,Z|θ)} ; - 但是由於對數似然內部存在求和符號,所以一般情況下邊緣概率分佈
p(X|θ) 一定不是指數族函數,從而使得對數似然的形式變複雜了; - 將
{X,Z} 數據集稱爲完全(complete)數據集,稱實際觀測數據集{X} 爲不完全(incomplete)數據集.一般我們所擁有的數據集只有不完全數據集。 - E-step: 使用當前的參數
θold 計算隱變量的後驗概率p(Z|Z,θold) ,然後計算完全數據(X,Z)對數似然對於參數值θ 的期望:
Q(θ,θold)=∑zp(Z|X,θold)lnp(X,Z|θ) ; M-step: 通過最大化Q函數更新模型參數
θ :
θnew=argmaxθQ(θ,θold) 引入隱變量z
用1-of-K的形式表示K維的二元隨機變量z,
zk∈{0,1}並且∑Kk=1=1 ,則p(zk=1)=πk ,z的概率分佈可以表示爲:
p(z)=ΠKk=1πzkk ;- 在給定隱變量z的條件下x的條件概率分佈爲:
p(x|z)=ΠKk=1N(x|μk,Σk)zk - 完全數據(X,Z)的似然函數爲:
p(X,Z|π,μ,Σ)=P(X|Z,π,μ,Σ)·P(Z|π,μ,Σ) =ΠNn=1ΠKk=1πznkkN(xn|μk,Σk)znk - 完全數據(X,Z)取對數,得到對數似然:
lnP(X,Z|π,μ,Σ)=∑Nn=1∑Kk=1znk(lnπk+lnN(xn|μk,Σk)) (1) 不完全數據(X)的對數似然爲:
lnP(X|π,μ,Σ)=∑Nn=1ln{∑Kk=1πkN(xn|μk,Σk)} (2) 對比完全數據的對數似然函數(1)式和不完全數據的對數似然(2)式,可以發現,對於(1)式,log運算放到了裏面,而高斯分佈是指數族函數,所以大大簡化了計算量。
計算隱變量z的條件概率:
p(Z|X,π,μ,Σ)=p(Z,X|π,μ,Σ)p(X|π,μ,Σ) =ΠNn=1ΠKk=1[πkN(xn|μk,Σk)]znk - 對
znk 求期望:
EM process:
Initilization:
First, choose some initial values for the means
E-Step:
Use the current values for the parameters
M-step:
Re-estimate the means
Evaluate the log likelihood
and check for convergence of either the parameters or the log likelihood.
GMM與K-Means的關係
K-Means對數據點進行了硬分配,即每個數據點只屬於唯一的聚類;
而GMM應用EM算法,進行了軟分配。
- 考慮一個GMM,設所有混合分量的協方差矩陣爲
ϵI ,則
p(x|μk,Σk)=1(2πϵ)D2exp{−12ϵ||x−μk||2} - 一個數據點屬於一個分量的responsibility爲:
- 當
ϵ→0 , 分子分母中只有當某項||xn−μj||2→0 時,整個式子的極限才存在。因此在這種極限情況下,GMM會將一個數據點分配給距它最近的那個中心點所在的簇類中。
- 當
- 當
ϵ→0 ,完全數據的對數似然函數爲:
- 這就退化爲K-means的損失函數(目標函數)。
因此,K-means沒有估計聚類的協方差,只是估計了聚類的均值。當GMM的方差取極限時,就退化成了k-means算法。
K-means是GMM的方差取爲0的極限情況。
Exception Maximizition
期望最大化EM算法的標準形式:
Input: Observed variables X, latent variables Z, parameters
θ , and joint distributionp(X,Z|θ) .
Goal: maxizimize the likelihood functionp(X|θ) .
Output: parametersθ .
1. Choose an initial setting for the parametersθold .
2. E step CalculateQ(θ,θold)=∑zp(Z|X,θold)lnp(X,Z|θ) .
3. M step Evaluateθnew given byθnew=argmaxθQ(θ,θold) .
4. Check for convergence of either the log likelihood or the parameter values.
爲什麼EM算法是可以收斂的
EM算法,是尋找具有潛在變量的概率模型的最大似然解的一種通用的方法.所以,在含有隱變量z的情況下,我們的目標是:最大化似然函數:
- 直接優化
p(X|θ) 是困難的,但是優化完整數據的似然p(X,Z|θ) 就容易的多。
所以,我們引入隱變量的分佈
因爲KL散度總是大於等於0,所以
L(q,θ) 可以看做是對數似然的下界。因此EM算法的思想就是:找到似然函數的一個下界,用這個簡單的下界來逼近最終的對數似然。
E step: 保持
θ 固定,L(q,θold) 關於q(z)的最大化。實際是求對z的期望。如下圖所示,期望爲:當KL(q||p)=0 (即p = q)時,L(q,θold) 與對數似然相等。
M step: 保持
q(z) 固定,更新參數θ ,使得L(q,θold) 關於θ 求最大值。對每個參數求偏導,然後令偏導爲0. 由於KL(q||p)>0 , 因此lnp(X|θ) 增加量一定大於其下界L(q,θ) 的增大量。
- 通過E step 和 M step不斷迭代的過程,如果目標不完全數據的對數似然
lnp(X|θ) 存在最大值,則EM算法一定能夠找到。 - EM算法對參數初值的選擇是敏感的,不同的參數往往會收斂到不同的結果。因此在實際應用中,應該設置幾組參數,然後選擇一組最好的結果。
關於EM算法導出的幾點說明
- 在[李航,2012]中,使用
ln(θ)−∈(θold) 推導出似然函數的下界。然後每次迭代用下界逼近似然的極大值; - 在PRML中,將完全數據的似然函數
L(Z,X|θ) 拆分爲 下界 +KL(q||p) 的形式,依然是使用下界逼近目標函數的極大值。
[參考文獻]
1 M. Jordan, J. Kleinberg, ect. Pattern Recognition and Machine Learning. 2006
2 李航,統計學習方法,清華大學出版社,2012.