Part 4. 生成學習演算法(Generative Learning algorithms)

1.GDA(Gaussian discriminant analysis)

1.1先了解一下高斯分佈

前面已經瞭解到一維高斯分佈

現在瞭解一下多維高斯分佈

由以上圖示可知,μ 決定圖像的位置,σ 和 Σ 決定圖像的形狀

1.2 GDA model

log-likelihood:

參數為: φ, Σ, μ0 and μ1

由極大似然估計,得:

模型如圖:

直線表示等概率分界,直線兩邊的等高線圖形相同,因為Σ相同。

1.3 GDA和logistic regression

GDA模型可以寫成對數幾率回歸模型:

左高斯圖為p(x|y=0),右高斯圖為p(x|y=1),y~伯努利分佈,擬合出p(y),可求出p(x)=p(x|y=0)p(y=0)+p(x|y=1)p(y=1),再利用貝葉斯公式求出p(y=1|x),描點繪圖可以發現和logistic regression的sigmoid函數相似。

左高斯圖為p(x|y=0),右高斯圖為p(x|y=1),y~伯努利分佈,擬合出p(y),可求出p(x)=p(x|y=0)p(y=0)+p(x|y=1)p(y=1),再利用貝葉斯公式求出p(y=1|x),描點繪圖可以發現和logisticregression的sigmoid函數相似。

GDA VS. logistic regression:

GDA的條件更強,因此當訓練集數據滿足高斯分佈時,GDA模型更好。但是當訓練集數據不滿足高斯分佈,則對數幾率回歸比較好(泛化)。一般情況下,用對數幾率回歸。此處回答了part 2的問題:為什麼選logistic function?

2.Naive Bayes

GDA的特徵向量x是連續的,在NB中向量x是離散化的(每個元素用0,1表示)

以郵件過濾器為例,假設垃圾郵件有關鍵字:buy,price… 用一個特徵向量表示(0,0,…,1,0,…)。向量維度為辭彙表大小,0表示非關鍵字,1表示關鍵字。假設辭彙表有5000個單詞,那共有2^5000(指數級)個特徵向量,同樣,需要這麼多的參數來擬合。

為此,我們假設在y條件下,x特徵向量相互獨立(這是一個強條件)即

第一個等號是根據條件概率公式,第二個等號是根據我們做出的條件獨立性假設。

因此,我們的參數數量就減少到O(n)級,有: φi|y=1 = p(xi = 1|y = 1), φi|y=0 = p(xi = 1|y = 0), and φy = p(y = 1).

極大似然估計,得:

其實很好理解,如,φj|y=1 表示的就是出現單詞 j 時垃圾文件佔得比例。

當GDA模型不適用時,將特徵向量離散化,用樸素貝葉斯法。

2.1Laplace smoothing

仍以郵件過濾器為例,當出現一個之前從未出現的單詞,如nip,排在第3500個,就會出現 φ3500無論如何都等於0的情況。因為

所以,

為此,我們引入laplace smoothing,將 φ定義為

這樣永遠不會等於0.

其中,k為y的可能取值數量,即分類數目,

這樣,原來郵件過濾器的參數改為:


推薦閱讀:
相關文章