每天資訊EM 演算法的 9 重境界之第三重

菜單

EM 演算法的 9 重境界之第三重

EM 演算法的 9 重境界之第三重

之前寫過一篇文章EM 演算法的 9 重境界之前兩重,裡面講述了em演算法的過程,本文是對前一篇文章的補充。

em演算法中關鍵的公式推導如下:

EM 演算法的 9 重境界之第三重

EM 演算法的 9 重境界之第三重

EM 演算法的 9 重境界之第三重

綠色曲線是L的下界,我們每次先固定 θ(t)

θ(t),令q(z)=p(z|x,θ)

q(z)=p(z|x,θ),此時就是綠色曲線,此時我們再求下界綠色曲線的極值,求出此時的θ(t+1)

θ(t+1),將其帶入kl散度,令此時q(z)=p(z|x,θ(t+1))

q(z)=p(z|x,θ(t+1)),得到一個新的下界,此時再求出新的θ

θ,不斷重複這個過程。

簡單回顧完上面的數學推導,我們透過例子來加深理解。

三個硬幣

假設有三枚硬幣A、B、C,每個硬幣正面出現的機率是π、p、q。進行如下的擲硬幣實驗:先擲硬幣A,正面向上選B,反面選C;然後擲選擇的硬幣,正面記1,反面記0。獨立的進行10次實驗,結果如下:1,1,0,1,0,0,1,0,1,1。假設只能觀察最終的結果(0 or 1),而不能觀測擲硬幣的過程(不知道選的是B or C),問如何估計三硬幣的正面出現的機率 π、p、q?

首先我們寫出資料描述,

此處θ=(π、p、q)

θ=(π、p、q),X={x1,x2,…xm},每次投擲彼此獨立,因此

上面針對每個資料(xi),就有求logp(x|θ)

logp(x|θ),針對上面的EM演算法,我們來看下求解過程:

EM 演算法的 9 重境界之第三重

EM 演算法的 9 重境界之第三重

EM 演算法的 9 重境界之第三重

需要注意的是,這裡的μi+1透過E步的計算就已經是一個常數了,後面的求導不需要把這個式子代入。

M步:針對L函式求導,L函式的表示式是

EM 演算法的 9 重境界之第三重

下面我們來對L分別對π、p、q求導,

EM 演算法的 9 重境界之第三重

再令這個結果等於0,即獲得

EM 演算法的 9 重境界之第三重

另外兩個引數p、q也可以透過求導求得。上面是透過資料公式推導求到的,下面我們換一種思路做。

假設上面我們觀察到的序列中,我們已經知道了每個結果是由紅色(coin B)還是綠色(coin C)投擲出來,那麼我們就可以估計 π、p、q了,

π = 紅色個數 / 總個數

p = 紅色H個數 / 紅色個數

q = 綠色H個數 / 綠色個數

現在的情況是,我們不明確每個結果是由紅色還是綠色投擲而來,但是我們可以估計出這個機率:

p(z=1|x,θ) = p(x,z=1|θ) / p(x|θ)

這個之前推導過,是:

EM 演算法的 9 重境界之第三重

此時我們就可以得到硬幣是紅色的機率了:

此時,針對每個硬幣,我們都能計算出屬於紅色和屬於綠色的機率,此時我們再來預估π、p、q:

EM 演算法的 9 重境界之第三重

GMM模型

有了上面這個例子後,我們再來看GMM模型,高斯混合模型,混合模型即資料由多個分佈組成,像上面三硬幣例子,也是一個混合模型,先來描述下問題:

假設有資料D={x(1), … , x(m)} ,我們希望能夠求出p(x(i), z(i))的聯合分佈,此處

p(x(i), z(i)) = p(x(i)|z(i))p(z(i))

z服從多項分佈

而xi服從高斯分佈

於是我們就能得到似然函式:

EM 演算法的 9 重境界之第三重

根據EM演算法的套路,我們先假設假設引數已知,來求隱變數z的後驗分佈:

上面wji的意思是第i個數據屬於第j個高斯的機率,具體計算就是:

上面式子中

是指x(i)在第j個高斯分佈下的機率,

則是隱變數z是第k個高斯的機率。

然後在M-step中,我們就可以更新:

EM 演算法的 9 重境界之第三重

以上就是對於em演算法例子的補充,本文最重要的概念就是隱變數z是一個分佈,本文的兩個例子,我們都假設z的先驗分佈是多項分佈,後面我們會看到我們可以假設z是其他分佈,此時又會新的變化,歡迎關注。

參考

【機器學習算法系列之一】EM演算法例項分析

EM 演算法的 9 重境界之前兩重

cs229-notes7b