生成式模型VS判別式模型淺析

這兩天在學習隱馬爾可夫鏈模型(HMM)和條件隨機場模型(CRF),在學習完CRF後,我發現線性鏈CRF好像和HMM差不多嘛,兩者有什麼區別呢?

查閱資料後發現兩者差異有很多,其中有一個區別是:HMM屬於生成式模型(Generative Model),而CRF屬於判別式模型(Discrimitive Model)。

今天總結一下這兩個模型之間的區別。

假設我們已有訓練數據(X,Y),X是屬性集合,Y是類別標記。這時來了一個新的樣本 x ,我們想要預測它的類別 y

我們最終的目的是要求得最大的條件概率 P(y|x) 作為新樣本的分類。

1.判別式模型這麼做:

我們根據訓練數據得到分類函數和分界面,比如說根據SVM模型得到了一個分界面,然後直接計算條件概率 P(y|x) ,我們將最大的 P(y|x) 作為新樣本的分類。判別式模型不能反映訓練數據本身的特性,能力有限,其只能告訴我們分類的類別。

2.生成式模型這麼做

一般我們對每一個類建立一個模型,有多少個類別,我們就建立多少個模型。比方說類別標籤有{貓,狗,豬},那首先根據貓的特徵學習出一個貓的模型,再根據狗的特徵學習出狗的模型,之後分別計算新測試樣本 x 跟三個類別的聯合概率 P(x,y) ,然後根據貝葉斯公式:

P(y|x)=frac{P(x,y)}{P(x)}

分別計算 P(y|x) ,選擇三類中最大的 P(y|x) 作為樣本的分類。

我們發現,不管是生成式模型還是判別式模型,它們最終的判斷依據都是條件概率 P(y|x) ,但是生成式模型先計算了聯合概率 P(x,y) ,再由貝葉斯公式計算得到條件概率。生成式模型可以體現更多數據本身的分布信息,其普適性更廣。

最後,兩者的聯繫是:由生成式模型可以得到判別式模型,但由判別式模型不能得到生成式模型。

以上就是生成式模型和判別式模型的一些區別,希望能給大家一些幫助。

下面是兩篇博客的鏈接,作為補充:

blog.csdn.net/wolenski/

leexiang.com/discrimina

推薦閱讀:

TAG:機器學習 | 深度學習DeepLearning |