在學(xué)習(xí)機器學(xué)習(xí)的過程中我們總會遇見一些模型,而其中的一些模型其實可以歸類于生成模型或者是判別模型中去,而這一篇文章我將會簡單的概述下我最近所遇到的一些模型,并且按照自己的理解去記錄下來,其中肯定會有差錯,如果那里不對,還請各位多多指教.
1:演變關(guān)系
上邊的圖是
這一篇論文中的一個截圖,而第一張圖其實講的是幾種模型的演進(jìn)的一個過程,而這個過程如果加以簡單的概括的話,可以歸類于上邊的一欄為產(chǎn)生型模型,下邊的一欄為判別型模型,那這兩種模型有什么區(qū)別,這兩種模型又是什么?接下來我們分別來掰扯掰扯這兩種模型.
1:產(chǎn)生型模型
定義: 由數(shù)據(jù)學(xué)習(xí)聯(lián)合概率密度分布P(X,Y)酬姆,然后求出條件概率分布P(Y|X)作為預(yù)測的模型奥溺,即生成模型:P(Y|X)= P(X,Y)/ P(X).
那產(chǎn)生型模型的典型代表其實就是樸素貝葉斯.這一種的模型的主要思想是先估算聯(lián)合概率密度p(x,y),再通過貝葉斯公式求出p(y|x).那現(xiàn)在我們就以之前文章中所說過的垃圾郵件分類的例子再來講一下產(chǎn)生型模型的處理方法.
現(xiàn)在我們假設(shè)要分類垃圾郵件和正常的郵件(分類處理郵件是文本分類和模式識別的一種典型應(yīng)用),現(xiàn)在我們假設(shè)采用最簡單的特征描述的方法,首先我們先去找一個詞庫,然后把詞庫中的單詞都?xì)w類起來,然后把每一封郵件表示成一個向量,向量中的每一維都是詞庫中一個詞的0-1值,1表示出現(xiàn)這個詞語,0表示沒有出現(xiàn)這個詞語.
比如一封郵件出現(xiàn)了”偉哥”,”理財”,”投資”,卻沒有出現(xiàn)”邀請”,”還款”,”金融”這樣的詞語,我們就可以把這個向量表示為:(mathtype沒法輸入中文,所以用拼音代替了)
如果這個詞庫里的詞語過多,我們的x的維度也會很大,這時候我們就應(yīng)該要采取一些比如多項式分布模型的方法來去簡化計算,這個我們就不多做討論.
回到上邊的垃圾郵件問題中來,對于郵件,我們大致上可以將每一封郵件看作是相互獨立的,這樣每一次我們?nèi)∫环忄]件就可以看作是一次隨機事件,那么我們的可能性就會有2的n次方種可能性,這樣我們處理起來參數(shù)過多,那也就沒有什么實用價值.
那這時候我們?nèi)绻蒙赡P腿プ?就會有新的思路,我們要求的是p(y|x),那么按照條件概率公式可以的到,我們只需要求p(x|y),p(z),那么如果假設(shè)郵件x之間是相互獨立的,這個就可以說符合貝葉斯假設(shè),舉個例子說:
假設(shè)我們?nèi)ヅ袆e一封郵件已經(jīng)是垃圾郵件了(y=1),并且這個郵件出現(xiàn)”偉哥”和出現(xiàn)其他的詞是無關(guān)的,那么就說”偉哥”和其他的詞是相互獨立的.
那現(xiàn)在我們假設(shè):
給定條件z,使得X,Y條件獨立,那形式化可以表示為:
那如果詞庫中出現(xiàn)了5000個詞語,我們?nèi)堪言~語放進(jìn)來,這時候我們再回到問題中,就可以根據(jù)上式列出公式來:
而這一步的處理其實和我們之前的文章的n元語法模型是類似的,但是這里邊說的是每個詞語之間是相互獨立的,而”偉哥”和”性”,一般來說是有很大的關(guān)系的,這樣的詞匯會經(jīng)常出現(xiàn)在垃圾郵件中.
那現(xiàn)在我們建立形式化的模型:
這時候我們想要的是需要模型能夠在訓(xùn)練數(shù)據(jù)上獲得的概率值能夠足夠的精確,這時候我們使用極大似然估計:
從上式中我們看見,我們要求的是聯(lián)合概率密度,這樣從側(cè)面來佐證了樸素貝葉斯是生成模型.這時候我們帶入求解:
這樣我們求出這個公式的意義是,前兩個表示的是在y=1和0的樣本中,特征x的比例,最后一個式子表示的是y=1的樣本數(shù)占全部樣本數(shù)的比例,這時候我們再去變化一下.
就能夠給去判別一封郵件是垃圾郵件還是有用的郵件,需不需要進(jìn)行處理,當(dāng)然這當(dāng)中需要一些數(shù)學(xué)上面的技巧,這個是我們需要的關(guān)注的.
而從上邊的一堆公式最后推出這最后的一個模型,是不是有一種感覺是產(chǎn)生了一種模型的感覺,這其實就是產(chǎn)生型模型的由來.
2:判別型模型
定義:由數(shù)據(jù)直接學(xué)習(xí)決策函數(shù)Y=f(X)或者條件概率分布P(Y|X)作為預(yù)測的模型层亿,即判別模型》皆郑基本思想是有限樣本條件下建立判別函數(shù)碌更,不考慮樣本的產(chǎn)生模型裕偿,直接研究預(yù)測模型痛单。
還是上邊的這個例子:
如果我們要判別一封郵件是不是垃圾郵件,用判別型模型的方法就是從歷史數(shù)據(jù)中學(xué)習(xí)到模型,然后我們再去從新的郵件中去提取一些新的特征,比如包含不包含”偉哥”,”投資”,這樣的詞語,然后根據(jù)之前的學(xué)習(xí)到的模型直接進(jìn)行判別就行了,由于我們關(guān)注的是y的離散結(jié)果那個正確率高,而不是關(guān)心當(dāng)中每一個部分的概率,這樣的話式子就可以直接寫成:
而這里判別模型求得是條件概率,而生成模型求得是聯(lián)合概率.
3:判別模型和生成模型的區(qū)別:
常見的判別模型有線性回歸旭绒、對數(shù)回歸焦人、線性判別分析、支持向量機花椭、boosting房午、條件隨機場、神經(jīng)網(wǎng)絡(luò)等歪沃。
常見的生產(chǎn)模型有隱馬爾科夫模型、樸素貝葉斯模型沪曙、高斯混合模型、LDA碳默、Restricted Boltzmann Machine等缘眶。
特點:
一般認(rèn)為判別式模型更受喜愛,“人們應(yīng)該更直接去解決問題巷懈,永進(jìn)丌要把求解更復(fù) 雜的問題作為中間階段”(Vapnik),吳恩達(dá)的論文作了較全面的分析凑保,產(chǎn)生式模型 (樸素貝葉斯)在少量樣本的情況下,可以取得更好的精確率欧引,判別式模型(logistics 回歸)在樣本增加的情況下恳谎,逐漸逼近前者的精確率.
而在吳恩達(dá)這一篇論文中詳細(xì)概述了這件事情,推薦大家有時間好好閱讀一番: