求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

貝葉斯定理檢視原始碼討論檢視歷史

事實揭露 揭密真相
前往: 導覽搜尋
貝葉斯定理

貝葉斯定理,是關於隨機事件A和B的條件概率(或邊緣概率)的一則定理。其中P(A|B)是在B發生的情況下A發生的可能性。貝葉斯定理也稱貝葉斯推理,早在18世紀,英國學者貝葉斯(1702~1763)曾提出計算條件概率的公式用來解決如下一類問題:假設H[1],H[2]…,H[n]互斥且構成一個完全事件,已知它們的概率P(H[i]),i=1,2,…,n,現觀察到某事件A與H[1],H[2]…,H[n]相伴隨機出現,且已知條件概率P(A/H[i]),求P(H[i]/A)。[1]

基本信息

中文名 貝葉斯定理 [2]

外文名 Bayes' theorem

別稱 托馬斯·貝葉斯定理

表達式 P(A|B)=P(A)P(B|A)/P(B)

貝葉斯定理1.jpg

提出者 英國學者貝葉斯

提出時間 18世紀

應用學科 數學

適用領域範圍 概率論

貝葉斯定理是關於隨機事件A和B的條件概率(或邊緣概率)的一則定理。

其中P(A|B)是在B發生的情況下A發生的可能性。

貝葉斯定理2.jpg

研究意義

人們根據不確定性信息作出推理和決策需要對各種結論的概率作出估計,這類推理稱為概率推理。概率推理既是概率學和邏輯學的研究對象,也是心理學的研究對象,但研究的角度是不同的。概率學和邏輯學研究的是客觀概率推算的公式或規則;而心理學研究人們主觀概率估計的認知加工過程規律。

貝葉斯推理的問題是條件概率推理問題,這一領域的探討對揭示人們對概率信息的認知加工過程與規律、指導人們進行有效的學習和判斷決策都具有十分重要的理論意義和實踐意義。

定理定義

貝葉斯定理也稱貝葉斯推理,早在18世紀,英國學者貝葉斯(1702~1763)曾提出計算條件概率的公式用來解決如下一類問題:假設H[1],H[2]…,H[n]互斥且構成一個完全事件,已知它們的概率P(H),i=1,2,…,n,現觀察到某事件A與H[,1],H[,2]…,H[,n]相伴隨機出現,且已知條件概率P(A/H[,i]),求P(H[,i]/A)。

貝葉斯公式(發表於1763年)為: P(H/A)=P(H)*P(A│H)/{P(H[1])*P(A│H[1]) +P(H[2])*P(A│H[2])+…+P(H[n])*P(A│H[n])}

貝葉斯定理3.jpg

這就是著名的"貝葉斯定理",一些文獻中把P(H[1])、P(H[2])稱為基礎概率,P(A│H[1])為擊中率,P(A│H[2])為誤報率[1] 。

應用範圍

貝葉斯定理用於投資決策分析是在已知相關項目B的資料,而缺乏論證項目A的直接資料時,通過對B項目的有關狀態及發生概率分析推導A項目的狀態及發生概率。如果我們用數學語言描繪,即當已知事件Bi的概率P(Bi)和事件Bi已發生條件下事件A的概率P(A│Bi),則可運用貝葉斯定理計算出在事件A發生條件下事件Bi的概率P(Bi│A)。按貝葉斯定理進行投資決策的基本步驟是:

1 列出在已知項目B條件下項目A的發生概率,即將P(A│B)轉換為 P(B│A);

2 繪製樹型圖;

3 求各狀態結點的期望收益值,並將結果填入樹型圖;

貝葉斯定理4.jpg

4 根據對樹型圖的分析,進行投資項目決策;

搜索巨人Google和Autonomy,一家出售信息恢復工具的公司,都使用了貝葉斯定理(Bayesian principles)為數據搜索提供近似的(但是技術上不確切)結果。研究人員還使用貝葉斯模型來判斷症狀和疾病之間的相互關係,創建個人機器人,開發能夠根據數據和經驗來決定行動的人工智能設備。

吸毒者檢測

貝葉斯定理在檢測吸毒者時很有用。假設一個常規的檢測結果的敏感度與可靠度均為99%,也就是說,當被檢者吸毒時,每次檢測呈陽性(+)的概率為99%。而被檢者不吸毒時,每次檢測呈陰性(-)的概率為99%。從檢測結果的概率來看,檢測結果是比較準確的,但是貝葉斯定理卻可以揭示一個潛在的問題。

假設某公司將對其全體雇員進行一次鴉片吸食情況的檢測,已知0.5%的雇員吸毒。我們想知道,每位醫學檢測呈陽性的雇員吸毒的概率有多高?令"D"為雇員吸毒事件,"N"為雇員不吸毒事件,"+"為檢測呈陽性事件。可得

儘管我們的檢測結果可靠性很高,但是只能得出如下結論:如果某人檢測呈陽性,那麼此人是吸毒的概率只有大 約33%,也就是說此人不吸毒的可能性比較大。我們測試的條件(本例中指D,雇員吸毒)越難發生,發生誤判的可能性越大。

貝葉斯

貝葉斯定理5.png

貝葉斯(1701年-1761年) Thomas Bayes,英國數學家。1701年出生於倫敦,做過神甫。1742年成為英國皇家學會會員。1761年4月7日逝世。貝葉斯在數學方面主要研究概率論。他首先將歸納推理法用於概率論基礎理論,並創立了貝葉斯統計理論,對於統計決策函數、統計推斷、統計的估算等做出了貢獻。

1763年由Richard Price整理髮表了貝葉斯的成果《An Essay towards solving a Problem in the Doctrine of Chances》 ,對於現代概率論和數理統計都有很重要的作用。貝葉斯的另一著作《機會的學說概論》發表於1758年。貝葉斯所採用的許多術語被沿用至今。

貝葉斯通俗易懂推導

貝葉斯定理是18世紀英國數學家托馬斯·貝葉斯(Thomas Bayes)提出得重要概率論理論。以下摘一段 wikipedia 上的簡介:

所謂的貝葉斯定理源於他生前為解決一個「逆概」問題寫的一篇文章,而這篇文章是在他死後才由他的一位朋友發表出來的。在貝葉斯寫這篇文章之前,人們已經能夠計算「正向概率」,如「假設袋子裡面有 N 個白球,M 個黑球,你伸手進去摸一把,摸出黑球的概率是多大」。

而一個自然而然的問題是反過來:「如果我們事先並不知道袋子裡面黑白球的比例,而是閉着眼睛摸出一個(或好幾個)球,觀察這些取出來的球的顏色之後,那麼我們可以就此對袋子裡面的黑白球的比例作出什麼樣的推測」。這個問題,就是所謂的逆向概率問題。

貝葉斯定理6.jpg

貝葉斯定理的思想出現在18世紀,但真正大規模派上用途還得等到計算機的出現。因為這個定理需要大規模的數據計算推理才能凸顯效果,它在很多計算機應用領域中都大有作為,如自然語言處理,機器學習,推薦系統,圖像識別,博弈論等等。

定義

貝葉斯定理是關於隨機事件 A 和 B 的條件概率:

貝葉斯定理

其中P(A|B)是在 B 發生的情況下 A 發生的可能性。

在貝葉斯定理中,每個名詞都有約定俗成的名稱:

P(A)是 A 的先驗概率,之所以稱為「先驗」是因為它不考慮任何 B 方面的因素。

貝葉斯定理7.jpg

P(A|B)是已知 B 發生後 A 的條件概率,也由於得自 B 的取值而被稱作 A 的後驗概率。

P(B|A)是已知 A 發生後 B 的條件概率,也由於得自 A 的取值而被稱作 B 的後驗概率。

P(B)是 B 的先驗概率,也作標淮化常量(normalizing constant)。

按這些術語,貝葉斯定理可表述為:

後驗概率 = (相似度 * 先驗概率)/標淮化常量也就是說,後驗概率與先驗概率和相似度的乘積成正比。

另外,比例P(B|A)/P(B)也有時被稱作標淮相似度(standardised likelihood),Bayes定理可表述為:

後驗概率 = 標淮相似度 * 先驗概率 條件概率就是事件 A 在另外一個事件 B 已經發生條件下的發生概率。條件概率表示為P(A|B),讀作「在 B 發生的條件下 A 發生的概率」。

貝葉斯定理8.jpg

聯合概率表示兩個事件共同發生(數學概念上的交集)的概率。A 與 B 的聯合概率表示為聯合概率。

推導 我們可以從條件概率的定義推導出貝葉斯定理。

根據條件概率的定義,在事件 B 發生的條件下事件 A 發生的概率為:

貝葉斯定理

同樣地,在事件 A 發生的條件下事件 B 發生的概率為:

貝葉斯定理

結合這兩個方程式,我們可以得到:

貝葉斯定理

貝葉斯定理9.jpg

這個引理有時稱作概率乘法規則。上式兩邊同除以 P(A),若P(A)是非零的,我們可以得到貝葉斯定理:

貝葉斯定理

解釋 通常,事件 A 在事件 B 發生的條件下的概率,與事件 B 在事件 A 發生的條件下的概率是不一樣的;然而,這兩者是有確定關係的,貝葉斯定理就是這種關係的陳述。

貝葉斯公式的用途在於通過己知三個概率來推測第四個概率。它的內容是:在 B 出現的前提下,A 出現的概率等於 A 出現的前提下 B 出現的概率乘以 A 出現的概率再除以 B 出現的概率。通過聯繫 A 與 B,計算從一個事件發生的情況下另一事件發生的概率,即從結果上溯到源頭(也即逆向概率)。

通俗地講就是當你不能確定某一個事件發生的概率時,你可以依靠與該事件本質屬性相關的事件發生的概率去推測該事件發生的概率。用數學語言表達就是:支持某項屬性的事件發生得愈多,則該事件發生的的可能性就愈大。這個推理過程有時候也叫貝葉斯推理。

示例

示例一:應當根據新情況更新先驗概率

貝葉斯定理0.jpg

決策與判斷》第十二章中講到人們都有保守主義情結,即使出現了新信息,也不願意根據新信息來更新先驗概率。用前面解釋裡面的話說就是:新信息是 B 事件不斷發生,人們本應該根據這個信息去更新 A 事件發生的概率,但人們卻更願意固守之前估計的 A 事件發生的概率。

書中舉了這樣一個調查案例:

假設有兩個各裝了100個球的箱子,甲箱子中有70個紅球,30個綠球,乙箱子中有30個紅球,70個綠球。假設隨機選擇其中一個箱子,從中拿出一個球記下球色再放回原箱子,如此重複12次,記錄得到8次紅球,4次綠球。問題來了,你認為被選擇的箱子是甲箱子的概率有多大?

調查結果顯示,大部分人都低估了選擇的是甲箱子的概率。根據貝葉斯定理,正確答案是96.7%。下面容我來詳細分析解答。

剛開始選擇甲乙兩箱子的先驗概率都是50%,因為是隨機二選一(這是貝葉斯定理二選一的特殊形式)。即有:

P(甲) = 0.5, P(乙) = 1 - P(甲);

這時在拿出一個球是紅球的情況下,我們就應該根據這個信息來更新選擇的是甲箱子的先驗概率:

貝葉斯定理00.jpg

P(甲|紅球1) = P(紅球|甲) × P(甲) / (P(紅球|甲) × P(甲) + (P(紅球|乙) × P(乙))) P(紅球|甲):甲箱子中拿到紅球的概率 P(紅球|乙):乙箱子中拿到紅球的概率

因此在出現一個紅球的情況下,選擇的是甲箱子的先驗概率就可被修正為:

P(甲|紅球1) = 0.7 × 0.5 / (0.7 × 0.5 + 0.3 × 0.5) = 0.7

即在出現一個紅球之後,甲乙箱子被選中的先驗概率就被修正為:

P(甲) = 0.7, P(乙) = 1 - P(甲) = 0.3;

如此重複,直到經歷8次紅球修正(概率增加),4此綠球修正(概率減少)之後,選擇的是甲箱子的概率為:96.7%。

我寫了一段 Python 代碼來解這個問題:

計算選擇的是甲箱子的概率

貝葉斯定理-.jpg

def bayesFunc(pIsBox1, pBox1, pBox2): return (pIsBox1 * pBox1)/((pIsBox1 * pBox1) + (1 - pIsBox1) * pBox2) def redGreenBallProblem(): pIsBox1 = 0.5 consider 8 red ball for i in range(1, 9): pIsBox1 = bayesFunc(pIsBox1, 0.7, 0.3) print " After red %d > in 甲 box: %f" % (i, pIsBox1) consider 4 green ball for i in range(1, 5): pIsBox1 = bayesFunc(pIsBox1, 0.3, 0.7) print " After green %d > in 甲 box: %f" % (i, pIsBox1) redGreenBallProblem()

程序運行結果如下:在這個調查問題裡面,8次紅球與4次綠球出現的順序並不重要,因為紅球的出現總是使選擇的是甲箱子的概率增加,而綠球的出現總是減少。因此,為了簡化編程,我將紅球出現的情況以及綠球出現的情況擺在一起了。

貝葉斯定理=.jpg

不斷修正的選擇的是甲箱子的先驗概率

After red 1 > in 甲 box: 0.700000 After red 2 > in 甲 box: 0.844828 After red 3 > in 甲 box: 0.927027 After red 4 > in 甲 box: 0.967365 After red 5 > in 甲 box: 0.985748 After red 6 > in 甲 box: 0.993842 After red 7 > in 甲 box: 0.997351 After red 8 > in 甲 box: 0.998863 After green 1 > in 甲 box: 0.997351 After green 2 > in 甲 box: 0.993842 After green 3 > in 甲 box: 0.985748 After green 4 > in 甲 box: 0.967365

從程序運行結果來看,很明顯可以看到紅球的出現是增加選擇甲箱子的概率,而綠球則相反。

貝葉斯定理`.jpg

示例二:頻率更適合用來解答概率問題

《進化心理學》第十三章(428頁)講到人類的心理從進化角度來看,更偏好使用頻率(我最近十次打獵八次有收穫)而不是概率(我最近打獵有80%的成功率)。

書中舉了同一個問題用不同方式表述使得問題的難易程度迥然不同:

表述一:有一種疾病的發病率是千分之一,醫院有一種化驗技術可以對這種疾病進行診斷,但是卻又百分之五的誤診率(也即是說儘管有百分之五的人沒有病,但是化驗結果卻顯示為陽性(即假陽性))。現在假設一個人的化驗結果顯示為有病,僅根據這一化驗結果推測,那麼這個人確實患病的概率有多大?

這個問題也可以用貝葉斯定理來解決,不過在看分析之前,你可以先估算下你自己的答案,然後再和正確答案比較。

這個問題的分析過程如下:

已知先驗概率:P(患病) = 0.001,P(正常) = 0.999; 該化驗技術的準確率(即患病化驗結果顯示為陽性的概率)為:P(準確率) = 1.00; 該化驗技術的誤診率(即正常化驗結果顯示為陽性的概率)為:P(誤診率) = 0.05。

根據上面的數據,我們就能夠推測出一個人化驗為陽性的情況下,這個人確實患病的概率有多大:

P(患病|陽性) = P(患病) × P(準確率) / (P(患病) × P(準確率) + P(正常) × P(誤診率)) = 0.001 × 1.00 / (0.001 × 1.00 + 0.999 × 0.05) = 0.0198 = 2%

貝葉斯定理10.png

結果讓你大吃一驚吧,在沒有其他症狀增加患病概率的情況下,單憑化驗結果顯示為陽性來推測的話,其真實患病的概率還不到百分之二。

用頻率作為信息來記憶或回憶更生動也更容易被提取,想想第一次打獵什麼情形,第二次打獵什麼情形,歷歷在目。正因為頻率作為信息存儲載體保留了事件的形象性,提高了記憶的可得性,因此在進化過程中人類的心理機制優先選擇了頻率而不是抽象的概率。而且在人類十多萬年的進化過程中,出現概率概念的文明進程不過幾千年,大腦還沒有對進化到更適應抽象的概率的地步。

所以這個問題如果換成用頻率來表述的話,相信你的答案會大大接近於正確答案。

表述二:在一千個人中,就有一個人患有X疾病(即發病率為千分之一),有一種化驗技術,可以檢驗是否患有該疾病。如果一個人確實患有該病,化驗結果可定顯示為陽性。但有時候也會出現誤診,即在一千個完全健康的人中,有五十個人的化驗結果顯示為陽性(也即是說誤診率為百分之五)。

換成以頻率方式來表述這個問題,答案就顯然易見了:

P(患病|陽性) = 1/(1 + 50) = 1/51 = 0.0196 = 2%

通過這個例子,我們可以懂得,若能把概率問題轉換成頻率來表述,即便是需要使用貝葉斯這樣複雜定理來計算的問題,也能輕而易舉地解答。這就是《你的燈亮着麼?》裡面提到的「重述問題」的技巧。

示例三:在博弈論裡面的應用

挑戰者 B 不知道原壟斷者 A 是屬於高阻撓成本(為阻止 B 進入而花費的成本)類型還是低阻撓成本類型,但B知道,如果 A 屬於高阻撓成本類型,B 進入市場時A進行阻撓的概率是20%(阻擾成本高,因此阻撓概率低);如果 A 屬於低阻撓成本類型,B 進入市場時 A 進行阻撓的概率是100%。

T01cbc865611c0b326b.jpg

博弈開始時,B 認為 A 屬於高阻撓成本企業的概率為70%,因此,B 估計自己在進入市場時,受到 A 阻撓的概率為:

P(阻撓) = 0.7 × 0.2 + 0.3 × 1.0 = 0.44

0.44 是在 B 給定 A 所屬類型的先驗概率下,A 可能採取阻撓行為的概率。

當 B 進入市場時,若 A 確實進行阻撓。根據貝葉斯定理,從 A 進行阻撓這一行為,B 可修正 A 屬於高阻撓成本企業的概率為::

P(高成本阻擾企業) = 0.7 × 0.2 ÷ 0.44 × 1.0 = 0.32

根據這一新的先驗概率,B 估計自己在進入市場時,受到 A 阻撓的概率為:

P(阻撓) = 0.32 × 0.2 + 0.68 × 1 = 0.744

若 B 再一次進入市場時,A 又進行了阻撓。根據貝葉斯定理,從 A 再次進行阻撓這一行為,B 可修正 A 屬於高阻撓成本企業的概率為

P(高成本阻擾企業) = 0.32 × 0.2 ÷ 0.744 × 1.0 = 0.086

這樣,根據 A 一次又一次的阻撓行為,B 不斷修正判斷 A 為高阻撓成本的概率(越來越低了),從而越來越傾向於將 A 判斷為低阻撓成本企業。

示例四:在計算機領域中的應用

貝葉斯定理在計算機領域中的應用那可是太多了,無論是在機器學習,自然語言處理,圖像識別,推薦算法,搜索算法還是垃圾郵件處理中都大有用途。這些應用中都有一個特點,那就是根據既有輸入,在龐大的已有數據庫中尋找匹配程度(也即是發生概率)最高的那些項。由於這些話題太大,在這裡就不展開了。

徐宥翻譯過 Peter Norvig 寫的一篇怎樣寫一個拼寫檢查器的文章,作者只用了 20 行 Python 代碼就實現了拼寫檢查/糾錯,相當強大。文章也寫得深入淺出,推薦看看,翻譯版本在這裡。

參考來源