(筆記)斯坦福機器學習第五講--生成學習算法


 本講內容

1. Generative learning algorithms(生成學習算法)

2. GDA(高斯判別分析)

3. Naive Bayes(朴素貝葉斯)

4. Laplace Smoothing(拉普拉斯平滑)

 

 

1.生成學習算法與判別學習算法

判別學習算法:直接學習  或者學習一個假設  直接輸出0或者1。logistic回歸是判別學習算法的一個例子。

生成學習算法:對  建模,即在給定所屬的類別的情況下,對特征出現的概率建模。出於技術上的考慮,也會對  建模。

         根據貝葉斯公式   得到后驗概率。

       其中

       

 

2.高斯判別分析 

 高斯判別分析屬於生成學習算法

 首先,高斯判別分析的兩個假設:

(1). , 且是連續值

(2).  屬於高斯分布

 

多元高斯分布

當一個隨機變量z滿足多元高斯分布時,

所以z的概率密度函數如下

向量 是高斯分布的均值,矩陣 是協方差矩陣,

協方差矩陣對角線元素的值控制圖像起伏的程度,反對角線元素的值控制圖像起伏的方向。

均值控制圖像中心的位置。

 

高斯判別分析模型 

假設y服從伯努利分布,

用高斯分布對 建模

 

這個模型的參數為 

對這些參數作極大似然估計

                           

這個公式被稱為joint likelihood(聯合似然性)

對於判別學習算法,我們的參數似然性公式定義如下

這個公式被稱為conditional likelihood(條件似然性)

因此,對於生成學習算法,我們對參數的聯合似然函數作極大似然估計

     對於判別學習算法,我們對參數的條件似然函數作極大似然估計 

 

對聯合似然函數作極大似然估計,得到參數的值為

 

得到參數值之后, 對於一個新樣本x,預測值為

          

 

高斯判別分析和logistic回歸的關系

假設  屬於高斯分布,那么一定可以推出 是一個logistic函數,但是反推不成立

這說明, 服從高斯分布的假設,要比  服從logistic分布的假設更強。 

那么該如何權衡高斯判別分析模型和logistic回歸模型呢?

GDA做出了一個更強的假設,即  服從高斯分布,一旦這個假設正確或者近似正確,那么GDA算法的表現將會比logistic回歸要好。

因為這個算法利用了更多數據的信息,算法知道數據服從高斯分布。

相反地,如果不確定  的分布情況,那么logistic回歸將會表現的更好,logistic回歸的弱假設使得logistic回歸算法具有更好的魯棒性,對不確定的數據分布依然能夠得到一個較好的結果。

進一步,假設 的分布屬於指數分布簇,那么一定可以推出 是一個logistic函數,但是反推不成立

 

事實證明,使用生成學習算法的好處是,生成學習算法要比判別學習算法需要更少的數據,

即使在數據量特別小的情況下,生成學習算法依然能夠擬合出一個還不錯的模型。

 

3.朴素貝葉斯 

朴素貝葉斯屬於生成學習算法

對於一個垃圾郵件分類的問題,這是一個二分類的問題  

那么對於一封郵件,我們如何創建特征向量x?

普遍的做法是創建一個詞典,假設該詞典包含50000個單詞,那么對於郵件中出現的單詞,我們在詞典的相應位置置1,郵件中沒有出現的單詞,

詞典中相應的位置置0.這樣對於每一封郵件,我們就可以得到一個長度為50000的特征向量x

解決了特征向量的表示問題,那么該如何對  建模呢?

假設采用多項式分布,特征向量x的取值有2^50000個,那么需要2^50000-1個參數,參數量實在是太大了。

因此朴素貝葉斯做了一個非常強的假設:給定y的時候, 是相互獨立的,(是指郵件中第i個位置的單詞

   (鏈式法則)

                                       (朴素貝葉斯的強假設)

             

很顯然朴素貝葉斯的假設是不可能成立的,但是事實證明朴素貝葉斯算法確實是一個非常有效的算法。

該模型的參數:

聯合似然函數為

作極大似然估計(求偏導數,然后讓其等於0)求得參數

 

 

 

因此對於一封新的郵件x,預測值y為

高斯判別分析模型和朴素貝葉斯模型的區別?

當隨機變量X的取值是連續值時,可以采用GDA模型進行預測,

當隨機變量X的取值是離散值時,可以采用朴素貝葉斯模型。

對於上述郵件的例子,是否是垃圾郵件屬於二分類問題,  ,因此對 建模為伯努利分布

在給定y的情況下,朴素貝葉斯假設每個單詞的出現互相獨立,每個單詞是否出現也是一個二分類問題,即 ,因此對  也建模為伯努利分布。

在GDA模型中,假設我們要處理的依然是二分類問題,對  依然建模為伯努利分布。

在給定y的情況下,x的取值是連續值,所以我們對  建模為高斯分布。

 

在上述郵件例子中存在一個問題:假設在一封郵件中出現了一個以前郵件從來沒有出現的詞,那么在預測該郵件是否是垃圾郵件時,

       

       

存在  使得  和  都為0

那么    模型失靈。

換句話說,在有限的訓練集中沒有出現過的特征,不可以簡單的認為該特征以后會出現的概率為0.

修正方法是采用laplace平滑。

 

 

4.laplace平滑 

假設y可以取k個不同的值,,那么

分子加1,分母加k,以避免 在預測從未見過的新值時,分子分母都為0的情況。

在上述郵件問題中,

 

             

 

同理

 

 

第五講完。

 


免責聲明!

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



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