GMM及EM算法

GMM及EM算法

標籤(空格分隔): 機器學習


前言:
* EM(Exception Maximizition) – 期望最大化算法,用於含有隱變量的概率模型參數的極大似然估計;
* GMM(Gaussian Mixture Model) – 高斯混合模型,是一種多個高斯分佈混合在一起的模型,主要應用EM算法估計其參數;
* 本篇博客首先從簡單的k-means算法給出EM算法的迭代形式,然後用GMM的求解過程給出EM算法的宏觀認識;最後給出EM的標準形式,並分析EM算法爲什麼收斂。

K-Means Clustering

目標函數(損失函數)

此處輸入圖片的描述

EM過程

  1. 隨機初始化樣本中心點,即均值μk .
  2. E step: 固定均值μk ,用rnk 最小化目標函數J。
  3. M step: 固定rnk ,用μk 最小化目標函數J。
  4. 不斷迭代,直至收斂。

Gaussian Mixture Model

將高斯混合模型看成是高斯分量的簡單線性疊加,目標是提供一類比單獨高斯分佈更強大的概率模型。

  • 假設有K個高斯分佈構成了數據X,則其概率分佈爲:
    p(x)=Kk=1πkN(x|μk,Σk) .
    其中,數據點x屬於第k個高斯分佈的概率爲πk ,則有0πk1,Kk=1πk=1
  • x的邊緣概率分佈爲p(x)=Kk=1πkN(x|μk,Σk)

極大似然求解

對數似然函數爲:

lnP(X|π,μ,Σ)=Nn=1ln{Kk=1πkN(xn|μk,Σk)}
其中,N(xn|μk,Σk)=1(2π)D2|Σ|12exp{12(xnμk)TΣ1k(xnμk)}

關於μk 使對數似然函數最大:

P(X|πk,μk,Σk)μk=Nn=1πkN(xn|μk,Σk)(122Σ1k(xnμk))jπjN(xn|μj,Σj) =Nn=1πkN(xn|μk,Σk)jπjN(xn|μj,Σj)Σ1k(xnμk)=0

兩邊同時乘以Σk ,
γ(znk)=πkN(xn|μk,Σk)jπjN(xn|μj,Σj) 得:

μk=1Nn=1γ(znk)Nn=1γ(znk)·xn

關於Σk 使對數似然最大:

Σk=1Nn=1γ(znk)Nn=1γ(znk)(xnμk)(xnμk)T

關於混合係數πk 使對數似然函數最大:

由於所有混合係數的和爲1,即滿足Kk=1πk=1 ,則原來的最大似然問題變爲帶約束條件的似然函數最大化,使用Lagrange乘子法
maxlnP(X|π,μ,Σ)+λ(Nn=1πk1)
πk 求偏導,令導數爲0:
0=Nn=1N(xn|μk,Σk)jπjN(xn|μj,Σj)+λ

兩邊同乘πk ,得
0=Nn=1πkN(xn|μk,Σk)jπjN(xn|μj,Σj)+λ·πk    ()

對k = 1,..,K求和,得:
Nn=1Kk=1γ(znk)+λ=0 ,

所以λ=N ,代入(*)式,得:
πk=Nn=1γ(znk)N

EM

期望最大化EM算法的標準形式:

  • E-step:來自第j個組份的概率
    • xij=Qi(zi=j)=p(zi=j|xi;Φ,μ,Σ)
  • S-step:估計每個組份的參數。
    • mi=1z(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=1Kk=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 μ{μ1,μ2,...,μK} , covariances Σ{Σ1,Σ2,...,ΣK} , and mixing coefficients π{π1,π2,...,πK} .

E-Step:

Use the current values for the parameters μ,Σ,π to evaluate the posterior probabilities, or responsibilities γ(znk)=πkN(xn|μk,Σk)jπjN(xn|μj,Σj) ;

M-step:

Re-estimate the means μ , covariances Σ , and mixing coefficients π using the results:
μk=1Nn=1γ(znk)Nn=1γ(znk)·xn

Σk=1Nn=1γ(znk)Nn=1γ(znk)(xnμk)(xnμk)T

πk=Nn=1γ(znk)N

Evaluate the log likelihood

lnP(X|π,μ,Σ)=Nn=1ln{Kk=1πkN(xn|μk,Σk)}
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||20 時,整個式子的極限才存在。因此在這種極限情況下,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 distribution p(X,Z|θ) .
Goal: maxizimize the likelihood function p(X|θ) .
Output: parameters θ .
1. Choose an initial setting for the parameters θold .
2. E step Calculate Q(θ,θ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|θ)=zp(X,Z|θ)

  • 直接優化p(X|θ) 是困難的,但是優化完整數據的似然p(X,Z|θ) 就容易的多。

所以,我們引入隱變量的分佈q(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.

發佈了45 篇原創文章 · 獲贊 14 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章