貝葉斯定理,從白襪到飛機失事再到人工智能


 

 

人類很多時候的決策,也都是基於對於事物的預測。比如,“出門要不要帶雨傘?”解答這個問題需要查天氣預報。人類為了預測天氣,古時用的是夜觀星象,月亮長毛必有雨。而今天用的是統計預測和經驗預測方法。但氣象局天氣預報也經常會發生不准的情況。佛系的說,世界上本沒有絕對的東西,我們算的只是個概率。

在概率領域有一個很重要的學派——貝葉斯學派。其核心是貝葉斯定理,由英國數學家貝葉斯 ( Thomas Bayes 1702-1761 ) 發明的。貝葉斯當時的論文只是對“逆概率”這個問題的一個直接的求解嘗試,這哥們當時並不清楚這里面這里面包含着的深刻思想。

 

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

貝葉斯學派認為世界是不確定的,人們對世界先有一個預判,而后通過觀測數據對這個預判做調整。因為這種方式過於主觀,導致貝葉斯學派不受待見,被概率的另外一個“頻率學派”所鄙視。頻率學派認為事物發生的頻率應該是客觀的。

貝葉斯代理論是對事物發生的“可能性”的推理,並不需要這件事情發生后再測量。例如,某地可能發生地震的概率為3%,它的推斷源自於觀測了地震波、氣象、雞飛狗跳等現象。這種方式區別於“頻率學派”拋硬幣的測量方式,我們不可能測了100次,結果發生了3次地震。

貝葉斯理論上去更像一個哲學問題。他告訴人們,我們通過經驗是可以推斷出事物是否發生的相信程度。這笛卡爾的“我思故我在”哲學問題相似,將艱難的看似不可測的問題,變成簡單的可以測的問題!

一、對貝葉斯公式的簡單理解

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如上圖,有A、B兩個事件集合,已知事件A發生的概率為P(A),事件B發生的概率為P(B),既滿足A又滿足B的時間集合是A∩B,概率為P(A∩B) (也可以寫成P(A,B)或P(AB))。

相對聯合概率P(A∩B)來說,P(A)和P(B)被稱為邊緣概率,意思這個事件僅代表自己,而與其它事件無關。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如上圖,如果我們只看集合A,在A又符合B概率是P(B|A),簡單的說就是在A中找B,因為有A發生作為前提條件,所以被稱為條件概率。(注意:“|”后面的A是前提條件,有點像分數“B/A”,“/”后面代表的是分母)

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

P(A∩B)的樣本總體是A∪B,意思在全的樣本中,考慮AB都滿足的概率事件,簡單的說就是A和B里面找AB都有的。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如上圖,不論是P(B|A)還是P(A∩B)從集合的角度看都是A∩B,只是一個總體樣本范圍大小不同。

如果P(A)、P(B)、P(B|A)是已知的,那我們稱之為先驗概率;如果P(A|B)是未知的,需要我們計算推導而出,我們稱之為后驗概率。

有以下的簡化的貝葉斯公式:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

用文字表述就是,在B出現的前提條件下A出現的概率,等於A和B都出現的概率除以B出現概率。

但為什么要“A和B都出現的概率除以B出現概率”?

上面提到過,P(A|B)是以B發生作為前提條件,也就是說我們要在B的樣本空間中計算A∩B發生的概率。所以分子是A∩B,分母是B:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

二、舉個形象的例子

上面的講得有點抽象,舉個例子:

假設:小學⼀年級有共100⼈,其中有男⽣生30⼈。穿⽩襪⼦的⼈數共有20個,這20個人里面有5個是男⽣。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

1. 男生的概率 P(男生)= 男生數/總人數 = 30/100;

2. 穿白襪的概率 P(白襪) = 穿白襪人數/總人數 = 20/100 ;

如果我們只研究穿白襪的男生的概率,我們會以下三個不同的視角:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

A:以30個男生作為總體樣本,P(白襪|男生)= 穿白襪男生數/男生數=5/30;

B:以20個穿白襪的學生作為總體樣本,P(男生|白襪)=穿白襪男生數/穿白襪學生=5/20;

C:以一年級學生作為總體樣本,P(白襪∩男生)= 穿白襪的男生數/總人數 = 5/100;

因為穿白襪子的男生始終還是那5個人,只是總體樣本不同導致的分母不同,

如果要讓三個數值相等那么“參考系”就要保持統一。我們選取一年級全體學生作為總體樣本。如下圖:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

假設我們不知道C的計算結果,我們從視角A或者視角B,重新推導在一年級總體樣本中,“找出”穿白襪的概率:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如上圖,如紫色箭頭所示,有兩種方式:

視角A:先找出男生再找出穿白襪者,P(男生)P(白襪|男生);

視角B:先找出穿白襪的人再找出男生,P(白襪)P(男生|白襪);

通過計算發現A和B的結果和C是相等的:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

對於這個結果也並不意外,因為通過概率相乘的方式,統一了“參考系”,所以就有以下關系

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

通過移項則可以獲得下面式子:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

也就是說,貝葉斯公式有如下關系:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

因此,我們只要知道先驗概率 P(B|A)、P(A)和P(B)就可以求出P(A|B)。

二、全概率公式

還是舉小學校的例子:

已知男生穿白襪的概率P(白襪|男生)為1/6,P(白襪|女生)的概率為3/14。某個小學有一年學生100人,男生30人,女生70人,求這一年級學生穿白襪的概率P(白襪)。

為了更好的理解,我們把之前的圖在視覺上做一下調整,如下面右邊圖所示:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

通過上圖我們可以很直觀的看出,穿白襪的學生可以分成女生和男生,那么我只要分別計算一年級的男生和女生穿白襪的概率,再將他們相加,就可以達到目的。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

那如果再復雜一點呢?

假設這是家國際學校,我們不按照性別划分,按照國籍划分。

某小學是國際學校,一年級的100位學生中,有來自中國、美國、英國等國。這些將這些學生按照國籍分成n組,得到一個學生國籍的集合A{A1, A2, A3...An},每個國籍An所代表的人數都不盡相同。已知不同國籍的學生穿白襪的概率P(白襪|A1),P(白襪|A2)……P(白襪|An)。求這個國際學校一年級穿白襪的學生P(白襪)。

國籍和穿白襪學生的關系如下圖:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

和上面的案例類似,我們只要分別計算不同國籍學生穿白襪的概率,然后進行求和即可。如下圖:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

也就是說,我們將一個較大的概率集合,拆分成每一小塊分別計算,然后再求和。這個解題思路就是全概率公式

全概率公式將對一個復雜事件的概率求解問題轉化為了在不同情況下發生的簡單事件的概率的求和問題。內如果事件A1、A2、A3…An 構成一個完備事件組,即它們兩兩互不相容,其和為全集;並且P(Ai)大於0,則對任一事件A有:P(B)=P(B|A1)P(A1) + P(B|A2)P(A2) + ... +P(B|An)P(An)

三、完整版的貝葉斯公式

還是上面國際小學的例子

假設中國學生穿白襪的概率是0.2,美國學生穿白襪的概率是0.1,英國學生穿白襪的概率是0.5。此一年級的100位學生可以分為中美英三個國籍,中國國籍學生60人,美國國籍學生30人,英國國籍學生10人。求白襪學生中,出現美國學生的概率P(美國|白襪)。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

根據全概率公式,我們將P(白襪)拆解到各個國籍的穿白襪學生出現的概率,再求和:

P(白襪)=P(美國∩白襪)+P(中國∩白襪)+P(英國∩白襪)

= P(白襪|美國)P(美國)+P(白襪|中國)P(中國)+P(白襪|英國)P(英國)

所以根據上面式子,可以計算P(美國|白襪)的概率:

各國學生概率:P(中國)=0.6; P(美國)=0.3; P(英國)=0.1

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如果,我們把國籍替換成Ai,白襪替換成B,就可以得到完整版的貝葉斯公式了:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

上面這樣寫太長了,我們換個寫法,用“∑”表示求和:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

上面這個就是我們的完整的貝葉斯公式了。

四、使用貝葉斯公式搜尋失事飛機

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

如上圖,一架飛機失蹤了,推測它可能落在3個區域,R(=1,2,3)表示飛機墜落在第區域。令1-β (=1,2,3),表示飛機事實上落在第個區域且被發現的概率(β稱為忽略概率,因為它表示忽略飛機的概率,通常由該區域的地理和環境條件決定)。已知對於區域1的搜索沒有飛機,求在此條件下,飛機墜落在第(=1,2,3)個區域的條件概率。

因為

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

那么我們可以先求P(E)的全概率,在1區沒有搜尋到的原因分三種情況:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

所以P(E)的全概率:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

因為P(R | E)= P(R∩E)/P(E),所以:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

假設我們二區搜索了還是沒有搜到,那在區域3搜索到的概率又是多少呢?這個問題留在下一次解答。

五、貝葉斯在人工智能上的應用

經常在網上搜索東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜索引擎會默認按照正確的詞幫你搜索,比如當你在Google中輸入“Julw”時,系統會猜測你的意圖是搜索“July”。谷歌在牆外,我們暫時百度做為案例(ㄟ( ▔, ▔ )ㄏ),如下圖所示:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

這叫做拼寫檢查。根據谷歌員工寫的一篇文章,拼寫檢查是基於貝葉斯方法。下面讓我們看看如何使用貝葉斯實現"拼寫檢查"。原文:How to Write a Spelling Corrector

首先我們先要制作一個詞典。我們將全網的大量文章收集起來,整理出里面出現過的單詞,並標記每個詞出現的次數(頻數)。這有點像大學考四六級的時候死記硬背的《四六級詞匯分頻速記手冊》。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

用戶輸入一個單詞時,我們先看看用戶輸入的這個詞字是不是在詞典里面。如果不存在,那就要找出每個候選詞,並且比較他們的符合條件的概率,將概率最大的推薦給用戶。如下圖所示,用戶輸入“julw”,程序沒有在字典中找到相應的詞,但找出了3個候選的正確詞。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

Judy:朱迪,迪士尼動畫明星,詞頻是1000

July:七月,詞頻是900

Jula:愛情動作片女明星(百度結果),詞頻是200

從詞頻上看,Judy出現最多,Jula出現得最少。那么是不是應該推薦“Judy”這個詞給用戶呢?顯然也是有問題的,我們肉眼可以明顯看出“July”與“Julw”的這個詞會更加接近。但是如何嚴謹地判斷呢?

我們切換到數學思維,這個問題本質上就是在用戶輸入“julw”的條件下,比較每個備選詞的出現的概率,找出概率最大那個推薦給用戶。也就是求P( 備選詞 | Julw ),這就要用到貝葉斯定理了。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

每個備選詞在詞典中概率,可以通過該詞的詞頻除以所有詞頻來計算,我們用Q代表詞頻,如下面公式:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

因為用戶輸入是統一的,詞典也是統一的,把式子化簡后驚喜地發現,我們只要知道P( 備選詞 | Julw )和Q(備選詞)就好了。如下圖:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

比較 P( 備選詞 | Julw )大小,就轉化為比較 "P( Julw | 備選詞 )*Q(備選詞)"大小問題。因為詞頻是詞典已知的,那現在核心問題就是怎么計算P( Julw | 備選詞 ):

1. 計算P( Julw | Judy )

Judy 變成要Julw要有兩步,分別把d和y變成l和w:我們可以設想一個抽獎機,拉動開關以后,除自己以外的25個字母隨機輪換然后停下。把y變成w的概率為 1/25;同理把d變成l概率也是 1/25。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

因此 P( Julw | Judy ) = 1/25* 1/25

2.計算P( Julw | July ) 和P( Julw | Jula)

July和Jula變成Julw需要一步——換掉最后一個字母變成w,這步操作的概率為1/25

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

P( Julw | July ) = 1/25;P( Julw | Jula ) = 1/25;

將備選詞轉化成用戶輸入的詞的操作步數越多,P( Julw | 備選詞 ) 的概率值越低。這個操作步數也可以被稱為編輯距離。原作者直接將問題簡化為取編輯距離較少的單詞,為了理解需要我換成了概率。

終於可以計算最終的結果了:

令,Q( 備選詞 | Julw )=P( Julw | 備選詞 )*Q(備選詞)

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

我們根據計算結果重新排個序:

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

因此,我們會推薦“July”給用戶。但是如果一個用戶是宅男,他想搜的很可能就是“Jula”,那這是按照用戶畫像推薦,這個在后續的文章中再聊。

六、關於貝葉斯定理的總結

貝葉斯定理是一種思考問題的方式,我們要探尋一個問題發生的可性的時候,很可能無法直接計算。那么我們就要找到前提條件的主要因素,各個擊破后再反推結果。

貝葉斯定理雖然主觀,但在AI時代通過大數據彌補了不足。不過其最大的BUG還是在於人的認知邊界,如果人不能發現問題、分解問題、獲得合理的先驗概率,那對於預測必然會產生巨大偏差。

文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能
文科生都能看得懂的貝葉斯定理,從白襪到飛機失事再到人工智能

人工智能算法有趣的是用機器模擬人類思考問題的方式。很多時候我們的收獲不在於了解AI是怎么思考的,而在於了解自己是怎么思考的。

參考文獻:

  • 《概率論基礎教程(原書第九版)》美 Sheldon M. Ross等
  • 《從貝葉斯方法談到貝葉斯網絡》
  • 《機器學習極簡入門課》李燁
  • 《How to Write a Spelling Corrector》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM