1. 程式人生 > >機器學習——EM和GMM(基於李航老師的推導)

機器學習——EM和GMM(基於李航老師的推導)

EM演算法推導可以根據Andrew NG的,他的推導邏輯性非常強,沒有考慮概率模型,但是推導完了還是覺得雲裡霧裡。李航老師的是根據概率模型過來,意義比較清晰,但是!!!書上有bug!吐血........還有就是書上的表達有點不適合我們通常的定義法。

感謝大牛為我解疑惑:

1 EM演算法

EM是一種迭代演算法,用於含有隱變數的概率模型引數的極大似然估計,或極大後驗概率估計。EM演算法每次迭代由兩步組成:(1)E步,求期望(expected)的下線;

(2)M步,求期望極大值。GMM是EM的一種應用。

如果沒有隱變數,可直接用極大似然估計(最大熵模型),或極大後驗概率(樸素貝葉斯)估計模型引數。

E步:計算期望

Q(\theta, \theta^{(i)})=\sum _{Z}log(Y,Z;\theta)P(Z|Y;\theta^{(i)})

P(Z|Y;\theta^{(i)})是個能求出來的值,表示給定了\theta^{(i)}和觀測資料Y求出的。

M步:求使Q(\theta, \theta^{(i)})最大的引數\theta,確定第i+1次迭代的引數的估計是\theta^{(i+1)}

arg\ max_{\theta }\ Q(\theta, \theta^{(i)})

2 EM通俗理解

什麼是含有隱變數的概率模型引數?

當輸入的資料不是來源於一個概率分佈模型的時候,就涉及到含有隱變數的概率模型。比如身高和性別問題,如果告訴你身高X=x=1.65,這個人是男還是女(y)?。因為這個是概率模型,所以如果p(男|X=1.65)>p(女|X=1.65),那這個就是男生可能性大。原來遇到這種問題,就是假設身高服從一定的分佈規律,如正態分佈,那我建立模型,根據極大似然估計估計出正態分佈的均值和方差,然後把x帶入求的概率。但這在這個問題中顯然不合理,因為男生和女生的身高分佈是不一樣的,男生的身高是一個正態分佈,女生的身高也是一個正態分佈,二者的均值和方差肯定有區別。

所以我們不得不判斷是來自於男生還是女生,確定來源於哪個模型,才能用極大似然的方法估計。ok,匯出公式:

假設模型引數為\theta =(\pi ,p,q),Y為觀測資料X =(x1,...,xn)^{T},未觀測資料Z =(z1,...,zn)^{T},則觀測資料的似然函式:

P(X;\theta )=\sum _{Z}P(X,Z;\theta)=\sum _{Z}P(Z;\theta)P(X|Z;\theta)

P(X;\theta )表示模型引數\theta下的聯合概率值P(Y),P(X|Z;\theta)表示引數\theta下條件概率P(X|Z)

3 EM演算法匯出(基於極大似然估計的)

面對一個含有隱變數的概率模型,目標是極大化觀測資料X關於引數\theta的對數似然函式:

L(\theta )=logP(X;\theta )=log\sum _{Z}P(X,Z=z;\theta )

L(\theta )=log\sum _{Z}P(z;\theta )P(X|Z=z;\theta )

3.1 建立L的下界(jensen不等式)

因為EM演算法是迭代演算法,我們希望每次迭代都能讓L增大,即新估計的引數和第i次迭代估計的引數\theta^{i}做差值:L(\theta )-L(\theta^{i} )>0

L(\theta )-L(\theta^{i} ) = \sum_{X}log\sum_{Z}P(X|Z;\theta )P(Z;\theta )-\sum_{X}logP(X;\theta^{i} )

這裡引入jensen不等式定理,對於凹函式f,f(E(x))\leq E(f(x)),凸函式則相反f(E(x))\geq E(f(x))

log是凸函式,然後根據jensen不等式,我們構造一下f(E(x))。

(這裡插一句李航老師的那本書有點問題!!!想了半天總在想為什麼是這樣?後面才知道他那錯了。)

ln\sum_{j}p_{j}x_{j}\geq\sum_{j} p_{j}ln x_{j}, p_{j}\geq 0, \sum_{j}p_{j}=1

為了構造f(E(x)),我們選擇p_{j}=P(Z|X;\theta^{i} ),因為\sum _{Z}P(Z|X;\theta^{i} )=1,則:

L(\theta )-L(\theta^{i} ) =log \sum _{Z}P(Z|X;\theta^{i} )\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )} -logP(X,Z;\theta^{i} )

根據jensen不等式:

L(\theta )-L(\theta^{i} ) \geq \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )} -logP(X,Z;\theta^{i} )

又因為,

logP(X,Z;\theta^{i} )= \sum _{Z}P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )

所以

L(\theta )-L(\theta^{i} ) \geq \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )}

L(\theta )\geq L(\theta^{i} ) + \sum _{Z}P(Z|X;\theta^{i} )log\frac{P(X|Z;\theta)P(Z;\theta)}{P(Z|X;\theta^{i} )logP(X,Z;\theta^{i} )}

3.2 最大化下界

L(\theta )\geq B(\theta,\theta ^{i} )

B(\theta,\theta ^{i} )L(\theta )的下界。任何可以使B(\theta,\theta ^{i} )增大的\theta,也可以使L增大,為了讓L儘可能大,就要讓它的下界B儘可能大,即:

\theta ^{i+1}=arg\ max_{\theta }\ B(\theta,\theta ^{i} )

排除不含變數θ的表示式,定義Q函式:

Q(\theta,\theta^{i} ) = \sum _{Z}P(Z|X;\theta^{i} )logP(X|Z;\theta)P(Z;\theta)

這個時候可以用求導的方法來獲得讓Q最大的θ了。

4 EM的應用--GMM高斯混合模型

高斯混合模型:假設存在K個高斯模型(正態分佈)的資料,如男女身高問題則K=2,資料來自第k個模型的概率為\alpha_{k},則GMM表示為:

p(y;\theta )=\sum_{k=1}^{K}\alpha _{k}\phi (y;\theta_{k})

\sum_{k=1}^{K}\alpha _{k}=1\phi (y;\theta_{k})是第k個高斯分佈密度,\theta_{k}=(\upsilon _{k},\sigma _{k}^{2} )

\phi (y;\theta_{k})=\frac{1}{\sqrt{2\pi }\sigma _{k}}exp(-\frac{(y-\upsilon _{k})^{2}}{2\sigma _{k}^{2}})

步驟:

(1)明確隱變數,寫出完全資料的對數似然函式:

(2)E步,確定Q函式

(3)M步,最大化Q函式