高斯混合模型
- 高斯混合模型回顧
根據EM的定義,我們重新回顧一下高斯混合中的ϕ,µ和Σ參數擬合。為了簡單起見,這里我們在M-步中僅更新φ,µj,而把Σj的更新留給大家自己推導。
E-步是很容易的,根據上面的推導,我們計算:
w(i)j = Qi(z(i)= j ) = P(z(i)= j |x(i); ϕ, µ, Σ)
這里,Qi(z(i) = j) 表示在概率分布Qi下,z(i)取得j的概率。在M-步,我們需要最大化以ϕ,µ和Σ為參數的似然函數。似然概率為:

接下來,我們以µl為參數,對其取偏導數,結果如下:

讓偏導數結果為0,得到µl的更新公式如下,即與我們之前筆記提到的一樣。

接下來,再舉個M-步中的例子,即更新ϕj,這樣我們需要最大化的就是。這里有一個限制條件就是所有ϕj的和是1,因為ϕj = p(z(i)=j; ϕ)。為了處理好和為1的限制條件,我們采用拉格朗日法,即
這里的β是拉格朗日乘子。取偏導數得到:,讓該式子等於1,則得到:。這里正比於,采用限制條件,我們很容易得到 (這里用到了w(i)j = Qi(z(i)= j )和概率和為1,即) 。因此,我們得到了M-步中更新參數ϕj的公式:
此外,M-步中更新Σj的推導也是類似的,不過稍微復雜點,畢竟是矩陣,這里就不再贅述,而之前已經把混合高斯模型的結果給出了。
注:如果將樣本看作觀察值,潛在類別看作是隱藏變量,那么聚類問題也就是參數估計問題,只不過聚類問題中參數分為隱含類別變量和其他參數。大家可以去聯想監督式學習的等等問題了。
- 因子分析
當我們的數據x(i)∈ Rn是根據多個混合高斯分布產生的,那么我們可以根據EM算法擬合該模型。在這樣的情況下,我們通常認為我們有足夠的數據來區分數據中的多個高斯分布結構。也就是說,我們的訓練樣本大小m遠大於數據的維數n。現在,我們考慮這樣的一種情況,即n ≫ m。在這樣的問題里,可能很難擬合出一個高斯模型,更別說混合高斯模型了。具體的,對於小於n的m個樣本數據,如果我們使用高斯模型,那么采用最大似然估計得到的均值和協方差如下:
,
我們會發現協方差Σ是奇異矩陣,也就是說是Σ-1不存在的,而且1/|Σ|1/2= 1/0。而這兩項在通常情況下的多元高斯分布(Multivariate Gaussian distribution)中都是需要計算的。解決這個問題的另一個困難是高斯模型中對參數的最大似然估計會導致將所有的概率仿射(Affine,由一個線性變換接上一個平移組成,在拉格朗日對偶中也提到過)到一個數據(這里的數據x滿足x= ,對於一些αi,滿足)跨越的空間去。
更一般的說,除非m比n大到一定數量,否則均值和協方差的最大似然估計結果將是很差的。盡管如此,我們仍然希望通過數據來擬合高斯模型,也許能夠捕獲數據中方差的一些有趣結構,那么我們該怎么做這些呢?在下一部分,我們開始回顧在Σ上的兩種可能限制,而之前的Σ都不能在較少的數據上給出一個滿意的解決方案。我們接下來要討論高斯分布的特性,尤其是如何發現邊際高斯分布和條件高斯分布(marginal and conditonal distributions of Gaussians)。最后我們展示因子分析模型(factor analysis model),以及在因子分析模型上應用EM算法。
-
限制 Σ
如果沒有足夠的數據來擬合全部的協方差矩陣(covariance matrix),我們考慮是否可以對的Σ的矩陣大小做一些限制。比如我們會選擇擬合一個是對角矩陣(diagonal)的協方差矩陣。在這樣的設置下,可以很容易得到對角矩陣Σ是滿足:,這里Σjj僅僅是協方差的對角位置的值。
回憶一下高斯分布的概率密度的等高線都是橢圓的(橢圓的中心由μ決定,而形狀由Σ決定),而一個具有對角矩陣Σ的高斯分布,這些橢圓的兩個軸就和坐標軸平行了。有些時候,我們會對Σ做進一步的限制,即Σ不僅僅是對角矩陣,而對角線上的值必須都相等,即滿足Σ = σ2I,其中I為單位矩陣,σ2是我們的控制參數。這樣,σ2可以通過最大似然估計得到:σ2 = ,這個模型對應的高斯分布的概率密度等高線圖是圓形的(在二維的情況下,而在高維情況就是球體或超球體)。
如果我們使用數據擬合全部的非限制的協方差矩陣Σ,要求m ≥ n+1,這樣才能使得協方差矩陣Σ是非奇異矩陣。而在上面的兩個限制下,我們可以得到當m ≥ 2時,就可以得到Σ是非奇異矩陣。
然而,限制Σ是對角矩陣也意味着模型過程中不同下標的xi,xj是相互獨立和不相關的。多數情況下,能夠捕獲到數據中存在的一些有趣的相關關系是非常好的。如果我們使用了上述兩個限制中的任何一個,我們都會因為不獨立的問題而失敗。在后面,我們會講到因子分析模型,在該模型中使用了比對角矩陣Σ更多的參數且捕獲了數據中的一些相關關系,但是又不需要擬合全部的協方差矩陣
-
邊際和條件高斯分布
在描述因子分析模型之前,我們討論一下,對一個服從聯合多元高斯分布的隨機變量,如何尋找它的邊際和條件概率。
假設我們有一個向量的隨機變量x,x=[x1;x2],這里的x1 ∈ Rr , x2 ∈ Rs, and x ∈ Rr+s,假設x ∼ N (µ, Σ),其中 µ = [µ1; µ2],Σ = [Σ11,Σ12 ;Σ21,Σ22],這里的µ1 ∈ Rr, µ2 ∈ Rs, Σ11 ∈ Rr×r, Σ12 ∈ Rr×s,其他依次類推。注意,協方差矩陣是對稱的(symmetric)。在我們的假設下,x1和x2是聯合的多元高斯分布,那么x1的邊際分布是什么呢?我們很容易得出E(x1) = µ1,而Cov(x1) = E[(x1-µ1)(x1-µ1)] = Σ11,而根據x1和x2的聯合協方差定義,我們有:

因為多元高斯分布的邊際分布仍然是多元高斯分布,因此對於x1的邊際分布為x1∼ N (µ1, Σ11)。那么在給定條件x2的情況下,x1的概率分布是什么呢?根據多元高斯分布的定義,可以得到x1|x2 ∼ N (µ1|2, Σ1|2),其中:

在下一部分,我們講述因子分析模型的時候,這些式子都會有幫助的。
-
因子分析模型
在因子分析模型中,我們假設(x,z)的聯合分布如下,其中z∈ Rk是一個潛在變量:
z ∼ N (0, I ) x|z ∼ N (µ + Λz, Ψ)
這里我們模型的參數是µ ∈ Rn,矩陣Λ∈ Rn×k,對角矩陣Ψ∈ Rn×n,其中k的值通常會選擇一個小於n的值。這里,我們想象各個數據點x(i)是由k維的多元高斯分布z(i)抽樣產生的;之后通過k維仿射變換µ + Λz(i),將z(i)仿射到Rn空間;最后,x(i)就是由仿射之后的結果加上一個均值為0,協方差為Ψ的噪聲ε,即ε+µ + Λz(i)。
相等的,我們定義因子分析模型如下:z ∼ N (0, I ); ε ∼ N (0, Ψ);x = µ + Λz + ε;這里的ε和z是相互獨立的。現在,我們將要給出我們的模型究竟是什么分布。我們的隨機變量z和x有一個聯合高斯分布:

現在我們要找出µzx和Σ。我們知道E[z]=0,因為z∼ N (0, I)。此外,我們還可以知道:E[x] = E[µ + Λz +ε] = µ + E[Λz] +E[ε] = µ 。把這些放到一起,我們得到:

接下來,為了找到Σ,我們需要計算 Σzz = E[(z − E[z])(z − E[z])T] ( Σ的左上角的部分),Σzx = E[(z − E[z])(x − E[x])T]( Σ的右上角的部分),Σxx= E[(x − E[x])(x − E[x])T] ( Σ的右下方部分)。
現在,因為z∼ N (0, I ),我們可以很容易得到Σzz = Cov(z) = I,而且:
E[(z − E[z])(x − E[x])T] = E[z(µ + Λz +ε− µ)T]= E[zzT]ΛT+ E[zεT]= ΛT
在這兒的最后一步推導中,用到了E[zzT] = Cov(z) 和 E[zεT] = E[z]E[εT] = 0(因為z和ε是相互獨立的)。相似的,我們可以得到Σxx如下:
E[(x − E[x])(x − E[x])T] = E[(µ + Λz + ε − µ)(µ + Λz + ε − µ)T]
= E[ΛzzTΛT+ εzTΛT+ ΛzεT+ εεT]
= ΛE[zzT]ΛT+ E[εεT] = ΛΛT+ Ψ
把這些都放在一起,我們得到了:

因此,我們得到了x的邊際分布,x∼N (µ,ΛΛT+ Ψ)。因此,在給定訓練集合{x(i); i = 1, . . . , m},我們可以寫下參數的最大似然函數如下:

為了進行最大似然估計,我們希望最大化該似然函數。然而,直接進行最大化是很困難的,我們沒有學過一個算法能夠解決這個閉型解(closed-form)。因此,我們將采用EM算法,在下一部分我們會用EM推導因子分析
