詳解生成式模型與辨別式模型
分類模型可以分為兩大類:生成式模型與辨別式模型。本文解釋了這兩種模型類型之間的區(qū)別,并討論了每種方法的優(yōu)缺點(diǎn)。
辨別式模型
辨別式模型是一種能夠?qū)W習(xí)輸入數(shù)據(jù)和輸出標(biāo)簽之間關(guān)系的模型,它通過(guò)學(xué)習(xí)輸入數(shù)據(jù)的特征來(lái)預(yù)測(cè)輸出標(biāo)簽。在分類問(wèn)題中,我們的目標(biāo)是將每個(gè)輸入向量x分配給標(biāo)簽y。判別模型試圖直接學(xué)習(xí)將輸入向量映射到標(biāo)簽的函數(shù)f(x)。這些模型可以進(jìn)一步分為兩個(gè)子類型:
分類器試圖找到f(x)而不使用任何概率分布。這些分類器直接為每個(gè)樣本輸出一個(gè)標(biāo)簽,而不提供類的概率估計(jì)。這些分類器通常稱為確定性分類器或無(wú)分布分類器。此類分類器的例子包括k近鄰、決策樹和SVM。
分類器首先從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)后驗(yàn)類概率P(y = k|x),并根據(jù)這些概率將一個(gè)新樣本x分配給其中一個(gè)類(通常是后驗(yàn)概率最高的類)。
這些分類器通常被稱為概率分類器。這種分類器的例子包括邏輯回歸和在輸出層中使用sigmoid或softmax函數(shù)的神經(jīng)網(wǎng)絡(luò)。
在所有條件相同的情況下,我一般都使用概率分類器而不是確定性分類器,因?yàn)檫@個(gè)分類器提供了關(guān)于將樣本分配給特定類的置信度的額外信息。
一般的判別式模型包括:
- 邏輯回歸(Logistic Regression,LR)
- 支持向量機(jī)(Support Vector Machine,SVM)
- 決策樹(Decision Tree,DT)
生成式模型
生成式模型在估計(jì)類概率之前學(xué)習(xí)輸入的分布。生成式模型是一種能夠?qū)W習(xí)數(shù)據(jù)生成過(guò)程的模型,它可以學(xué)習(xí)輸入數(shù)據(jù)的概率分布,并生成新的數(shù)據(jù)樣本。
更具體地說(shuō)生成模型首先從訓(xùn)練數(shù)據(jù)中估計(jì)類別的條件密度P(x|y = k)和先驗(yàn)類別概率P(y = k)。他們?cè)噲D了解每個(gè)分類的數(shù)據(jù)是如何生成的。
然后利用貝葉斯定理估計(jì)后驗(yàn)類概率:
貝葉斯規(guī)則的分母可以用分子中出現(xiàn)的變量來(lái)表示:
生成式模型也可以先學(xué)習(xí)輸入和標(biāo)簽P(x, y)的聯(lián)合分布,然后將其歸一化以得到后驗(yàn)概率P(y = k|x)。一旦我們有了后驗(yàn)概率,我們就可以用它們將一個(gè)新的樣本x分配給其中一個(gè)類(通常是后驗(yàn)概率最高的類)。
例如,考慮一個(gè)圖像分類任務(wù)中,我們需要區(qū)分圖像狗(y = 1)和貓(y = 0)。生成模型首先會(huì)建立一個(gè)狗 P(x|y = 1) 的模型,以及貓 P(x|y = 0) 的模型。然后在對(duì)新圖像進(jìn)行分類時(shí),它會(huì)將其與兩個(gè)模型進(jìn)行匹配,以查看新圖像看起來(lái)更像狗還是更像貓。
為生成模型允許我們從學(xué)習(xí)的輸入分布P(x|y)中生成新的樣本。所以我們將其稱之為生成式模型。最簡(jiǎn)單的例子是,對(duì)于上面的模型我們可以通過(guò)從P(x|y = 1)中采樣來(lái)生成新的狗的圖像。
一般的生成模型包括
- 樸素貝葉斯(Na?ve Bayes)
- 高斯混合模型(GMMs)
- 隱馬爾可夫模型(hmm)
- 線性判別分析 (LDA)
深度生成模型(DGMs)結(jié)合了生成模型和深度神經(jīng)網(wǎng)絡(luò):
- 自編碼器(Autoencoder,AE)
- 生成式對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)
- 自回歸模型,例如GPT(Generative Pre-trained Transformer)是一種包含數(shù)十億參數(shù)的自回歸語(yǔ)言模型。
區(qū)別和優(yōu)缺點(diǎn)
生成式模型和辨別式模型的主要區(qū)別在于它們學(xué)習(xí)的目標(biāo)不同。生成式模型學(xué)習(xí)輸入數(shù)據(jù)的分布,可以生成新的數(shù)據(jù)樣本。辨別式模型學(xué)習(xí)輸入數(shù)據(jù)和輸出標(biāo)簽之間的關(guān)系,可以預(yù)測(cè)新的標(biāo)簽。
生成式模型:
生成模型給了我們更多的信息,因?yàn)樗鼈兺瑫r(shí)學(xué)習(xí)輸入分布和類概率??梢詮膶W(xué)習(xí)的輸入分布中生成新的樣本。并且可以處理缺失的數(shù)據(jù),因?yàn)樗鼈兛梢栽诓皇褂萌笔е档那闆r下估計(jì)輸入分布。但是大多數(shù)判別模型要求所有的特征都存在。
訓(xùn)練復(fù)雜度高,因?yàn)樯墒侥P鸵⑤斎霐?shù)據(jù)和輸出數(shù)據(jù)之間的聯(lián)合分布,需要大量的計(jì)算和存儲(chǔ)資源。對(duì)數(shù)據(jù)分布的假設(shè)比較強(qiáng),因?yàn)樯墒侥P鸵⑤斎霐?shù)據(jù)和輸出數(shù)據(jù)之間的聯(lián)合分布,需要對(duì)數(shù)據(jù)的分布進(jìn)行假設(shè)和建模,因此對(duì)于復(fù)雜的數(shù)據(jù)分布,生成式模型在小規(guī)模的計(jì)算資源上并不適用。
生成模型可以處理多模態(tài)數(shù)據(jù),因?yàn)樯墒侥P涂梢越⑤斎霐?shù)據(jù)和輸出數(shù)據(jù)之間的多元聯(lián)合分布,從而能夠處理多模態(tài)數(shù)據(jù)。
辨別式模型:
如果不對(duì)數(shù)據(jù)做一些假設(shè),生成式模型學(xué)習(xí)輸入分布P(x|y)在計(jì)算上是困難的,例如,如果x由m個(gè)二進(jìn)制特征組成,為了對(duì)P(x|y)建模,我們需要從每個(gè)類的數(shù)據(jù)中估計(jì)2個(gè)?參數(shù)(這些參數(shù)表示m個(gè)特征的2個(gè)?組合中的每一個(gè)的條件概率)。而Na?ve Bayes等模型對(duì)特征進(jìn)行條件獨(dú)立性假設(shè),以減少需要學(xué)習(xí)的參數(shù)數(shù)量,因此訓(xùn)練復(fù)雜度低。但是這樣的假設(shè)通常會(huì)導(dǎo)致生成模型比判別模型表現(xiàn)得更差。
對(duì)于復(fù)雜的數(shù)據(jù)分布和高維數(shù)據(jù)具有很好的表現(xiàn),因?yàn)楸鎰e式模型可以靈活地對(duì)輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的映射關(guān)系進(jìn)行建模。
辨別式模型對(duì)噪聲數(shù)據(jù)和缺失數(shù)據(jù)敏感,因?yàn)槟P椭豢紤]輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的映射關(guān)系,不利用輸入數(shù)據(jù)中的信息填補(bǔ)缺失值和去除噪聲。
總結(jié)
生成式模型和辨別式模型都是機(jī)器學(xué)習(xí)中重要的模型類型,它們各自具有優(yōu)點(diǎn)和適用場(chǎng)景。在實(shí)際應(yīng)用中,需要根據(jù)具體任務(wù)的需求選擇合適的模型,并結(jié)合混合模型和其他技術(shù)手段來(lái)提高模型的性能和效果。