本講大綱:
1.生成學習算法(Generative learning algorithm)
2.高斯判別分析(GDA,Gaussian Discriminant Analysis)
3.樸素貝葉斯(Naive Bayes)
4.拉普拉斯平滑(Laplace smoothing)
1.生成學習算法
判別學習算法(discriminative learning algorithm):直接學習p(y|x)(比如說logistic回歸)或者說是從輸入直接映射到{0,1}.
生成學習算法(generative learning algorithm):對p(x|y)(和p(y))進行建模.
簡單的來說,判別學習算法的模型是通過一條分隔線把兩種類別區分開,而生成學習算法是對兩種可能的結果分別進行建模,然后分別和輸入進行比對,計算出相應的概率。
比如說良性腫瘤和惡性腫瘤的問題,對良性腫瘤建立model1(y=0),對惡性腫瘤建立model2(y=1),p(x|y=0)表示是良性腫瘤的概率,p(x|y=1)表示是惡性腫瘤的概率.
根據貝葉斯公式(Bayes rule)推導出y在給定x的概率為:
</br>
2.高斯判別分析 GDA
GDA是我們要學習的第一個生成學習算法.
GDA的兩個假設:
假設輸入特征x∈Rn,并且是連續值;
p(x|y)是多維正態分布(multivariate normal distribution);
2.1 多維正態分布
若x服從多維正態分布(也叫多維高斯分布),均值向量(mean vector)
均值:
高斯分布的一些例子:
左圖均值為零(21的零向量),協方差矩陣為單位矩陣I(22)(成為標準正態分布). 中圖協方差矩陣為0.6I, 右圖協方差矩陣為2I
2.2 高斯判別分析模型
模型的參數為φ,μ0,μ1,∑,
求出最大似然估計為:
結果如圖所示:
注:這張圖很好地描述了GDA的過程:上面的小點就是訓練樣本,我們會對正樣本(圖中的x樣本)擬合出一個高斯分布,這個高斯分布表示了 p(x|y=1)。之后再觀察負樣本(圖中的o樣本),擬合出一個高斯分布,這個高斯分布表示了 p(x|y=0)。然后這兩個高斯分布的密度函數可以定義出兩個類別的分隔器。這個分隔器比邏輯回歸得到的直線要更復雜一些。
1.3 討論GDA和logistic回歸
GDA模型和logistic回歸有一個很有意思的關系. 如果把
關于模型的選擇: 剛才說到如果p(x|y)是一個多維的高斯分布,那么p(y|x)必然能推出一個logistic函數;反之則不正確,p(y|x)是一個logistic函數并不能推出p(x|y)服從高斯分布.這說明GDA比logistic回歸做了更強的模型假設.
如果p(x|y)真的服從或者趨近于服從高斯分布,則GDA比logistic回歸效率高.
當訓練樣本很大時,嚴格意義上來說并沒有比GDA更好的算法(不管預測的多么精確).
事實證明即使樣本數量很小,GDA相對logisic都是一個更好的算法.
但是,logistic回歸做了更弱的假設,相對于不正確的模型假設,具有更好的魯棒性(robust).許多不同的假設能夠推出logistic函數的形式. 比如說,如果#
3.樸素貝葉斯
在GDA模型中,特征向量x是連續的實數向量.如果x是離散值,我們需要另一種學習算法了.
例子:垃圾郵件分類問題 首先是把一封郵件作為輸入特征,與已有的詞典進行比對,如果出現了該詞,則把向量的xi=1,否則xi=0,例如:
我們要對p(x|y)建模,但是假設我們的詞典有50000個詞,那么
為了對p(x|y)建模,我們做一個很強的假設,假設給定y,xi是條件獨立(conditionally independent)的.這個假設成為樸素貝葉斯假設(Naive Bayes assumption).
因此有:
意思就是比如垃圾郵件分類,一些詞的出現與否并不影響你對另一些詞出現與否的判斷。雖然說樸素貝葉斯假設是很強的(因為實際上是有影響的),但是其實這個算法在很多問題都工作的很好.
模型參數包括:
聯合似然性(joint likelihood)為:
很容易計算:
樸素貝葉斯的問題: 假設在一封郵件中出現了一個以前郵件從來沒有出現的詞,在詞典的位置是35000,那么得出的最大似然估計為:
在統計上來說,在你有限的訓練集中沒有見過就認為概率是0是不科學的.
</br>
4.laplace平滑
為了避免樸素貝葉斯的上述問題,我們用laplace平滑來優化這個問題.回到樸素貝葉斯問題,通過laplace平滑:
分子加1,分母加1就把分母為零的問題解決了.
</br>
擴展
1. 生成模型和判別模型的區別
有監督機器學習方法可以分為生成方法和判別方法
- 常見的生成方法有混合高斯模型、樸素貝葉斯法和隱形馬爾科夫模型等
- 常見的判別方法有SVM、LR等)
需要估計joint distribution的是generative model, 直接估計conditional distribution的是discriminative model。GMM 是一個典型的generative model, 它估計的是不同feature的聯合分布。
生成方法學習出的是生成模型,判別方法學習出的是判別模型。
判別模型
求解的思路是:
條件分布------>模型參數后驗概率最大------->(似然函數參數先驗)最大------->最大似然-
優點
3)由于直接學習
1)與生成模型缺點對應,首先是節省計算資源,另外,需要的樣本數量也少于生成模型。
2)準確率往往較生成模型高。
P(\tilde{c}|\tilde{x} ) 缺點
沒有生成模型的上述優點。
生成模型
求解思路是:
以樸素貝葉斯為例,聯合分布------->求解類別先驗概率和類別條件概率優點
- 生成給出的是聯合分布,不僅能夠由聯合分布計算條件分布(反之則不行),還可以給出其他信息,比如可以使用P(x)=求和(P(x|ci)) 來計算邊緣分布P(x)。如果一個輸入樣本的邊緣分布P(x)很小的話,那么可以認為學習出的這個模型可能不太適合對這個樣本進行分類,分類效果可能會不好,這也是所謂的outlier detection。
2)生成模型收斂速度比較快,即當樣本數量較多時,生成模型能更快地收斂于真實模型。
3)生成模型能夠應付存在隱變量的情況,比如混合高斯模型就是含有隱變量的生成方法。
- 缺點
1)聯合分布是能提供更多的信息,但也需要更多的樣本和更多計算,尤其是為了更準確估計類別條件分布,需要增加樣本的數目,而且類別條件概率的許多信息是我們做分類用不到,因而如果我們只需要做分類任務,就浪費了計算資源。
2)另外,實踐中多數情況下判別模型效果更好。
3)對數據分布做出的假設要求更強,魯棒性較差。