機器學習——EM和GMM(基於李航老師的推導)
EM演算法推導可以根據Andrew NG的,他的推導邏輯性非常強,沒有考慮概率模型,但是推導完了還是覺得雲裡霧裡。李航老師的是根據概率模型過來,意義比較清晰,但是!!!書上有bug!吐血........還有就是書上的表達有點不適合我們通常的定義法。
感謝大牛為我解疑惑:
1 EM演算法
EM是一種迭代演算法,用於含有隱變數的概率模型引數的極大似然估計,或極大後驗概率估計。EM演算法每次迭代由兩步組成:(1)E步,求期望(expected)的下線;
(2)M步,求期望極大值。GMM是EM的一種應用。
如果沒有隱變數,可直接用極大似然估計(最大熵模型),或極大後驗概率(樸素貝葉斯)估計模型引數。
E步:計算期望
是個能求出來的值,表示給定了和觀測資料Y求出的。
M步:求使最大的引數,確定第i+1次迭代的引數的估計是
2 EM通俗理解
什麼是含有隱變數的概率模型引數?
當輸入的資料不是來源於一個概率分佈模型的時候,就涉及到含有隱變數的概率模型。比如身高和性別問題,如果告訴你身高X=x=1.65,這個人是男還是女(y)?。因為這個是概率模型,所以如果p(男|X=1.65)>p(女|X=1.65),那這個就是男生可能性大。原來遇到這種問題,就是假設身高服從一定的分佈規律,如正態分佈,那我建立模型,根據極大似然估計估計出正態分佈的均值和方差,然後把x帶入求的概率。但這在這個問題中顯然不合理,因為男生和女生的身高分佈是不一樣的,男生的身高是一個正態分佈,女生的身高也是一個正態分佈,二者的均值和方差肯定有區別。
所以我們不得不判斷是來自於男生還是女生,確定來源於哪個模型,才能用極大似然的方法估計。ok,匯出公式:
假設模型引數為,Y為觀測資料,未觀測資料,則觀測資料的似然函式:
(表示模型引數下的聯合概率值P(Y),表示引數下條件概率)
3 EM演算法匯出(基於極大似然估計的)
面對一個含有隱變數的概率模型,目標是極大化觀測資料X關於引數的對數似然函式:
3.1 建立L的下界(jensen不等式)
因為EM演算法是迭代演算法,我們希望每次迭代都能讓L增大,即新估計的引數和第i次迭代估計的引數做差值:
這裡引入jensen不等式定理,對於凹函式f,,凸函式則相反
log是凸函式,然後根據jensen不等式,我們構造一下f(E(x))。
(這裡插一句李航老師的那本書有點問題!!!想了半天總在想為什麼是這樣?後面才知道他那錯了。)
為了構造f(E(x)),我們選擇,因為,則:
根據jensen不等式:
又因為,
所以
3.2 最大化下界
是的下界。任何可以使增大的,也可以使L增大,為了讓L儘可能大,就要讓它的下界B儘可能大,即:
排除不含變數θ的表示式,定義Q函式:
這個時候可以用求導的方法來獲得讓Q最大的θ了。
4 EM的應用--GMM高斯混合模型
高斯混合模型:假設存在K個高斯模型(正態分佈)的資料,如男女身高問題則K=2,資料來自第k個模型的概率為,則GMM表示為:
,是第k個高斯分佈密度,
步驟:
(1)明確隱變數,寫出完全資料的對數似然函式:
(2)E步,確定Q函式
(3)M步,最大化Q函式