本文轉(zhuǎn)自徐飛翔的“生成模型和判別模型的區(qū)別”
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
機(jī)器學(xué)習(xí)的目標(biāo)
首先,我們先要討論整個(gè)機(jī)器學(xué)習(xí)的目標(biāo),在應(yīng)用中最常見到的分類問題中,我們需要根據(jù)現(xiàn)有樣本預(yù)測出其標(biāo)簽
因此我們可以選擇學(xué)習(xí)出條件概率
,如softmax分類器,logistic回歸,亦是或者學(xué)習(xí)出樣本特征
?到標(biāo)簽
?的直接映射(比起前者沒有概率,而是直接的一個(gè)結(jié)果),如感知器Perceptron,SVM支持向量機(jī)。學(xué)習(xí)出了條件概率或者是其映射之后,我們就可以根據(jù)其樣本特征
預(yù)測其標(biāo)簽了
?。
生成模型 or 判別模型
這里,我們直接給出兩者的定義:
判別模型: 模型直接學(xué)習(xí)出條件概率 ,模型包括kNN,感知機(jī),決策樹,邏輯回歸,最大熵模型,SVM,提升方法,條件隨機(jī)場,神經(jīng)網(wǎng)絡(luò),···
生成模型: 模型學(xué)習(xí)出聯(lián)合概率分布,然后根據(jù)貝葉斯公式,得出條件概率分布
,模型包括樸素貝葉斯法、隱馬爾科夫模型、混合高斯模型、AODE、Latent Dirichlet allocation(unsup)、Restricted Boltzmann Machine,···
于是,兩者的區(qū)別就是是否需要學(xué)習(xí)出聯(lián)合概率分布 我們這里舉一個(gè)維基百科里面的例子:
假如我們現(xiàn)在有四個(gè)樣本:
在判別模型眼中:
而在生成模型眼中:
而在博客《機(jī)器學(xué)習(xí)之判別式模型和生成式模型》中,舉了一個(gè)很好的例子描述這兩者的區(qū)別,這里引用如下:
判別模型:要確定一個(gè)羊是山羊還是綿羊,用判別模型的方法是從歷史數(shù)據(jù)中學(xué)習(xí)到模型,然后通過提取這只羊的特征來預(yù)測出這只羊是山羊的概率,是綿羊的概率。
生成模型:利用生成模型是根據(jù)山羊的特征首先學(xué)習(xí)出一個(gè)山羊的模型,然后根據(jù)綿羊的特征學(xué)習(xí)出一個(gè)綿羊的模型,然后從這只羊中提取特征,放到山羊模型中看概率是多少,在放到綿羊模型中看概率是多少,哪個(gè)大就是哪個(gè)。
Reference
- Generative Model Wikipedia
- 知乎, 機(jī)器學(xué)習(xí)“判定模型”和“生成模型‘有什么區(qū)別?
- 機(jī)器學(xué)習(xí)之判別式模型和生成式模型