EM算法--應用到三個模型: 高斯混合模型 ,混合朴素貝葉斯模型,因子分析模型


主要是對Ng教授的machinelearning視頻學習和參考jerryLead講義整理(特別鳴謝~):

由“判別模型、生成模型與朴素貝葉斯方法 ”一節得知:

判別模型求的是條件概率p(y|x),

生成模型求的是聯合概率p(x,y)   .即 = p(x|y) ∗ p(y) 
常見的判別模型有線性回歸、對數回歸、線性判別分析、支持向量機、boosting、條件 隨機場、神經網絡等。
常見的生產模型有隱馬爾科夫模型、朴素貝葉斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

所以這里說的高斯混合模型,朴素貝葉斯模型都是求p(x,y)聯合概率的。(下面推導會見原因)

套路小結: 凡是生產模型,目的都是求出聯合概率表達式,然后對聯合概率表達式里的各個參數再進行估計,求出其表達式。

下面的EM算法,GMM等三個模型都是做這同一件事:設法求出聯合概率,然后對出現的參數進行估計。




 一、EM算法:

作用是進行參數估計。

應用:(因為是無監督,所以一般應用在聚類上,也用在HMM參數估計上)所以凡是有EM算法的,一定是無監督學習.因為EM是對參數聚集

給定訓練樣本是 樣例獨立,

我們想要知道每個樣例隱含的類別z,使p(x,z)最大,(即 如果將樣本x(i)看作觀察值, 潛在類別z看作是隱藏變量, 則x可能是類別z, 那么聚類問題也就是參數估計問題,)

故p(x,z)最大似然估計是:

所以可見用到EM算法的模型(高斯混合模型,朴素貝葉斯模型)都是求p(x,y)聯合概率,為生成模型

 

對上面公式,直接求θ一般比較困難,因為有隱藏變量z存在,但是一般確定了z后,求解就容易了。

EM是一種解決存在隱含變量優化問題的有效方法。竟然不能直接最大化ℓ(θ),我們可建立ℓ的下界(E步),再優化下界(M步),見下圖第三步,取的就是下界

  (總式)

解釋上式:

對於每一個樣例 i,讓Qi表示該樣例隱含變量 z 的某種分布,Qi滿足的條件是 (如果 z 是連續性的,那么Qi是概率密度函數(因子分析模型就是如此),需要將求和符號換成積分符號即:因子分析模型是如此,這個會用在EM算法的M步求

比如要將班上學生聚類,假設隱藏變量z是身高,那么就是連續的高斯分布。 如果按照隱藏變量是男女,那么就是伯努利分布(即兩點分布:)了。

上總式第1到第2步是分子分母同乘一個數,

第2到3步是:用了jasen不等式: (凸函數圖形上表示反為凹函數,記住。)

如圖:  。因為第2步log是凹函數 :,所以f(E(x)) >= E[f(x)].這樣就完成了第3步(詳情見對應講義。)

 

至此推導完上面3步公式,下面所有模型都是對上面第3步公式進行參數估計的!!!


 

下面 對第三步的Q(z)進行推導:

(見講義)

所以Q(Z)最終表示: ,其中z只受參數θ影響。

所以EM算法:

(承上啟下:在m步中,最終是對參數θ進行估計,而這一步具體到高斯混合模型,則θ有三個參數:mu,phi,sigma代替,即高斯混合模型要推導三個參數,下面會講)

至此,這就是EM算法所有推導,EM算法推導也只能推導這些步,具體再將這些公式推導下去,就要結合模型了。

 

總結:

如果將樣本看作觀察值, 潛在類別看作是隱藏變量,   那么聚類問題也就是參數估計問題,只不過聚類問題中參數分為隱含類別變量和其他參數。

對應到EM上,E步估計隱含變量,M步估計其他參數,交替將極值推向最大。

例子:在Mitchell的Machine Learning書中也舉了一個EM應用的例子,將班上學生的身高都放在一起,要求聚成兩個類。這些身高可以看作是男生身高的高斯分布和女生 身高的高斯分布組成。因此變成了如何估計每個樣例是男生還是女生,然后在確定男女生情 況下,如何估計均值和方差,里面也給出了公式。

 




 

二、混合高斯模型:

將EM算法融到高斯混合模型,將上面EM算法的E步、M步的公式再具體推導下去。

 

整個模型簡單描述為:

對於每個樣例 ,我們先從k個類別中按多項式分布抽取一個

然后根據所對應的 k 個多值高斯分布中的一個,生成樣例,整個過程稱作混合高斯模型。

(即對樣例x, 最終目的是生成樣例x。(??)即對樣例x,從k個類別抽取一個z,從根據z生成x。)

 

特別地,混合高斯模型的

(1)隱含類別標簽 ,被認為滿足多項式分布  (這里只受∅參數(即phi)影響)

(2)樣例被認為滿足 高斯分布,即   (所以μ和Σ分別為樣例x的均值和協方差)

             補充:服從的多項式分布概率公式為:,即類似C(n,x)*p6^x*(1-p6)^(n-x) 類型

  所以 上面(1)(2)可知混合高斯模型中, 這里的是隱含隨機變量。模型細化多了三個變量∅,μ和Σ。(即是phi,mu,sigma). 

其中∅j就是樣本類別中  = j的比率。μj是類別為 j 的樣本特征均值,Σj是類別為 j 的樣例的特征的協方差矩陣(Σj是一個矩陣!!)。

 

所以由上面(1)(2)合並得,最大似然估計p(x, z),對數化后如下:

         

 

  (對比一、EM算法里的總式: ,只是參數θ由原化成三個∅,μ和Σ)

注意第二步有兩個迭加號。第二個迭加號是z(i)=1 直到k個類別。z只有k個類別。

 

 

參考一、中EM算法推導:

所以混合高斯模型:

從EM算法步驟的   變成: (其中M步三個參數的右邊公式在下面會進行推導。這里直接先給出參數結果。)

 

1. E步:   每個樣例i的隱含類別z(i)為j的概率  可以通過條件概率計算得到。即

      (E)

                    (這里貝葉斯公式,分子是z=j一種類別情況,分母是z={1~k}k中類別的累加) 

    1)對上式的分子第一項:(由上面加黃色背景段文字可知)服從高斯分布:

      故 =    。(其中Σ即是

    2)對(E)式分子第二項(又上面可知) 服從 多項式分布:

           所以分子直接代入即可,所以 可以求得。

 

2.M步:

    先給出最終結果為: ,推導如下:

      先看EM算法的M步:

  

                   (M)

      下面對三個參數phi,mu,sigma(∅,μ和Σ)分別進行求導:

     (i)μi 求導得(固定∅i,Σi):

              <--  它是由   據Ng說求的過程不重要?)等於0時所得 

             

     (ii)對∅i求導(固定μi,Σi)

          

 

                      推導過程用了SVM中的拉格朗日乘子方法:

          因為∅i是 隱性隨機變量z的多項式分布概率值,又有約束條件   

          又由上面(M)步公式:

          (why?????)

                               所以聯合上兩式,直接構成拉格朗日乘子:

            

           ,   

 

     (iii)Σ的推導:

          也類似,不過稍微復雜一些,畢竟是矩陣。結果在之前的混合高斯模型中已經給出。

 

 

3.迭代:對上面E,M步進行迭代,最后一定會收斂(證明見講義)

     

      如圖,最終收斂成2個類,這里的樣例收斂於橢圓,原因是高斯分布的二維幾何圖形是一個橢圓,(具體幾何圖形見下面因子分析,有詳解)

 

拓展:

混合高斯模型GMM與K-means比較:

相同點:都是可用於聚類的算法;都需要指定K值。

 

不同點:GMM來說,引入了概率;GMM可以給出一個樣本屬於某類的概率是多少。所以高斯混合模型既可以做聚類,也可做概率密度估計

 




 三、混合朴素貝葉斯模型

   混合高斯的例子:文本聚類: 要對一系列的文本聚類成若干主題。(用svm寫文本分類是最好的)

 news.google.com就是文本聚類一個應用

  怎樣在文本新聞問題用到EM算法呢?

  ----->混合朴素貝葉斯模型。混合朴素貝葉斯模型有2個:多值伯努利事件模型(文本聚類就是用此);多項式事件模型。

 

    模型描述為:

  給定m個樣本的訓練集合是 , 每個文本屬於(0,1)^n。即每個文本是n維 0或1的向量。

 

  故= { wordj 是否出現在文本i 里} 

  我們要對(值是0或1) 進行建模,是隱含隨機變量,這里取兩個值:2個聚類。

    所以對混合貝葉斯模型,假設  服從參數有伯努利分布(兩點分布),即: 圖中x換成即可)。

     故每個文本按某概率屬於聚類1或者聚類2

     

   同高斯混合模型,混合貝葉斯模型的聯合概率是:

  又     由貝葉斯公式可知:

     p(|) = p()     (i)

    p( = 1 | = 0)  =          (ii)

        把上面的z全部換成y,就得到常見的朴素貝葉斯公式:

 一般會前面兩個等式右邊的x=1,或省去=1,即寫成∅i|y=1 = p(xi | y =1)      ∅i|y=0  = p(xi | y =0) ,默認x取了1  

  其中p(y=1)表示類別1(例如類別1表示垃圾郵件)的在所有文本的概率。這里xi表示一個單詞,取值只有0或者1,表示出現在文本里或者沒有出現。

 

 

EM算法步驟:

1.E步:

    這里三個參數phi,mu,sigma,改成,與∅j|z

               將上面(i)(ii)式帶入即可求得

2.M步:

        對比貝葉斯原公式:

       =     

             這里Wi表示文本來自於類1,分子Σ表示:類1且包含詞j的文檔個數,分布表示類1的文檔總數。所以全式表示:類1包含詞j的比率。

              EM算法不能做出絕對的假設0或者1,所以只能用Wi表示,最終Wi的值會靠近0或1,在數值上與0或1無分別。

    

      =   (分子的橫斜是多余的,忽略)

              全式表示:類0包含詞j的比率

     

           j|z         =  

3.迭代上面12步驟,收斂,求出參數估計,帶回聯合概率,將聯合概率排序,由聯合概率最高值 ,可得知哪個文本是輸入哪個類了。

 

 




 

四、因子分析

      轉至下篇博文 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM