1.引言
在高斯混合和EM算法中,我們運用EM算法擬合混合模型,但是我們得考慮得需要多少的樣本數據才能准確識別出數據中的多個高斯模型!看下面兩種情況的分析:
- 第一種情況假如有 m 個樣本,每個樣本的維度是 n, 如果 n » m, 這時哪怕擬合出一個高斯模型都很困難,更不用說高斯混合, 為什么呢?
這和解多元線性方程組是一樣的道理,就是自變量的個數多於非線性相關的方程的個數,這必然導致解的不唯一,雖然在解方程的時候可以隨便選一個解滿足方程組,但是對於某一實際數據集,往往樣本對應的概率分布在客觀上都是唯一的,只是我們無法簡單地用概率論中的幾個典型的分布准確表示出來罷了!
- 另一種情況是 m 個樣本的維度都較低,用高斯分布對數據建模,用最大似然估計去估計均值(期望)和方差:

我們會發現,協方差矩陣 Σ 是奇異的,即 Σ 不可逆,Σ-1 不存在,且
但是這兩項在計算多元高斯分布時,又都是必不可少的。
所以,除非 m 比 n 大一定較合適的數值,否則對方差和均值的最大似然估計將會很難找到正確的值。
然而,我們仍然能夠擬合出關於數據的合理的高斯分布,並且或許還能挖掘出數據的一些有趣的變化結構。如何做到的呢?
2.對 Σ 的約束
如果沒有充足的數據擬合出完全的協方差矩陣,就要對協方差矩陣的空間作出一些限制。
- 例如,我們要擬合出一個協方差矩陣使得該矩陣為對角矩陣,在最大似然估計中,對角協方差矩陣滿足:

- 有時,要限制這個對角矩陣的元素必須相等,即
,其中 I 是單位矩陣,
是可以調整元素大小的參數,可以推導出:

如果擬合數據的一個無約束的,非稀疏的協方差矩陣,為了保證最大似然估計得出的協方差矩陣Σ 非奇異,必須要求 m ≥ n+1.
但是,要求 Σ 是對角矩陣就意味着所有數據樣本的坐標
是獨立且非相關的(具體原因回顧概率論有關協方差的知識,參考機器學習中有關概率論知識的小結),
通常情況下,如果能捕獲出數據中內在的一些感興趣的相關結構就更好了!如果按照上述的兩種約束,做不到這一點。
后面會介紹一種因子分析模型(factor analysis model), 將會使用更多參數而不僅僅是協方差矩陣Σ,捕獲出數據中的一些關聯,同時不用必須擬合一個全協方差矩陣.
3.高斯分布的邊緣分布和條件分布
在討論因子分析模型之前,先回顧下概率論中的一些知識,就是如何求出多元高斯分布的條件分布和邊緣分布。
- 假設一個向量隨見變量:

其中
即 x1, x2 都是向量.
- 假設
其中:

其中
等等。注意由於協方差矩陣式對稱矩陣,所以
在我們的假設下,x1, x2 服從多元高斯分布,那么什么是x1 的邊緣分布呢?
容易看出
,
關於 x 的協方差,即 x1, x2 的聯合協方差:

可以看出左上角的分塊是與我們計算的 x1 的協方差相一致。
由於高斯分布的邊緣分布還是高斯分布,於是 x1 的邊緣分(把x2 看成是常量)布寫作
那什么是在給定 x2 時,x1 的條件分布呢?通常被寫為:
,其中:

在討論因此分析模型的時候,這些計算邊緣分布和條件分布的式子將會很有用。
4.因子分析模型
在因子分析模型中,假設一個關於
聯合分布,其中
是隱變量:

模型中的參數 μ 是向量:
,矩陣
,矩陣
,k 的取值通常比 n 小.
因此,可以把每一個數據點
看作是從一個 k 維的多元高斯分布
采樣得到的.
可以把上面的因子模型假設等效寫成下面的形式(這種等效的意義和目的請看本文最后的總結):

其中
和
相互獨立。
下面看看我們模型到底定義出了什么樣的分布。
由上面的式子可以看出,我們的隨機變量 z 和 x 服從聯合高斯分布 :

現在來找出
和
.
由上面的條件
知道:
,所以:

注意上面推理中 矩陣 Λ 不是隨機變量,里面的所有元素都是常量,所以 Λ 的期望仍是本身。
因此可以得出:

為了得出
,需要計算:



由於
,所以

在對后一步中
,
同樣有:

綜上所述有:

因此
的邊緣分布:

給定一個訓練集
,那么參數的的對數似然函數為:

對這個似然函數最大化看上去就很麻煩,確實也很麻煩,但是有稍微簡單點的方法,那就是EM算法(EM算法參考EM算法原理詳解)
5.EM算法運用於因子分析
- E步:計算

把上面式子(3)的結果代入式子(1)(2),得到:

有這兩個參數,即數學期望和協方差,可以寫出要求的條件高斯分布:

- M步:需要最大化上面分布的關於參數
的對數似然函數:

這里以如何優化參數
為例詳解,首先把上面的式子簡化為:

下標
表示
是服從分布
.
因為現在要優化參數
,所以把與
無關的項去掉,因為無關項此時就是常數,沒有優化的必要,只需與參數有關的項最大化即可,而我們需要最大化:

可以發現只有最后一項與參數
有關,利用(注意 tr 是線性代數中的“跡”):



可以得到關於
的偏導:

令這個偏導數為0,可以得到:

解出參數
:

由
的定義知道
是一個均值為
,方差為
的高斯分布,很容易得到:

注意后面的一個等式是如何得到的:對於一個隨機變量
因此
把上面連個等式的結果代入式子(7),可以得到:

類似地,我們可以優化參數
和
:
令
,即
只取矩陣
對角線上的元素.
6.總結
在因子分析模型的討論中可以發現,因子分析模型就是一種降維的概率模型。可以這么想:
- 要對數據
進行建模,而由於維度太高,即 n 太大,處理起來很棘手,那么就想辦法對 x 進行線性變換,映射到一個較低維的空間,維度設為 k, k 要遠遠小於 n, 設每一個數據點
在 k 維空間中對應的數據點是
,由上面討論可知 數據 z 服從高斯分布
,且維度較低,就以高斯分布建模很方便。 - 但是 z 畢竟不是我們要建模的數據,於是通過在通過高斯采樣得到
之后,運用
進行線性變換(嚴格來說叫做仿射變換,這里為了容易理解),將數據 z 由 k 維空間映射到 n 維空間,由於原始數據常常存在噪聲,所以我們同樣假設了噪聲也服從高斯分布,即
,所以就得到了原始數據
- 因為每一個
都是由相應的
經過變換,再加上噪聲得來,所以
是關於
的后驗分布,即一開始模型假設中的:

這樣建模就避免直接處理高維數據,而是先建模較低維數據,然后通過一定的簡單的映射,加上噪聲就很容易得出原始數據分布參數,即期望和協方差,且模型假設原始數據服從 高斯分布,所以這個分布就和容易寫出來,然后通過高斯采樣就可以得到原始數據的非常近似的數據了。


