1. 對(duì)概率圖模型的理解
概率圖模型是用圖來表示變量概率依賴關(guān)系的理論,結(jié)合概率論與圖論的知識(shí)体捏,利用圖來表示與模型有關(guān)的變量的聯(lián)合概率分布冠摄。由圖靈獎(jiǎng)獲得者Pearl開發(fā)出來。
如果用一個(gè)詞來形容概率圖模型(Probabilistic Graphical Model)的話几缭,那就是“優(yōu)雅”河泳。對(duì)于一個(gè)實(shí)際問題,我們希望能夠挖掘隱含在數(shù)據(jù)中的知識(shí)年栓。概率圖模型構(gòu)建了這樣一幅圖拆挥,用觀測結(jié)點(diǎn)表示觀測到的數(shù)據(jù),用隱含結(jié)點(diǎn)表示潛在的知識(shí)某抓,用邊來描述知識(shí)與數(shù)據(jù)的相互關(guān)系竿刁,最后基于這樣的關(guān)系圖獲得一個(gè)概率分布,非程掠В“優(yōu)雅”地解決了問題食拜。
概率圖中的節(jié)點(diǎn)分為隱含節(jié)點(diǎn)和觀測節(jié)點(diǎn),邊分為有向邊和無向邊副编。從概率論的角度负甸,節(jié)點(diǎn)對(duì)應(yīng)于隨機(jī)變量,邊對(duì)應(yīng)于隨機(jī)變量的依賴或相關(guān)關(guān)系,其中有向邊表示單向的依賴呻待,無向邊表示相互依賴關(guān)系打月。
概率圖模型分為貝葉斯網(wǎng)絡(luò)(Bayesian Network)和馬爾可夫網(wǎng)絡(luò)(Markov Network)兩大類。貝葉斯網(wǎng)絡(luò)可以用一個(gè)有向圖結(jié)構(gòu)表示蚕捉,馬爾可夫網(wǎng)絡(luò)可以表 示成一個(gè)無向圖的網(wǎng)絡(luò)結(jié)構(gòu)奏篙。更詳細(xì)地說,概率圖模型包括了樸素貝葉斯模型迫淹、最大熵模型秘通、隱馬爾可夫模型、條件隨機(jī)場敛熬、主題模型等肺稀,在機(jī)器學(xué)習(xí)的諸多場景中都有著廣泛的應(yīng)用。
2. 細(xì)數(shù)貝葉斯網(wǎng)絡(luò)
2.1 頻率派觀點(diǎn)
長久以來应民,人們對(duì)一件事情發(fā)生或不發(fā)生的概率话原,只有固定的0和1诲锹,即要么發(fā)生,要么不發(fā)生黄虱,從來不會(huì)去考慮某件事情發(fā)生的概率有多大蔓倍,不發(fā)生的概率又是多大偶翅。而且概率雖然未知碉渡,但最起碼是一個(gè)確定的值滞诺。比如如果問那時(shí)的人們一個(gè)問題:“有一個(gè)袋子,里面裝著若干個(gè)白球和黑球朵耕,請(qǐng)問從袋子中取得白球的概率是多少淋叶?”他們會(huì)想都不用想,會(huì)立馬告訴你栅贴,取出白球的概率就是1/2熏迹,要么取到白球注暗,要么取不到白球,即θ只能有一個(gè)值祷膳,而且不論你取了多少次屡立,取得白球的概率θ始終都是1/2,即不隨觀察結(jié)果X 的變化而變化勇皇。
這種頻率派的觀點(diǎn)長期統(tǒng)治著人們的觀念焚刺,直到后來一個(gè)名叫Thomas Bayes的人物出現(xiàn)乳愉。
2.2 貝葉斯學(xué)派
托馬斯·貝葉斯Thomas Bayes(1702-1763)在世時(shí)蔓姚,并不為當(dāng)時(shí)的人們所熟知捕虽,很少發(fā)表論文或出版著作坡脐,與當(dāng)時(shí)學(xué)術(shù)界的人溝通交流也很少备闲,用現(xiàn)在的話來說,貝葉斯就是活生生一民間學(xué)術(shù)“屌絲”恬砂,可這個(gè)“屌絲”最終發(fā)表了一篇名為“An essay towards solving a problem in the doctrine of chances”,翻譯過來則是:機(jī)遇理論中一個(gè)問題的解泻骤。你可能覺得我要說:這篇論文的發(fā)表隨機(jī)產(chǎn)生轟動(dòng)效應(yīng)乳幸,從而奠定貝葉斯在學(xué)術(shù)史上的地位。
這篇論文可以用上面的例子來說明粹断,“有一個(gè)袋子,里面裝著若干個(gè)白球和黑球瓶埋,請(qǐng)問從袋子中取得白球的概率θ是多少?”貝葉斯認(rèn)為取得白球的概率是個(gè)不確定的值诊沪,因?yàn)槠渲泻袡C(jī)遇的成分。比如晕粪,一個(gè)朋友創(chuàng)業(yè),你明明知道創(chuàng)業(yè)的結(jié)果就兩種巫湘,即要么成功要么失敗昏鹃,但你依然會(huì)忍不住去估計(jì)他創(chuàng)業(yè)成功的幾率有多大?你如果對(duì)他為人比較了解阅嘶,而且有方法载迄、思路清晰、有毅力护昧、且能團(tuán)結(jié)周圍的人捏卓,你會(huì)不由自主的估計(jì)他創(chuàng)業(yè)成功的幾率可能在80%以上慈格。這種不同于最開始的“非黑即白浴捆、非0即1”的思考方式,便是貝葉斯式的思考方式冲粤。
先簡單總結(jié)下頻率派與貝葉斯派各自不同的思考方式:
頻率派把需要推斷的參數(shù)θ看做是固定的未知常數(shù)厢呵,即概率雖然是未知的襟铭,但最起碼是確定的一個(gè)值寒砖,同時(shí),樣本X 是隨機(jī)的婉徘,所以頻率派重點(diǎn)研究樣本空間盖呼,大部分的概率計(jì)算都是針對(duì)樣本X 的分布塌计;
而貝葉斯派的觀點(diǎn)則截然相反挺身,他們認(rèn)為參數(shù)是隨機(jī)變量章钾,而樣本X 是固定的,由于樣本是固定的,所以他們重點(diǎn)研究的是參數(shù)的分布报腔。
貝葉斯派既然把看做是一個(gè)隨機(jī)變量纤房,所以要計(jì)算的分布炮姨,便得事先知道的無條件分布,即在有樣本之前(或觀察到X之前)蛾派,有著怎樣的分布呢?
比如往臺(tái)球桌上扔一個(gè)球,這個(gè)球落會(huì)落在何處呢褥紫?如果是不偏不倚的把球拋出去髓考,那么此球落在臺(tái)球桌上的任一位置都有著相同的機(jī)會(huì)儡炼,即球落在臺(tái)球桌上某一位置的概率服從均勻分布豌研。這種在實(shí)驗(yàn)之前定下的屬于基本前提性質(zhì)的分布稱為先驗(yàn)分布鹃共,或著無條件分布鬼佣。
其中,先驗(yàn)信息一般來源于經(jīng)驗(yàn)跟歷史資料及汉。比如林丹跟某選手對(duì)決沮趣,解說一般會(huì)根據(jù)林丹歷次比賽的成績對(duì)此次比賽的勝負(fù)做個(gè)大致的判斷屯烦。再比如坷随,某工廠每天都要對(duì)產(chǎn)品進(jìn)行質(zhì)檢房铭,以評(píng)估產(chǎn)品的不合格率θ,經(jīng)過一段時(shí)間后便會(huì)積累大量的歷史資料温眉,這些歷史資料便是先驗(yàn)知識(shí)缸匪,有了這些先驗(yàn)知識(shí),便在決定對(duì)一個(gè)產(chǎn)品是否需要每天質(zhì)檢時(shí)便有了依據(jù)类溢,如果以往的歷史資料顯示凌蔬,某產(chǎn)品的不合格率只有0.01%,便可視為信得過產(chǎn)品或免檢產(chǎn)品闯冷,只每月抽檢一兩次砂心,從而省去大量的人力物力。
而后驗(yàn)分布π(θ|X)一般也認(rèn)為是在給定樣本X的情況下的θ條件分布蛇耀,而使π(θ|X)達(dá)到最大的值θMD稱為最大后驗(yàn)估計(jì)辩诞,類似于經(jīng)典統(tǒng)計(jì)學(xué)中的極大似然估計(jì)。
綜合起來看纺涤,則好比是人類剛開始時(shí)對(duì)大自然只有少得可憐的先驗(yàn)知識(shí)译暂,但隨著不斷觀察、實(shí)驗(yàn)獲得更多的樣本撩炊、結(jié)果外永,使得人們對(duì)自然界的規(guī)律摸得越來越透徹。所以拧咳,貝葉斯方法既符合人們?nèi)粘I畹乃伎挤绞讲ィ卜先藗冋J(rèn)識(shí)自然的規(guī)律,經(jīng)過不斷的發(fā)展骆膝,最終占據(jù)統(tǒng)計(jì)學(xué)領(lǐng)域的半壁江山砾淌,與經(jīng)典統(tǒng)計(jì)學(xué)分庭抗禮。
2.3 貝葉斯定理
條件概率(又稱后驗(yàn)概率)就是事件A在另外一個(gè)事件B已經(jīng)發(fā)生條件下的發(fā)生概率谭网。條件概率表示為P(A|B)汪厨,讀作“在B條件下A的概率”。
比如上圖愉择,在同一個(gè)樣本空間Ω中的事件或者子集A與B劫乱,如果隨機(jī)從Ω中選出的一個(gè)元素屬于B,那么這個(gè)隨機(jī)選擇的元素還屬于A的概率就定義為在B的前提下A的條件概率:
聯(lián)合概率:
邊緣概率(先驗(yàn)概率):P(A)或者P(B)
2.4 貝葉斯網(wǎng)絡(luò)
貝葉斯網(wǎng)絡(luò)(Bayesian network)锥涕,又稱信念網(wǎng)絡(luò)(Belief Network)衷戈,或有向無環(huán)圖模型(directed acyclic graphical model),是一種概率圖模型层坠,于1985年由Judea Pearl首先提出殖妇。它是一種模擬人類推理過程中因果關(guān)系的不確定性處理模型,其網(wǎng)絡(luò)拓樸結(jié)構(gòu)是一個(gè)有向無環(huán)圖(DAG)破花。
貝葉斯網(wǎng)絡(luò)的有向無環(huán)圖中的節(jié)點(diǎn)表示隨機(jī)變量
它們可以是可觀察到的變量谦趣,或隱變量疲吸、未知參數(shù)等。認(rèn)為有因果關(guān)系(或非條件獨(dú)立)的變量或命題則用箭頭來連接前鹅。若兩個(gè)節(jié)點(diǎn)間以一個(gè)單箭頭連接在一起摘悴,表示其中一個(gè)節(jié)點(diǎn)是“因(parents)”,另一個(gè)是“果(children)”舰绘,兩節(jié)點(diǎn)就會(huì)產(chǎn)生一個(gè)條件概率值蹂喻。
例如,假設(shè)節(jié)點(diǎn)E直接影響到節(jié)點(diǎn)H捂寿,即E→H口四,則用從E指向H的箭頭建立結(jié)點(diǎn)E到結(jié)點(diǎn)H的有向弧(E,H),權(quán)值(即連接強(qiáng)度)用條件概率P(H|E)來表示秦陋,如下圖所示:
簡言之窃祝,把某個(gè)研究系統(tǒng)中涉及的隨機(jī)變量,根據(jù)是否條件獨(dú)立繪制在一個(gè)有向圖中踱侣,就形成了貝葉斯網(wǎng)絡(luò)粪小。其主要用來描述隨機(jī)變量之間的條件依賴,用圈表示隨機(jī)變量(random variables)抡句,用箭頭表示條件依賴(conditional dependencies)探膊。
此外,對(duì)于任意的隨機(jī)變量待榔,其聯(lián)合概率可由各自的局部條件概率分布相乘而得出:
2.4.1 貝葉斯網(wǎng)絡(luò)的結(jié)構(gòu)形式
1. head-to-head
依上圖逞壁,所以有:P(a,b,c) = P(a)P(b)P(c|a,b)成立,即在c未知的條件下锐锣,a腌闯、b被阻斷(blocked),是獨(dú)立的雕憔,稱之為head-to-head條件獨(dú)立姿骏。
2. tail-to-tail
考慮c未知,跟c已知這兩種情況:
在c未知的時(shí)候斤彼,有:P(a,b,c)=P(c)P(a|c)P(b|c)分瘦,此時(shí),沒法得出P(a,b) = P(a)P(b)琉苇,即c未知時(shí)嘲玫,a、b不獨(dú)立并扇。
在c已知的時(shí)候去团,有:P(a,b|c)=P(a,b,c)/P(c),然后將P(a,b,c)=P(c)P(a|c)P(b|c)帶入式子中,得到:P(a,b|c)=P(a,b,c)/P(c) = P(c)P(a|c)P(b|c) / P(c) = P(a|c)*P(b|c)土陪,即c已知時(shí)昼汗,a、b獨(dú)立旺坠。
3. head-to-tail
還是分c未知跟c已知這兩種情況:
c未知時(shí)乔遮,有:P(a,b,c)=P(a)P(c|a)P(b|c)扮超,但無法推出P(a,b) = P(a)P(b)取刃,即c未知時(shí),a出刷、b不獨(dú)立璧疗。
c已知時(shí),有:P(a,b|c)=P(a,b,c)/P(c)馁龟,且根據(jù)P(a,c) = P(a)P(c|a) = P(c)P(a|c)崩侠,可化簡得到:
所以,在c給定的條件下坷檩,a却音,b被阻斷(blocked),是獨(dú)立的矢炼,稱之為head-to-tail條件獨(dú)立系瓢。
這個(gè)head-to-tail其實(shí)就是一個(gè)鏈?zhǔn)骄W(wǎng)絡(luò),如下圖所示:
根據(jù)之前對(duì)head-to-tail的講解句灌,我們已經(jīng)知道夷陋,在xi給定的條件下,xi+1的分布和x1,x2…xi-1條件獨(dú)立胰锌。意味著啥呢骗绕?意味著:xi+1的分布狀態(tài)只和xi有關(guān),和其他變量條件獨(dú)立资昧。通俗點(diǎn)說酬土,當(dāng)前狀態(tài)只跟上一狀態(tài)有關(guān),跟上上或上上之前的狀態(tài)無關(guān)格带。這種順次演變的隨機(jī)過程诺凡,就叫做馬爾科夫鏈(Markov chain)。對(duì)于馬爾科夫鏈我們下一節(jié)再細(xì)講践惑。
2.4.2 因子圖
wikipedia上是這樣定義因子圖的:將一個(gè)具有多變量的全局函數(shù)因子分解腹泌,得到幾個(gè)局部函數(shù)的乘積,以此為基礎(chǔ)得到的一個(gè)雙向圖叫做因子圖(Factor Graph)尔觉。
通俗來講凉袱,所謂因子圖就是對(duì)函數(shù)進(jìn)行因子分解得到的一種概率圖。一般內(nèi)含兩種節(jié)點(diǎn):變量節(jié)點(diǎn)和函數(shù)節(jié)點(diǎn)。我們知道专甩,一個(gè)全局函數(shù)通過因式分解能夠分解為多個(gè)局部函數(shù)的乘積钟鸵,這些局部函數(shù)和對(duì)應(yīng)的變量關(guān)系就體現(xiàn)在因子圖上。
舉個(gè)例子涤躲,現(xiàn)在有一個(gè)全局函數(shù)棺耍,其因式分解方程為:
其中fA,fB,fC,fD,fE為各函數(shù),表示變量之間的關(guān)系种樱,可以是條件概率也可以是其他關(guān)系蒙袍。其對(duì)應(yīng)的因子圖為:
在概率圖中,求某個(gè)變量的邊緣分布是常見的問題嫩挤。這問題有很多求解方法害幅,其中之一就是把貝葉斯網(wǎng)絡(luò)或馬爾科夫隨機(jī)場轉(zhuǎn)換成因子圖,然后用sum-product算法求解岂昭。換言之以现,基于因子圖可以用sum-product 算法高效的求各個(gè)變量的邊緣分布。
詳細(xì)的sum-product算法過程约啊,請(qǐng)查看博文:從貝葉斯方法談到貝葉斯網(wǎng)絡(luò)
2.5 樸素貝葉斯
樸素貝葉斯(Naive Bayesian)是經(jīng)典的機(jī)器學(xué)習(xí)算法之一邑遏,也是為數(shù)不多的基于概率論的分類算法。樸素貝葉斯原理簡單恰矩,也很容易實(shí)現(xiàn)记盒,多用于文本分類,比如垃圾郵件過濾枢里。樸素貝葉斯可以看做是貝葉斯網(wǎng)絡(luò)的特殊情況:即該網(wǎng)絡(luò)中無邊孽鸡,各個(gè)節(jié)點(diǎn)都是獨(dú)立的。
樸素貝葉斯樸素在哪里呢栏豺? ——?兩個(gè)假設(shè):
一個(gè)特征出現(xiàn)的概率與其他特征(條件)獨(dú)立彬碱;
每個(gè)特征同等重要。
貝葉斯公式如下:
下面以一個(gè)例子來解釋樸素貝葉斯奥洼,給定數(shù)據(jù)如下:
現(xiàn)在給我們的問題是巷疼,如果一對(duì)男女朋友,男生想女生求婚灵奖,男生的四個(gè)特點(diǎn)分別是不帥嚼沿,性格不好,身高矮瓷患,不上進(jìn)骡尽,請(qǐng)你判斷一下女生是嫁還是不嫁?
這是一個(gè)典型的分類問題擅编,轉(zhuǎn)為數(shù)學(xué)問題就是比較p(嫁|(不帥攀细、性格不好箫踩、身高矮、不上進(jìn)))與p(不嫁|(不帥、性格不好、身高矮丐枉、不上進(jìn)))的概率,誰的概率大修壕,我就能給出嫁或者不嫁的答案!這里我們聯(lián)系到樸素貝葉斯公式:
我們需要求p(嫁|(不帥、性格不好、身高矮缚态、不上進(jìn)),這是我們不知道的,但是通過樸素貝葉斯公式可以轉(zhuǎn)化為好求的三個(gè)量凑阶,這三個(gè)變量都能通過統(tǒng)計(jì)的方法求得猿规。
等等衷快,為什么這個(gè)成立呢宙橱?學(xué)過概率論的同學(xué)可能有感覺了,這個(gè)等式成立的條件需要特征之間相互獨(dú)立吧蘸拔!對(duì)的师郑!這也就是為什么樸素貝葉斯分類有樸素一詞的來源,樸素貝葉斯算法是假設(shè)各個(gè)特征之間相互獨(dú)立调窍,那么這個(gè)等式就成立了宝冕!
但是為什么需要假設(shè)特征之間相互獨(dú)立呢?
我們這么想邓萨,假如沒有這個(gè)假設(shè)地梨,那么我們對(duì)右邊這些概率的估計(jì)其實(shí)是不可做的,這么說缔恳,我們這個(gè)例子有4個(gè)特征宝剖,其中帥包括{帥,不帥}歉甚,性格包括{不好万细,好,爆好}纸泄,身高包括{高赖钞,矮,中}聘裁,上進(jìn)包括{不上進(jìn)雪营,上進(jìn)},那么四個(gè)特征的聯(lián)合概率分布總共是4維空間衡便,總個(gè)數(shù)為233*2=36個(gè)献起。
36個(gè),計(jì)算機(jī)掃描統(tǒng)計(jì)還可以,但是現(xiàn)實(shí)生活中征唬,往往有非常多的特征捌显,每一個(gè)特征的取值也是非常之多,那么通過統(tǒng)計(jì)來估計(jì)后面概率的值总寒,變得幾乎不可做扶歪,這也是為什么需要假設(shè)特征之間獨(dú)立的原因。
假如我們沒有假設(shè)特征之間相互獨(dú)立摄闸,那么我們統(tǒng)計(jì)的時(shí)候善镰,就需要在整個(gè)特征空間中去找,比如統(tǒng)計(jì)p(不帥年枕、性格不好炫欺、身高矮、不上進(jìn)|嫁),我們就需要在嫁的條件下熏兄,去找四種特征全滿足分別是不帥品洛,性格不好,身高矮摩桶,不上進(jìn)的人的個(gè)數(shù)桥状,這樣的話,由于數(shù)據(jù)的稀疏性硝清,很容易統(tǒng)計(jì)到0的情況辅斟。 這樣是不合適的。
根據(jù)上面?zhèn)z個(gè)原因芦拿,樸素貝葉斯法對(duì)條件概率分布做了條件獨(dú)立性的假設(shè)士飒,由于這是一個(gè)較強(qiáng)的假設(shè),樸素貝葉斯也由此得名蔗崎!這一假設(shè)使得樸素貝葉斯法變得簡單酵幕,但有時(shí)會(huì)犧牲一定的分類準(zhǔn)確率。
樸素貝葉斯優(yōu)點(diǎn):
算法邏輯簡單,易于實(shí)現(xiàn)(算法思路很簡單蚁趁,只要使用貝葉斯公式轉(zhuǎn)化即可H苟堋)
分類過程中時(shí)空開銷小(假設(shè)特征相互獨(dú)立他嫡,只會(huì)涉及到二維存儲(chǔ))
樸素貝葉斯缺點(diǎn):
理論上番官,樸素貝葉斯模型與其他分類方法相比具有最小的誤差率。但是實(shí)際上并非總是如此钢属,這是因?yàn)闃闼刎惾~斯模型假設(shè)屬性之間相互獨(dú)立徘熔,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的,在屬性個(gè)數(shù)比較多或者屬性之間相關(guān)性較大時(shí)淆党,分類效果不好酷师。
樸素貝葉斯模型(Naive Bayesian Model)的樸素(Naive)的含義是"很簡單很天真"地假設(shè)樣本特征彼此獨(dú)立. 這個(gè)假設(shè)現(xiàn)實(shí)中基本上不存在, 但特征相關(guān)性很小的實(shí)際情況還是很多的, 所以這個(gè)模型仍然能夠工作得很好讶凉。
3. 基于貝葉斯的一些問題
解釋樸素貝葉斯算法里面的先驗(yàn)概率、似然估計(jì)和邊際似然估計(jì)山孔?
先驗(yàn)概率:就是因變量(二分法)在數(shù)據(jù)集中的比例懂讯。這是在你沒有任何進(jìn)一步的信息的時(shí)候,是對(duì)分類能做出的最接近的猜測台颠。
似然估計(jì):似然估計(jì)是在其他一些變量的給定的情況下褐望,一個(gè)觀測值被分類為1的概率。例如串前,“FREE”這個(gè)詞在以前的垃圾郵件使用的概率就是似然估計(jì)瘫里。
邊際似然估計(jì):邊際似然估計(jì)就是,“FREE”這個(gè)詞在任何消息中使用的概率荡碾。
4. 生成式模型和判別式模型的區(qū)別
判別模型(discriminative model)通過求解條件概率分布P(y|x)或者直接計(jì)算y的值來預(yù)測y谨读。
線性回歸(Linear Regression),邏輯回歸(Logistic Regression),支持向量機(jī)(SVM), 傳統(tǒng)神經(jīng)網(wǎng)絡(luò)(Traditional Neural Networks),線性判別分析(Linear Discriminative Analysis),條件隨機(jī)場(Conditional Random Field)
生成模型(generative model)通過對(duì)觀測值和標(biāo)注數(shù)據(jù)計(jì)算聯(lián)合概率分布P(x,y)來達(dá)到判定估算y的目的坛吁。
樸素貝葉斯(Naive Bayes), 隱馬爾科夫模型(HMM),貝葉斯網(wǎng)絡(luò)(Bayesian Networks)和隱含狄利克雷分布(Latent Dirichlet Allocation)劳殖、混合高斯模型
5. 代碼實(shí)現(xiàn)
新聞分類 GitHub:
6. 參考文獻(xiàn)
作者:@mantchs
GitHub:https://github.com/NLP-LOVE/ML-NLP
歡迎大家加入討論!共同完善此項(xiàng)目阶冈!群號(hào):【541954936】