這節主要介紹了生成學習算法。首先與邏輯回歸分類算法進行比較,引出生成學習算法的核心思想,然后介紹了一種基本的生成學習算法——高斯判別分析,並進一步對高斯分布條件進行討論,比較生成學習算法與判別學習算法的區別,最后介紹了兩種適合文本分類的朴素貝葉斯方法,並由引入新數據時產生的問題介紹拉普拉斯平滑法。
基本思路是:
- 生成學習算法(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。
朴素貝葉斯第一種模型的拉普拉斯平滑為:
朴素貝葉斯第二種模型的拉普拉斯平滑為:
參考文獻: