1. 程式人生 > >機器學習_生成式模型與判別式模型

機器學習_生成式模型與判別式模型

在這裡插入圖片描述
從概率分佈的角度看待模型。
給個例子感覺一下: 如果我想知道一個人A說的是哪個國家的語言,我應該怎麼辦呢?

  • 生成式模型

我把每個國家的語言都學一遍,這樣我就能很容易知道A說的是哪國語言,並且C、D說的是哪國的我也可以知道,進一步我還能自己講不同國家語言。

  • 判別式模型

我只需要學習語言之間的差別是什麼,學到了這個界限自然就能區分不同語言,我能說出不同語言的區別,但我哦可能不會講。

如果我有輸入資料 x ,並且想通過標註 y 去區分不同資料屬於哪一類,生成式模型是在學習樣本和標註的聯合概率分佈
p

( x , y ) p(x,y) 而判別式模型是在學習條件概率 p (
y x ) p(y|x)

生成式模型 p ( x

, y ) p(x,y) 可以通過貝葉斯公式轉化為 p ( y x ) = p ( x , y ) p ( x )   p(y|x)=\frac{p(x,y)}{p(x)}\ ,並用於分類,而聯合概率分佈 p ( x , y ) p(x,y) 也可用於其他目的,比如用來生成樣本對 ( x , y ) (x,y)
判別式模型的主要任務是找到一個或一系列超平面,利用它(們)劃分給定樣本到給定分類,這也能直白的體現出“判別”模型這個名稱。

最後給一個很簡單的例子說明一下:
假如我有以下獨立同分布的若干樣本 (x,y) ,其中 x 為特徵,
y { 0 , 1 } y\in\left\{ 0,1 \right\} 為標註, ( x , y ) { ( 2 , 1 ) , ( 2 , 1 ) , ( 3 , 1 ) , ( 3 , 1 ) , ( 3 , 1 ) } (x,y)\in\left\{ (2,-1),(2,-1),(3,-1),(3,1),(3,1) \right\} 則:
p ( x , y ) p(x,y)
y ( y x ) y(y|x)
一些理論可看:On Discriminative vs Generative classifiers: A comparison of logistic regression and naive Bayes。

  • 常見生成式模型
    Naive Bayes
    Gaussians
    Mixtures of Gaussians
    Mixtures of Experts
    Mixtures of Multinomials
    HMM
    Markov random fields
    Sigmoidal belief networks
    Bayesian networks
  • 常見判別式模型
    Linear regression
    Logistic regression
    SVM
    Perceptron
    Traditional Neural networks
    Nearest neighbor
    Conditional random fields