在開(kāi)始這篇文章前,我覺(jué)得應(yīng)該先給大家介紹下貝葉斯這個(gè)人,畢竟正是這哥們發(fā)明了我們現(xiàn)在所談到的貝葉斯方法。貝葉斯是一個(gè)英國(guó)牧師,同時(shí)他還是一個(gè)業(yè)余數(shù)學(xué)家。生活在18世紀(jì)的貝葉斯生前是位受人尊敬英格蘭長(zhǎng)老會(huì)牧師,一心一意的把自己獻(xiàn)給偉大的主(搞毛線?。∨萱げ攀钦竞脝??)。而且呢,出于對(duì)上帝的敬仰,他踏上了證明上帝存在的道路(準(zhǔn)確說(shuō),應(yīng)該是不歸路!? -_-// )。當(dāng)然他的理想過(guò)于偉大,所以到現(xiàn)在也沒(méi)有人能夠幫助他解決。然而,有心栽花花不開(kāi),無(wú)心插柳柳成蔭!雖然一直到最后他都 沒(méi)有證明上帝是存在的,但是他證明上帝存在的過(guò)程中,卻無(wú)意發(fā)明了概率統(tǒng)計(jì)學(xué)原理,這應(yīng)該也算是上帝對(duì)人類文明發(fā)展所做的貢獻(xiàn)吧?。?!
接下來(lái)開(kāi)始進(jìn)入正題,其為大家介紹貝葉斯公式。其實(shí)貝葉斯公式并不神秘,基于全變量的貝葉斯公式就是
,
這就是貝葉斯的全變量公式。?在接下來(lái)的內(nèi)容中,我們著重介紹基于單變量或雙變量(多變量統(tǒng)一為雙變量),所以這樣復(fù)雜的公式大可不必。那么我們接下來(lái)就在實(shí)際應(yīng)用中來(lái)簡(jiǎn)化貝葉斯公式。
貝葉斯模型的簡(jiǎn)單機(jī)器學(xué)習(xí)應(yīng)用
貝葉斯方法應(yīng)用最多的領(lǐng)域是機(jī)器學(xué)習(xí),我們也以機(jī)器學(xué)習(xí)舉例。假設(shè)有一個(gè)英文輸入軟件,小明同學(xué)某一天正好在用這個(gè)軟件。但是,小明同學(xué)的英語(yǔ)水平實(shí)在不怎么樣(可能是經(jīng)常被老師趕到門(mén)外去的原因吧?^_^),所以呢,小明同學(xué)輸入了一個(gè)單詞“teache”?。輸入軟件看見(jiàn)這個(gè)單詞是崩潰的,因?yàn)樗⒉徽J(rèn)識(shí)這個(gè)單詞!這個(gè)單詞到底是“teacher”還是“teach”呢?我們當(dāng)然知道是?“teacher”(畢竟我們知道小明每天的經(jīng)歷)。可是輸入軟件卻不知道!這個(gè)時(shí)候就該貝葉斯方法上場(chǎng)了。假設(shè)小明同學(xué)輸入的單詞是“W”,而推測(cè)他想要輸入的單詞是“W1,W2,W3”,"W(N)"在所有單詞中的詞頻為P(W(N)),而在輸入“W(N)”時(shí)錯(cuò)誤輸入為“W”的概率為P(W/W(N)),那么對(duì)于每一個(gè)可能的選擇,我們都可以做出判斷:P(T(W(N)) = P(W(N))*P(W/W(N)),然后依次比較就可以判斷出最有可能的選擇。
那么簡(jiǎn)化“貝葉斯方法在機(jī)器學(xué)習(xí)中的應(yīng)用模型”得:P(MAY_ANS) = P(ANS)/P(ANS/INPUT)。P(ANS)為想要輸入的單詞在所有單詞中的詞頻(先驗(yàn)概率),P(ANS/INPUT)為想要輸入ANS卻輸入INPUT的概率(似然率),P(MAY_ANS)為推測(cè)的輸入結(jié)果的概率(后驗(yàn)概率)。而這樣之后,就可以在所有的可能中給出最有可能的選擇。
最優(yōu)貝葉斯模型
回到剛剛的推理,對(duì)于剛剛的推理,我們可以將它分為兩個(gè)過(guò)程,第一步是對(duì)觀測(cè)數(shù)據(jù)建立一個(gè)模型。第二步則是使用這個(gè)模型來(lái)推測(cè)未知現(xiàn)象發(fā)生的概率。我們剛剛計(jì)算的時(shí)候,都是假設(shè)我們所選用的模型就是最優(yōu)模型。但是很多時(shí)候,雖然某個(gè)模型是所有模型里面最靠譜的,但是別的模型也并不是一點(diǎn)機(jī)會(huì)都沒(méi)有。因?yàn)?,不同的模型之所以?duì)每一數(shù)據(jù)的反應(yīng)不一,是因?yàn)槠溥x擇的算法不同,但是每一完全正確的算法,也同樣沒(méi)有完全錯(cuò)誤的選擇。所以,當(dāng)我們選擇了一個(gè)模型的時(shí)候,通常還可以選擇其他的模型。比如,對(duì)同一事件A模型給出的概率是0.5,B模型的概率是0.6,而C模型的概率是0.3。而所謂的最優(yōu)貝葉斯推理就是將三個(gè)模型對(duì)于未知數(shù)據(jù)的預(yù)測(cè)結(jié)論加權(quán)平均起來(lái)(權(quán)值就是模型相應(yīng)的概率)。顯然,這個(gè)推理已經(jīng)是最好的選擇了,因?yàn)樗紤]了所有的可能性。(當(dāng)然在實(shí)際中我們是基本不這樣做的,一是模型可能很費(fèi)時(shí),二來(lái)模型空間可能是連續(xù)的。結(jié)果還是非常費(fèi)時(shí)間。所以這個(gè)被看作是一個(gè)理論基準(zhǔn)。)
樸素貝葉斯方法
在機(jī)器學(xué)習(xí)中,經(jīng)常還有這種情況。比如:我們需要對(duì)郵箱中的垃圾郵件與正常郵件進(jìn)行區(qū)分;對(duì)一片文章的主題進(jìn)行歸類………我們用樸素貝葉斯在垃圾郵件過(guò)濾中的應(yīng)用來(lái)舉例說(shuō)明。問(wèn)題是什么?問(wèn)題是,給定一封郵件,判定它是否屬于垃圾郵件。按照先例,我們還是用 D 來(lái)表示這封郵件,注意 D 由 N 個(gè)單詞組成。我們用 h+ 來(lái)表示垃圾郵件,h- 表示正常郵件。問(wèn)題可以形式化地描述為求:
P(h+|D) = P(h+) * P(D|h+) / P(D)
P(h-|D) = P(h-) * P(D|h-) / P(D)
其中 P(h+) 和 P(h-) 這兩個(gè)先驗(yàn)概率都是很容易求出來(lái)的,只需要計(jì)算一個(gè)郵件庫(kù)里面垃圾郵件和正常郵件的比例就行了。然而 P(D|h+)卻不容易求,因?yàn)?D 里面含有 N 個(gè)單詞 d1, d2, d3, .. ,所以P(D|h+) = P(d1,d2,..,dn|h+)。我們又一次遇到了數(shù)據(jù)稀疏性,為什么這么說(shuō)呢?P(d1,d2,..,dn|h+)
就是說(shuō)在垃圾郵件當(dāng)中出現(xiàn)跟我們目前這封郵件一模一樣的一封郵件的概率是多大!開(kāi)玩笑,每封郵件都是不同的,世界上有無(wú)窮多封郵件。瞧,這就是數(shù)據(jù)稀疏性,因?yàn)榭梢钥隙ǖ卣f(shuō),你收集的訓(xùn)練數(shù)據(jù)庫(kù)不管里面含了多少封郵件,也不可能找出一封跟目前這封一模一樣的。結(jié)果呢?我們又該如何來(lái)計(jì)算
P(d1,d2,..,dn|h+) 呢?
我們將 P(d1,d2,..,dn|h+)? 擴(kuò)展為: P(d1|h+) * P(d2|d1, h+) * P(d3|d2,d1, h+) *?。熟悉這個(gè)式子嗎?這里我們會(huì)使用一個(gè)更激進(jìn)的假設(shè),我們假設(shè) di 與 di-1 是完全條件無(wú)關(guān)的,于是式子就簡(jiǎn)化為 P(d1|h+) *P(d2|h+) * P(d3|h+) * .. 。這個(gè)就是所謂的條件獨(dú)立假設(shè),也正是樸素貝葉斯方法的樸素之處。而計(jì)算 P(d1|h+) *P(d2|h+) * P(d3|h+) * .. 就太簡(jiǎn)單了,只要統(tǒng)計(jì) di這個(gè)單詞在垃圾郵件中出現(xiàn)的頻率即可。關(guān)于貝葉斯垃圾郵件過(guò)濾更多的內(nèi)容可以參考這個(gè)條目,注意其中提到的其他資料。
一
點(diǎn)注記:這里,為什么有這個(gè)數(shù)據(jù)稀疏問(wèn)題,還是因?yàn)榻y(tǒng)計(jì)學(xué)習(xí)方法工作在淺層面,世界上的單詞就算不再變多也是非常之多的,單詞之間組成的句子也是變化多端,更不用說(shuō)一篇文章了,文章數(shù)目則是無(wú)窮的,所以在這個(gè)層面作統(tǒng)計(jì),肯定要被數(shù)據(jù)稀疏性困擾。我們要注意,雖然句子和文章的數(shù)目是無(wú)限的,然而就拿郵件來(lái)說(shuō),如果我們只關(guān)心郵件中句子的語(yǔ)義(進(jìn)而更高抽象層面的“意圖”(語(yǔ)義,意圖如何可計(jì)算地定義出來(lái)是一個(gè)人工智能問(wèn)題),在這個(gè)層面上可能性便大大縮減了,我們關(guān)心的抽象層面越高,可能性越小。單詞集合和句子的對(duì)應(yīng)是多對(duì)一的,句子和語(yǔ)義的對(duì)應(yīng)又是多對(duì)一的,語(yǔ)義和意圖的對(duì)應(yīng)還是多對(duì)一的,這是個(gè)層級(jí)體系。神經(jīng)科學(xué)的發(fā)現(xiàn)也表明大腦的皮層大致有一種層級(jí)結(jié)構(gòu),對(duì)應(yīng)著越來(lái)越抽象的各個(gè)層面,至于如何具體實(shí)現(xiàn)一個(gè)可放在計(jì)算機(jī)內(nèi)的大腦皮層,仍然是一個(gè)未解決問(wèn)題,以上只是一個(gè)原則(principle)上的認(rèn)識(shí),只有當(dāng) computational 的 cortex模型被建立起來(lái)了之后才可能將其放入電腦。
樸素貝葉斯方法的條件獨(dú)立假設(shè)看上去很傻很天真,為什么結(jié)果卻很好很強(qiáng)大呢?就拿一個(gè)句子來(lái)說(shuō),我們?cè)趺茨荇斆У芈暦Q其中任意一個(gè)單詞出現(xiàn)的概率只受到它前面的 3 個(gè)或 4 個(gè)單詞的影響呢?別說(shuō) 3 個(gè),有時(shí)候一個(gè)單詞的概率受到上一句話的影響都是絕對(duì)可能的。那么為什么這個(gè)假設(shè)在實(shí)際中的表現(xiàn)卻不比決策樹(shù)差呢?有人對(duì)此提出了一個(gè)理論解釋,并且建立了什么時(shí)候樸素貝葉斯的效果能夠等價(jià)于非樸素貝葉斯的充要條件,這個(gè)解釋的核心就是:有些獨(dú)立假設(shè)在各個(gè)分類之間的分布都是均勻的所以對(duì)于似然的相對(duì)大小不產(chǎn)生影響;即便不是如此,也有很大的可能性各個(gè)獨(dú)立假設(shè)所產(chǎn)生的消極影響或積極影響互相抵消,最終導(dǎo)致結(jié)果受到的影響不大?(這個(gè)部分直接引用的劉大的獨(dú)立博客)
層級(jí)貝葉斯方法
我也不懂,再說(shuō)了~~~~~