機器學習自學筆記06: Logistic regression

Original article was published on Deep Learning on Medium

Discriminative vs Generative

logistic regression 的方法,我們把它稱之為 Discriminative ;
之前用gaussian 來描述posterior probability 這件事,我們稱之為 Generative

實際上他們兩個使用的model(function) 是一樣的。
Logistic regression可以用gradient descent 的方法直接把b 和 w 找出來;如果用Generative model 的話,我們要先去算 u1\u2\Σ ,然後算出b 和 w

而兩個方法找出的b 和 w是不一樣的。就算我們的function set 是同一個,但是做了不同的假設,所以同樣training data 找出的參數會是不異樣的

在Logistic regression 中,我們沒有做任何實質性假設,沒有對probability distribution 有任何描述,只是單純的找b 和 w
而在Generative model 裡面,我們對probability distribution有實際性的假設。之前是假設Gaussian,甚至假設在相互獨立的前提下是否可以是naive bayes ,根據這些假設我們最終才找到b 和 w

哪一個假設的結果是較好的呢? 下圖是兩個的結果

實際上Discriminative 的方法常常會比Generative 的方法表現的較好,下面舉一個例子:

toy exmaple

假設總共有兩個class ,training data 如下: 每一筆 data 有兩個feature , 總共有13筆data

如果現在有一組testing data ,兩個feature 都是1 ,憑直覺來說他肯定是class1 ,但是若用naive bayes 的方法,得到的結果如何呢?

通過naive bayes 的結果竟然這筆testing data 屬於class 2 的可能性更大,這跟我們的直覺相反。
對naive bayes 來說,他是不考慮不同dimension之間的correlation ,naive bayes 認為在dimension相互獨立的前提下,class 2 沒有sample 出都是1 的 data , 因為sample 的數量不夠多,如果sample 夠多,他認為class 2 觀察到都是1的data 可能性會比class 1要大

因為naive bayes 認為從class 2 中找到樣本點 x 的機率是 x 中第一個feature 出現的機率與第二個feature 出現的機率的乘積 : P(x|C2)=P(x1=1|C2) * P(x2=1|C2) ;但是直覺告訴自己,兩個feature 之間肯定有某種關聯,P(x|C2)不能夠這麼輕易的被拆分成兩個獨立的機率乘積,也就是: Naive bayes 自做聰明的多設了一些條件

所以Discriminative model 和Generative model 的差別就在於 :
Discriminative model 是完全不做任何假設的
Generative model則假設你的data來自某個機率模型

Generative model 做的事情就是腦補,他會自己去想像一些事情,於是與我們天然的想法不太一樣。就像在toy example 裡,我們做了naive bayes 這樣一個假設(事實上我們並不知道這兩個feature 是否相互獨立),於是naive bayes 會在class 2 裡並沒有出現兩個feature 都是1的樣本點的前提下,自己去腦補這樣的點

通常腦補不是一件好事,因為你給你的data強加了一些他沒有告訴你的屬性,但是! 在data 很少的情況下,腦補也是有用的。

discriminative model並不是在所有的情況下都可以贏過generative model
discriminative model 是十分依賴data的,而 generative model 可以在data數量不足或資料本身的label有一些問題時,對資料做假設,反而能將資料不足的問題降低

Discriminative vs Generative 兩種方法的比較

關於分類的問題(主要二元分類),我們一般有兩種方法處理問題:
Discriminative & Generative ,注意到分類的model都是從bayes 出發的 :

  1. Discriminative
    不會做任何假設,因此無法通過假定的probability distribution 得到P(x|Ci)的表達是,因此使用的是(2),直接利用cross entropy 和 gradient descent 結合maximum likelihood 得到最佳的b & w 解,以確定model 的具體形式
    Discriminative的優點在於: 在data 充足的情況下,他訓練出來的model的準確率一般是比generative model 來得高
  2. Generative model
    Generative model 會假設一個帶參數的probability contribute ,利用這個假設的機率分布函數帶入(1)中去計算P(x|Ci)&P(x|Cj) ,結合maximun likelihood 估計法最終得到最樣的參數以確定這個Model 的具體形式
    Generative 的好處是: 它對data的依賴並沒有像Discriminative這麼嚴重,在data數量少 或是data本身就存在noise的情況下受到影響會更小,它還可以做到prior 部分與class-dependent 部分分開處裡,如果可以借助其他的方式提高prior model 的準確率,對整一個model是有所幫助的。