生成學習算法


     這節主要介紹了生成學習算法。首先與邏輯回歸分類算法進行比較,引出生成學習算法的核心思想,然后介紹了一種基本的生成學習算法——高斯判別分析,並進一步對高斯分布條件進行討論,比較生成學習算法與判別學習算法的區別,最后介紹了兩種適合文本分類的朴素貝葉斯方法,並由引入新數據時產生的問題介紹拉普拉斯平滑法

     基本思路是:

  • 生成學習算法(Generative Learning Algorithms)
  • 高斯判別分析(Gaussian Discriminant Analysis)
  • 朴素貝葉斯(Naive Bayes)
  • 拉普拉斯平滑(Laplace Smoothing)

一、生成學習算法

    判別學習算法,計算條件概率p(y|x;θ),直接學習從特征X到標簽y∈{0,1}的映射。如邏輯回歸,尋找一條直線(決策邊界)將兩類數據集分開,新數據落入哪邊就屬於哪類。

    生成學習算法,計算聯合概率p(x,y),或者理解為對p(x|y)和p(y)同時進行建模。對不同類別的數據集分別進行建模,看新輸入的數據更符合哪類模型,該數據就屬於哪類。

    Case, 對動物進行分類,y=1表示是大象,y=0表示是小狗,p(x|y=1)是對大象特征建模后的分布,p(x|y=0)是對小狗特征建模后的分布。

    結合貝葉斯公式,可以由先驗概率p(x|y)和p(y)求出后驗概率p(y|x)。

    

    其中,p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0).

   

二、高斯判別分析

1. 多元正態分布(multivariate normal distribution)

  (1)定義:

    n維的多元正態分布(多元高斯分布),由參數均值向量μ∈Rn和協方差矩陣Σ∈R(nXn)確定,記作N(μ,Σ),它的概率密度公式為:

    

    其中,|Σ|為Σ的行列式。

 

    對於隨機變量X~N(μ,Σ),它的期望為多元正態分布的均值μ,協方差為其協方差矩陣Σ。

    

    

  (2)參數:

  • 協方差Σ

     

                            (a)Σ=I                                                (b)Σ=0.6I                                           (c)Σ=2I 

       (a)中協方差為一個2維的單位矩陣,均值為0,也被叫做標准正態分布。當Σ變大時,高斯分布會變得更加拓展(c);當Σ變小時,高斯分布變得更加壓縮(b)。

      

      以上三圖,均值為0,協方差矩陣Σ分別為:

       

     當增加協方差矩陣斜對角線的值,分布沿着45度角的方向壓縮,隨着它的值增加,壓縮得越多。當協方差矩陣斜對角線值減小為負時,分布沿着45度的反方向壓縮。

     

  • 均值μ

      

     當固定協方差的值,隨着均值μ的變化,可以看出,分布的位置隨之而變化。

     

 2. 高斯判別分析建模

    假設輸入x為連續值的隨機變量,且滿足多元正態分布。

    

    於是,可以得到p(x|y)的表達式。

    

    模型的參數為Φ,μ1,μ2,Σ,它的對數似然函數為,這里所求的是聯合概率

   

    最大化對數似然函數,可得各個參數的估計值:

   

      對實際例子進行建模后的等高圖如下,兩類樣本集擁有相同的協方差Σ,故它們的形狀是完全相同的,而均值μ不同,所以位置是不同的。圖中的直線表示的是p(y=1|x)=0.5的決策邊界

    

 3.  比較GDA和邏輯回歸

 (1)引例

    由於

    

    特別地,當p(y)是均值分布,即p(y)對於不同的y值取值都相同,可以繼續簡寫為argmax p(x|y)。也就是說,最終問題可以簡化為求p(x|y)。

    現在討論兩個一維正態分布的GDA問題,求取p(y=1|x),即為求p(x|y=1)和p(x|y=0)。

    觀察p(y=1|x),它其實是一個關於x的函數,形狀類似Sigmoid函數,可以表示為:

    

    其中,θ是關於Φ,μ1,μ2,Σ的函數。

 

 (2)比較

     那么,GDA和邏輯回歸哪種分類模型更好呢?

     由GDA模型的推導過程可知,當p(x|y)是多元正態分布時,可以推到出p(y|x)滿足邏輯函數,而反之不成立。這說明GDA比邏輯回歸做了更強的模型假設。

     其實,還有很多其他分布條件滿足時,可以推導出p(y|x)滿足邏輯函數的結論。例如,x|y服從泊松分布:x|y=1~Poisson(λ1),x|y=0~Poisson(λ0),則p(y|x)也是邏輯函數。推廣之,x|y=1~ExpFamily(λ1),x|y=0~ExpFamily(λ0),則p(y|x)也是邏輯函數。當把GDA應用在不服從高斯分布卻又能推導出邏輯函數的條件下,效果也並不好。

     總之,當高斯分布成立或大概成立,模型假設的條件性更強,那么GDA將優於邏輯回歸,GDA是漸進有效的(asymptotically efficient)。當若相反的並不知道是否成立時,假設性更弱,邏輯回歸會更好,具有更強的魯棒性。事實上,當未知訓練集是否服從高斯分布,且在規模有限時,邏輯回歸的表現往往要好於GDA。因此,邏輯回歸比GDA要常用。

 

三、朴素貝葉斯

   GDA針對的是連續變量,現在要來說一個針對離散變量的分類模型:朴素貝葉斯。

 (1)多元伯努利事件模型(multi-variate Bernoulli event model)

   引例,垃圾郵件分類

   特征向量x,當郵件中含有詞典中的第i個詞,則設置xi=1,反之則為xi=0.例如,

   

    假設xi是條件獨立的(朴素貝葉斯假設),有50000個詞。現在要建立一個生成學習算法,就要計算p(x|y),於是有:

    

    模型參數:

    

    聯合似然函數為:

   

    極大似然函數的參數估計為:

   

    預測一個新的輸入x:

    

   

   總之,假設xi∈{0,1},y=詞典中詞的個數,求p(x|y)和p(y)來求后驗概率p(y|x)最大。這種模型也叫做多元伯努利事件模型。

   針對文本分類,還有另外一種更為有效的模型。

 (2)多項式事件模型( multinomial event model)

   多元伯努利事件模型中的特征向量缺少某些信息,如不同的詞語在郵件中出現的次數

   假設ni=郵件中詞的總個數,xj∈{1,2,...,50000},表示對應郵件中第j個位置出現的詞,也就是指向詞典的索引。

   一個郵件的聯合概率分布為:

   

   參數為:

   

   Φk|y=1表示的是在垃圾郵件中詞k所占比例。

   對數似然性為:

   

   由於考慮了一個文檔中詞出現的次數,故文本分類效果比第一種朴素貝葉斯的事件模型要好。

   

 (3)存在的問題:

   假設有一個未在之前的詞典中出現過的新詞,它的位置在35000,則參數估計為:

   

   則后驗概率為:

   

    最終得到的是一個不定式,也就是說此時模型無法判斷這個新詞的分類。為了解決這種問題,引入拉普拉斯平滑。

 

四、拉普拉斯平滑

    朴素貝葉斯的問題出在,Φ的有些極大似然估計值可能取值為0,歸根結底,是Φj的分子可能為0導致的。

    

    拉普拉斯平滑就是通過增加一些修正因子,分子增加1,分母增加k來優化。

    

    這樣做並不改變Φj整體概率仍然為1。

    朴素貝葉斯第一種模型的拉普拉斯平滑為:

    

     朴素貝葉斯第二種模型的拉普拉斯平滑為:

    

 

  

 

參考文獻:

【斯坦福---機器學習】復習筆記之生成學習算法


免責聲明!

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



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