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