混合高斯模型和期望最大化算法(Mixture of Gaussians and the EM algorithm)

在這一章中,我們通過密度估計引出期望最大化算法。

在非監督式學習的情況下,給出一組訓練集{x(1),,x(m)} ,我們試圖通過指定一個聯合分佈p(x(i),z(i))=p(x(i)|z(i))p(z(i)) 在數據集上建模。其中變量z(i) 服從參數爲ϕ 的多項式分佈且x(i)|z(i) 服從均值爲μj 方差爲j 的高斯分佈,用k表示z(i) 可能取值的總數。所以我們的模型表明,每個x(i) 都來自k個基於z(i) 的高斯分佈的其中一個。這被稱爲混合高斯模型

需要注意的是z(i)隱藏隨機變量,因爲它們是無法被觀測的,實際是我們假設出來的。因此我們的估計會比監督式學習的情況要更加困難。組成模型的參數有ϕ,μ,Σ ,爲了估計它們的值,我們可以寫出數據的似然估計:

(ϕ,μ,Σ)=i=1mlog p(x(i);ϕ,μ,Σ)=i=1mlog i=1kp(x(i)|z(i);μ,Σ)p(z(i);ϕ).

如果你對方程的各個參數求偏導,並令偏導爲零聯立方程組試圖去解決該問題。你會發現極大似然估計在這種封閉形式下是無解的。
隨機變量z(i) 表示輸入x(i) 來自k個高斯分佈中的哪一個。如果我們知道隱藏變量z(i) 的值,那麼這個極大似然估計問題就會變得很簡單。具體而言,我們可以將似然估計改寫成下面的形式:

(ϕ,μ,Σ)=i=1mlog p(x(i)|z(i);μ,Σ)+log p(z(i);ϕ).

求極大似然估計可得:

ϕj=1mi=1m1{z(i)=j},μj=mi=11{z(i)=j}x(i)mi=11{z(i)=j},Σj=mi=11{z(i)=j}(x(i)μj)(x(i)μj)Tmi=11{z(i)=j}.

當我們假設z(i) 是已知的時候,除了z(i) 代替了類標籤y的作用,極大似然估計求解出的值和高斯判別分析模型的參數值幾乎是一致的。然而在我們的密度估計模型中,隱藏參數z(i) 實際是未知的,我們該如何解決這個問題呢?

期望最大化算法(EM算法)是一個內含兩個步驟的循環算法。對於我們的問題,在E階段,它首先猜測z(i) 的值;在M階段,根據上一步的猜測,更新模型的參數值。具體步驟如下:

循環直至收斂:{

(E步驟)循環每個i,j ,有:

w(i)j:=p(z(i)=j|x(i);ϕ,μ,Σ)

(M步驟)更新模型參數:
ϕj:=1mi=1mw(i)j,μj:=mi=1w(i)jx(i)mi=1w(i)j,Σj:=mi=1w(i)j(x(i)μj)(x(i)μj)Tmi=1w(i)j.

}

在E階段,通過貝葉斯公式我們求解通過x(i) 等參數求解z(i) 的後驗概率:

p(z(i)=j|x(i);ϕ,μ,Σ)=p(x(i)|z(i)=j;μ,Σ)p(z(i)=j;ϕ)kl=1p(x(i)|z(i)=l;μ,Σ)p(z(i)=l;ϕ)

p(x(i)|z(i)=j;μ,Σ) 樣本所屬的高斯分佈在x(i) 點處的概率密度計算得出;p(z(i)=j;ϕ)ϕj 表示,E階段中計算出的w(i)j 是對z(i) 的軟猜測。

期望最大化算法是k-means算法的延伸,它只是將“硬”聚類分配c(i) 替換成了“軟”分配w(i)j 。與k-means類似,它也可能嵌入局部最優解,所有你在具體應用時,最好多換幾次初始參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章