判别模型、生成模型与朴素贝叶斯方法
1.判別模型與生成模型
上篇報告中提到的回歸模型是判別模型,也就是根據(jù)特征值來求結(jié)果的概率。形式化表示為,在參數(shù)確定的情況下,求解條件概率。通俗的解釋為在給定特征后預(yù)測結(jié)果出現(xiàn)的概率。
比如說要確定一只羊是山羊還是綿羊,用判別模型的方法是先從歷史數(shù)據(jù)中學(xué)習(xí)到模型,然后通過提取這只羊的特征來預(yù)測出這只羊是山羊的概率,是綿羊的概率。換一種思路,我們可以根據(jù)山羊的特征首先學(xué)習(xí)出一個山羊模型,然后根據(jù)綿羊的特征學(xué)習(xí)出一個綿羊模型。然后從這只羊中提取特征,放到山羊模型中看概率是多少,再放到綿羊模型中看概率是多少,哪個大就是哪個。形式化表示為求(也包括,y是模型結(jié)果,x是特征。
利用貝葉斯公式發(fā)現(xiàn)兩個模型的統(tǒng)一性:
由于我們關(guān)注的是y的離散值結(jié)果中哪個概率大(比如山羊概率和綿羊概率哪個大),而并不是關(guān)心具體的概率,因此上式改寫為:
其中稱為后驗(yàn)概率,稱為先驗(yàn)概率。
由,因此有時稱判別模型求的是條件概率,生成模型求的是聯(lián)合概率。
常見的判別模型有線性回歸、對數(shù)回歸、線性判別分析、支持向量機(jī)、boosting、條件隨機(jī)場、神經(jīng)網(wǎng)絡(luò)等。
常見的生產(chǎn)模型有隱馬爾科夫模型、樸素貝葉斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。
這篇博客較為詳細(xì)地介紹了兩個模型:
http://blog.sciencenet.cn/home.php?mod=space&uid=248173&do=blog&id=227964
2.高斯判別分析(Gaussian discriminant analysis)
1) 多值正態(tài)分布
多變量正態(tài)分布描述的是n維隨機(jī)變量的分布情況,這里的變成了向量,也變成了矩陣。寫作。假設(shè)有n個隨機(jī)變量X1,X2,…,Xn。的第i個分量是E(Xi),而。
概率密度函數(shù)如下:
其中|是的行列式,是協(xié)方差矩陣,而且是對稱半正定的。
當(dāng)是二維的時候可以如下圖表示:
其中決定中心位置,決定投影橢圓的朝向和大小。
如下圖:
對應(yīng)的都不同。
2) 模型分析與應(yīng)用
如果輸入特征x是連續(xù)型隨機(jī)變量,那么可以使用高斯判別分析模型來確定p(x|y)。
模型如下:
輸出結(jié)果服從伯努利分布,在給定模型下特征符合多值高斯分布。通俗地講,在山羊模型下,它的胡須長度,角大小,毛長度等連續(xù)型變量符合高斯分布,他們組成的特征向量符合多值高斯分布。
這樣,可以給出概率密度函數(shù):
最大似然估計如下:
注意這里的參數(shù)有兩個,表示在不同的結(jié)果模型下,特征均值不同,但我們假設(shè)協(xié)方差相同。反映在圖上就是不同模型中心位置不同,但形狀相同。這樣就可以用直線來進(jìn)行分隔判別。
求導(dǎo)后,得到參數(shù)估計公式:
是訓(xùn)練樣本中結(jié)果y=1占有的比例。
是y=0的樣本中特征均值。
是y=1的樣本中特征均值。
是樣本特征方差均值。
如前面所述,在圖上表示為:
直線兩邊的y值不同,但協(xié)方差矩陣相同,因此形狀相同。不同,因此位置不同。
3) 高斯判別分析(GDA)與logistic回歸的關(guān)系
將GDA用條件概率方式來表述的話,如下:
y是x的函數(shù),其中都是參數(shù)。
進(jìn)一步推導(dǎo)出
這里的是的函數(shù)。
這個形式就是logistic回歸的形式。
也就是說如果p(x|y)符合多元高斯分布,那么p(y|x)符合logistic回歸模型。反之,不成立。為什么反過來不成立呢?因?yàn)镚DA有著更強(qiáng)的假設(shè)條件和約束。
如果認(rèn)定訓(xùn)練數(shù)據(jù)滿足多元高斯分布,那么GDA能夠在訓(xùn)練集上是最好的模型。然而,我們往往事先不知道訓(xùn)練數(shù)據(jù)滿足什么樣的分布,不能做很強(qiáng)的假設(shè)。Logistic回歸的條件假設(shè)要弱于GDA,因此更多的時候采用logistic回歸的方法。
例如,訓(xùn)練數(shù)據(jù)滿足泊松分布,
,
那么p(y|x)也是logistic回歸的。這個時候如果采用GDA,那么效果會比較差,因?yàn)橛?xùn)練數(shù)據(jù)特征的分布不是多元高斯分布,而是泊松分布。
這也是logistic回歸用的更多的原因。
3.樸素貝葉斯模型
在GDA中,我們要求特征向量x是連續(xù)實(shí)數(shù)向量。如果x是離散值的話,可以考慮采用樸素貝葉斯的分類方法。
假如要分類垃圾郵件和正常郵件。分類郵件是文本分類的一種應(yīng)用。
假設(shè)采用最簡單的特征描述方法,首先找一部英語詞典,將里面的單詞全部列出來。然后將每封郵件表示成一個向量,向量中每一維都是字典中的一個詞的0/1值,1表示該詞在郵件中出現(xiàn),0表示未出現(xiàn)。
比如一封郵件中出現(xiàn)了“a”和“buy”,沒有出現(xiàn)“aardvark”、“aardwolf”和“zygmurgy”,那么可以形式化表示為:
假設(shè)字典中總共有5000個詞,那么x是5000維的。這時候如果要建立多項(xiàng)式分布模型(二項(xiàng)分布的擴(kuò)展)。
多項(xiàng)式分布(multinomial distribution) 某隨機(jī)實(shí)驗(yàn)如果有k個可能結(jié)局A1,A2,…,Ak,它們的概率分布分別是p1,p2,…,pk,那么在N次采樣的總結(jié)果中,A1出現(xiàn)n1次,A2出現(xiàn)n2次,…,Ak出現(xiàn)nk次的這種事件的出現(xiàn)概率P有下面公式:(Xi代表出現(xiàn)ni次) |
對應(yīng)到上面的問題上來,把每封郵件當(dāng)做一次隨機(jī)試驗(yàn),那么結(jié)果的可能性有種。意味著pi有個,參數(shù)太多,不可能用來建模。
換種思路,我們要求的是p(y|x),根據(jù)生成模型定義我們可以求p(x|y)和p(y)。假設(shè)x中的特征是條件獨(dú)立的。這個稱作樸素貝葉斯假設(shè)。如果一封郵件是垃圾郵件(y=1),且這封郵件出現(xiàn)詞“buy”與這封郵件是否出現(xiàn)“price”無關(guān),那么“buy”和“price”之間是條件獨(dú)立的。
形式化表示為,(如果給定Z的情況下,X和Y條件獨(dú)立):
也可以表示為:
回到問題中
這個與NLP中的n元語法模型有點(diǎn)類似,這里相當(dāng)于unigram。
這里我們發(fā)現(xiàn)樸素貝葉斯假設(shè)是約束性很強(qiáng)的假設(shè),“buy”從通常上講與“price”是有關(guān)系,我們這里假設(shè)的是條件獨(dú)立。(注意條件獨(dú)立和獨(dú)立是不一樣的)
建立形式化的模型表示:
那么我們想要的是模型在訓(xùn)練數(shù)據(jù)上概率積能夠最大,即最大似然估計如下:
注意這里是聯(lián)合概率分布積最大,說明樸素貝葉斯是生成模型。
求解得:
最后一個式子是表示y=1的樣本數(shù)占全部樣本數(shù)的比例,前兩個表示在y=1或0的樣本中,特征Xj=1的比例。
然而我們要求的是
實(shí)際是求出分子即可,分母對y=1和y=0都一樣。
當(dāng)然,樸素貝葉斯方法可以擴(kuò)展到x和y都有多個離散值的情況。對于特征是連續(xù)值的情況,我們也可以采用分段的方法來將連續(xù)值轉(zhuǎn)化為離散值。具體怎么轉(zhuǎn)化能夠最優(yōu),我們可以采用信息增益的度量方法來確定(參見Mitchell的《機(jī)器學(xué)習(xí)》決策樹那一章)。
比如房子大小可以如下劃分成離散值:
4.拉普拉斯平滑
樸素貝葉斯方法有個致命的缺點(diǎn)就是對數(shù)據(jù)稀疏問題過于敏感。
比如前面提到的郵件分類,現(xiàn)在新來了一封郵件,郵件標(biāo)題是“NIPS call for papers”。我們使用更大的網(wǎng)絡(luò)詞典(詞的數(shù)目由5000變?yōu)?5000)來分類,假設(shè)NIPS這個詞在字典中的位置是35000。然而NIPS這個詞沒有在訓(xùn)練數(shù)據(jù)中出現(xiàn)過,這封郵件第一次出現(xiàn)了NIPS。那我們算概率的時候如下:
由于NIPS在以前的不管是垃圾郵件還是正常郵件都沒出現(xiàn)過,那么結(jié)果只能是0了。
顯然最終的條件概率也是0。
原因就是我們的特征概率條件獨(dú)立,使用的是相乘的方式來得到結(jié)果。
為了解決這個問題,我們打算給未出現(xiàn)特征值,賦予一個“小”的值而不是0。
具體平滑方法如下:
假設(shè)離散型隨機(jī)變量z有{1,2,…,k}個值,我們用來表示每個值的概率。假設(shè)有m個訓(xùn)練樣本中,z的觀察值是其中每一個觀察值對應(yīng)k個值中的一個。那么根據(jù)原來的估計方法可以得到
說白了就是z=j出現(xiàn)的比例。
拉普拉斯平滑法將每個k值出現(xiàn)次數(shù)事先都加1,通俗講就是假設(shè)他們都出現(xiàn)過一次。
那么修改后的表達(dá)式為:
每個z=j的分子都加1,分母加k。可見。
這個有點(diǎn)像NLP里面的加一平滑法,當(dāng)然還有n多平滑法了,這里不再詳述。
回到郵件分類的問題,修改后的公式為:
5.文本分類的事件模型
回想一下我們剛剛使用的用于文本分類的樸素貝葉斯模型,這個模型稱作多值伯努利事件模型(multi-variate Bernoulli event model)。在這個模型中,我們首先隨機(jī)選定了郵件的類型(垃圾或者普通郵件,也就是p(y)),然后一個人翻閱詞典,從第一個詞到最后一個詞,隨機(jī)決定一個詞是否要在郵件中出現(xiàn),出現(xiàn)標(biāo)示為1,否則標(biāo)示為0。然后將出現(xiàn)的詞組成一封郵件。決定一個詞是否出現(xiàn)依照概率p(xi|y)。那么這封郵件的概率可以標(biāo)示為。
讓我們換一個思路,這次我們不先從詞典入手,而是選擇從郵件入手。讓i表示郵件中的第i個詞,xi表示這個詞在字典中的位置,那么xi取值范圍為{1,2,…|V|},|V|是字典中詞的數(shù)目。這樣一封郵件可以表示成,n可以變化,因?yàn)槊糠忄]件的詞的個數(shù)不同。然后我們對于每個xi隨機(jī)從|V|個值中取一個,這樣就形成了一封郵件。這相當(dāng)于重復(fù)投擲|V|面的骰子,將觀察值記錄下來就形成了一封郵件。當(dāng)然每個面的概率服從p(xi|y),而且每次試驗(yàn)條件獨(dú)立。這樣我們得到的郵件概率是。居然跟上面的一樣,那么不同點(diǎn)在哪呢?注意第一個的n是字典中的全部的詞,下面這個n是郵件中的詞個數(shù)。上面xi表示一個詞是否出現(xiàn),只有0和1兩個值,兩者概率和為1。下面的xi表示|V|中的一個值,|V|個p(xi|y)相加和為1。是多值二項(xiàng)分布模型。上面的x向量都是0/1值,下面的x的向量都是字典中的位置。
形式化表示為:
m個訓(xùn)練樣本表示為:
表示第i個樣本中,共有ni個詞,每個詞在字典中的編號為。
那么我們?nèi)匀话凑諛闼刎惾~斯的方法求得最大似然估計概率為
解得,
與以前的式子相比,分母多了個ni,分子由0/1變成了k。
舉個例子:
X1 | X2 | X3 | Y |
1 | 2 | - | 1 |
2 | 1 | - | 0 |
1 | 3 | 2 | 0 |
3 | 3 | 3 | 1 |
假如郵件中只有a,b,c這三詞,他們在詞典的位置分別是1,2,3,前兩封郵件都只有2個詞,后兩封有3個詞。
Y=1是垃圾郵件。
那么,
假如新來一封郵件為b,c那么特征表示為{2,3}。
那么
那么該郵件是垃圾郵件概率是0.6。
注意這個公式與樸素貝葉斯的不同在于這里針對整體樣本求的,而樸素貝葉斯里面針對每個特征求的,而且這里的特征值維度是參差不齊的。
這里如果假如拉普拉斯平滑,得到公式為:
表示每個k值至少發(fā)生過一次。
另外樸素貝葉斯雖然有時候不是最好的分類方法,但它簡單有效,而且速度快。
————
編輯?∑Pluto
?來源:cnBlogs:http://www.cnblogs.com/jerrylead
更多精彩:
?泰勒定理的奇聞軼事
?丘成桐:漫談微分幾何
?Leibniz 如何想出微積分?(一)
?線性相關(guān)和秩的物理意義
?數(shù)學(xué)史上你認(rèn)為最丑陋的公式是什么?
?陶哲軒談什么是好的數(shù)學(xué)
?田淵棟:數(shù)學(xué)的用處(下篇)
?你絕對沒想過原來數(shù)學(xué)家這么流氓,一言不合就進(jìn)行暴力證明
?世界上最牛的五篇博士論文
?數(shù)學(xué)中有哪些巧合讓人眼前一亮?
?算法立功!清華畢業(yè)教授美國被搶車,警察無能為力自己用“貪心算法”找回
?學(xué)術(shù)史上的奇文:怎樣用數(shù)學(xué)抓獅子
?臺大教授的反思:最難的一課 我們卻沒教給學(xué)生
?麻省理工學(xué)院(MIT)研究生學(xué)習(xí)指導(dǎo)—— 怎樣做研究生
?分享 數(shù)學(xué),常識和運(yùn)氣 ——投資大師詹姆斯·西蒙斯2010年在MIT的講座
算法數(shù)學(xué)之美微信公眾號歡迎賜稿
稿件涉及數(shù)學(xué)、物理、算法、計算機(jī)、編程等相關(guān)領(lǐng)域,經(jīng)采用我們將奉上稿酬。
投稿郵箱:math_alg@163.com
總結(jié)
以上是生活随笔為你收集整理的判别模型、生成模型与朴素贝叶斯方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想象力比知识更重要——专访首位吴文俊人工
- 下一篇: 最自然的数字——e