高斯混合模型
- 高斯混合模型回顧
根據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+ Ψ
把這些都放在一起,我們得到了:
高斯混合模型