Hello,大家好,我是starz。這是本系列的第二篇《概率基礎Ⅱ》,雖說是概率基礎,但作爲過渡,它開始以圖爲載體
這節的主要內容有:
-
貝葉斯網絡
-
三種結構
-
D-劃分
-
貝葉斯球
-
馬爾科夫毯
-
應用例子
-
總結
讓我們開始吧 :3
貝葉斯網絡
概率圖模型可籠統分爲兩類,一是基於無向圖的馬爾科夫網絡:
二是基於有向圖的貝葉斯網絡:
事實上,我們可以通過一些特殊的手段^[1]^將貝葉斯網絡轉化爲馬爾科夫網絡,同時保留貝葉斯網絡各個變量之間的條件獨立性
因此馬爾科夫網絡相對來說更泛化抽象,它不在我們的討論範圍內 :)
Anyway,籠統說來:貝葉斯網絡 = 有向圖 + 概率
如果想精準一點^[2]^,我們可以說:
其中:
-
BN指貝葉斯網絡,DAG指有向無環圖,CPDs指條件概率分佈
-
DAG的作用是——作爲變量間條件獨立性的定性表示
-
CPDs的作用是——作爲變量間條件獨立性的定量表示
定性指的是,如果在有向圖中兩個變量R和T之間有弧,則表示這兩個變量相關。例:若R和T之間存在R指向T一條弧,則說明R在一定程度上影響了T的取值(弧即箭頭)
定量指的是,模型用條件概率分佈中的概率值規定了變量間取值的關係
如下,圖中箭頭表明了R和T之間的關係,條件概率(表)給出了兩者的定量關係:
三種結構
俗話說萬物皆有聯繫,但如果在貝葉斯網絡中,任意兩個節點都有弧的話,推斷學習等任務就會變得非常困難
於是乎,前人提出了許多條件獨立性假設用於簡化運算,如:
-
屬性條件獨立性假設,即變量X之間是相互獨立的,反應在圖中就是X之間沒有弧,如:
樸素貝葉斯,
-
馬爾科夫假設,即變量X只取決於前K個變量,如:
一階馬爾可夫假設,當前變量只取決於前一個變量,
-
變量集合間的條件獨立性假設,如:
貝葉斯網絡,當前變量X只取決於其父母,
如何直觀理解貝葉斯的條件獨立性假設呢?
接下來,我們從貝葉斯網絡的三種基本結構入手,試圖用語言闡明:獨立性在貝葉斯網絡的局部是如何存在的
即以下公式在三種結構中都成立
例子中的隨機變量說明:
-
B:Burglary,表示是否被盜竊
-
E:Earthquake,表示是否有地震
-
A:Alarm,表示小區是否有警報聲
-
R:Radio,表示電臺是否在播報地震信息
-
T:TV,表示電視機是否在播報地震信息
以下我們將弧看作信息流動過程
鏈式結構
主角是:T
T和E本身是相關的
信息流動的方式是:
-
E:發生地震
-
E -> R:電臺接到信息後,播報地震消息
-
R -> T:電視臺接到信息後,播放地震消息
T和E的關係是顯而易見的。在沒有其它觀測的情況下,假設發生了地震,電視臺^注1^播報地震消息的概率會升高;假設沒發生地震,電視臺播放地震消息的概率會降低
在R得到觀測後,T和E條件獨立:
假設R被觀測,R說“地震啦”,因爲圖中沒有其它路徑可以提供E的真實信息給T,那麼不管E到底有沒有發生,T都會基於R提供的信息播放地震消息
這就是:在鏈式結構中,兩端變量原本相關,在中間變量被觀測的情況下,兩端變量條件獨立,即
公式釋義
E和R都提供信息給T的情況下,把E的信息量去除,不會給T的分佈帶來任何變化
換而言之,T只聽它媽的
分叉結構
主角是:R
R和A本身是相關的
信息流動方式是:
-
E:發生地震
-
E -> R:電臺接到信息後,播報地震消息
-
E -> A:小區接到消息後,開啓警報
考慮以下場景來分析R和A的相關性:
假設小區的警報響了,地震的可能性增大,電臺播報地震消息的概率相應提高;假設小區警報都沒響,地震的可能性不大,電臺播報地震消息的概率相應降低
在E得到觀測後,R和A條件獨立:
假設E被觀測,E說“地震啦”,R和A都得到了來自E的確切消息,做出什麼反應取決於它們各自跟E的條件概率分佈,和對方的相關性被消除
這就是:在分叉結構中,兩端變量原本相關,在中間變量被觀測的條件下,兩端變量獨立,即
V型結構
主角是:A
B和E本身是無關的:
信息流動方式是:
-
E:發生地震
-
B:發生搶劫
-
E -> A:小區接到E消息,開啓警報
-
B -> A:小區接到B消息,開啓警報
在沒有其它觀測的情況下,B和E是無關的,如果有人說:啊禍不單行,今天被搶劫了,或許地震也會來一下。我們會覺得這人莫名其妙
在A得到觀測後,B和E相關:
假設A被觀測,警鈴響了,那麼很大可能E和B之間發生了一個,若E沒有發生,B發生的概率就會升高,反之亦然
這就是:在V型結構中,兩端變量原本不相關,在中間變量被觀測的條件下,兩端變量相關,即
小總結
我們可以看到貝葉斯網絡的條件獨立性假設在局部結構下的釋義是很自然的。將這個性質和鏈式法則結合在一起,就能推出貝葉斯網絡的因子分解形式:
D-劃分
D-劃分的作用是:判斷貝葉斯網絡在給定某些觀測的情況下,兩個變量,或變量集合,是否相關
有兩個小細節可以幫助理解:
-
它是上節描述三種結構性質的一種泛化,使得它能用在變量集合上
-
“被D劃分”的意思就是兩個變量、或變量集合,獨立或條件獨立
用我們的老朋友來理解一下D劃分,注意到紅色外邊框的意思是它既可以是個節點,也可以是一個節點集合:
類似的,我們考慮三種情況:
-
B和E被D劃分的情況:因爲連接B和E的通道只有個通過節點A的V型連接,那麼只要A或者A'不被觀測到,B和E就是獨立的(因爲假設A’被觀測到,信息會往上傳播到A)
-
A和R被D劃分的情況:因爲連接A和R的通道只有通過E的分叉連接,那麼只要E被觀測到,A和R就是條件獨立的(分叉連接的中間變量被觀測則兩端的變量獨立)
-
E和T被D劃分的情況:因爲連接E和T的通道只有通過R的鏈式連接,那麼只要R被觀測到,E和T就是條件獨立的
貝葉斯球
理解了以上的內容,我們就可以打貝葉斯球啦。貝葉斯球是一種理解D劃分的趣味運動,讓我們來了解一下十條規則:
其中:→表示在這個位置球可以通過,而→|表示球不能通過
看起來挺唬人,但其實內容我們已經討論過了,球其實就是前面提到的信息,而十條規則可以分成三個部分來理解:
-
灰色部分是喜聞樂見的三種結構,上三代表中間節點沒有被觀測,下三代表中間節點被觀測
-
灰色部分表示的是球到葉子節點(即沒有孩子的節點)的情況,如果葉子節點沒被觀測,則球阻塞,但如果葉子節點已經被觀測,它會回彈,例如回彈至V型結構的中間節點,它會改變V型結構兩端變量的條件獨立性
-
灰色部分表示的是球到根節點(即沒有父代節點)的情況,如果根節點沒被觀測,則球要回彈,但如果根節點已經被觀測,那麼有兩種情況,要麼是V型連接的兩個端點其中之一,要麼是鏈式結構的上游端點,這兩種情況下變量的觀測都不能爲其它節點的信息帶來增益,所以令球阻塞
瞭解了規則之後,讓我們來到簡陋的球場^[3]^:
有五個任務:
-
給定觀測X2,嘗試從X1把球打到X4
-
給定觀測X1,嘗試從X2把球打到X5
-
給定觀測X2,嘗試從X1把球打到X6
-
給定觀測X1、X6,嘗試從X2把球打到X3
答案是3和4是可以把球打過去的,1和2爲什麼不行大家可以分析下
下面給出第三小問的答案,其中灰色的X2爲被觀測變量:
第四小問的答案,其中灰色的X1和X6爲被觀測變量:
馬爾科夫毯
節點A馬爾可夫毯的定義爲一個節點集合,這些節點被觀測的情況下,節點A與其餘的節點(除去A和它的馬爾科夫毯)條件獨立
也就是說,我們把節點A身邊的馬爾科夫毯節點置爲灰色,那麼從其它節點出發的貝葉斯球都打不過來A這邊
玩多了貝葉斯球你就會發現,C的馬爾科夫毯 = C的孩子 + C的父母 + C的配偶們
注:
-
C的孩子需要被觀測到,因爲要堵住以C和X8兩個變量形成的鏈式結構和V型結構帶來的信息傳播
-
C的父母需要被觀測到,因爲要堵住以C和X5兩個變量形成的鏈式結構和分叉結構帶來的信息傳播
-
C的配偶們需要被觀測到,是因爲抓小三有助社會和諧要堵住配偶們通過被觀測的孩子們對C的信息傳播
-
以上爲個人理解,如有錯漏請在公衆號後臺回覆
例如下圖的X4, X5, X6, X7, X8, X9就是節點C的馬爾科夫毯
應用例子
基於以上內容,我們已經對貝葉斯網絡有了個初步的瞭解
生活中很多問題都可以用貝葉斯模型來建模,甚至我們還可以使用貝葉斯網絡來輔助我們玩遊戲!
鑑於我們學得比較淺,目前只能幫我們玩玩掃雷
掃雷^[4]^,是一款單人的電腦遊戲。遊戲目標是找出所有沒有地雷的方格,完成遊戲;要是按了有地雷的方格,遊戲失敗。遊戲以完成時間來評高低
在原始的遊戲設定中,如果點擊沒有地雷的方格會顯示附近地雷的數量N
如果把N看成觀測變量,而當前位置以及附近有沒有地雷看作隱藏變量,從這個角度看來,掃雷是一個基於觀測變量推斷隱藏變量的遊戲
爲了簡化題目,我們將二維度的遊戲轉化爲一維,遊戲由由 1×4 個小格組成,示意圖如下:
雖然建模這個東西聽起來有點複雜,但是沒有關係,根據前文: 貝葉斯網絡 = 有向圖 + 條件概率分佈,我們分兩步來完成:
有向圖部分
先定義幾個變量,總共有四個格子,每個格子有一個觀測變量和一個隱含變量,總計8個變量。我們用BI表示第i個格子是否有炸彈,用Ni表示第i個格子顯示的數字,因爲當前位置的觀測結果取決於身邊兩個位置隱藏變量的取值,那麼它們之間的關係如圖所示:
有趣的是,有向圖中形成的是V型結構^注1^,這在遊戲中的體驗一致:在不知道N的情況下,B1、B2和B3的取值之間是相互獨立的;而知道了N2的取值後情況就大不相同,如N2 = 2,則B1和B3一定有炸彈
條件概率分佈部分
假設每個格子有炸彈的概率是10%,有:
注:
-
其中b爲Bomb,挖出炸彈的意思
-
這裏只貼了紅色兩條邊對應的條件概率,有興趣大家可以把其它邊也寫一寫
總結
這篇文章主要介紹了:
-
貝葉斯網絡是什麼
-
貝葉斯網絡的條件獨立假設是怎麼蘊含在三種基本結構中的
-
如何判斷貝葉斯網絡中變量之間的獨立性
-
如何建立自己的貝葉斯網絡
後續的文章的內容會包括:
-
推斷問題——手頭有完整的貝葉斯網絡(有向圖 + 條件概率),以及一把證據,如何根據已有證據進行推理
-
參數學習——手頭有殘缺的貝葉斯網絡(只有有向圖),如何根據數據集,讓網絡在數據集中學習參數(條件概率)
-
結構學習——手頭啥都沒,如何根據數據集,讓算法自己學習貝葉斯網絡的結構(有向圖)和參數(條件概率)
希望我們能把它講清楚,謝謝觀看
注:
-
東京電視臺除外
-
除非輸了,不然隱變量對於玩家來說是不可見的,即不會出現Bi被觀測的情況,所以探究以Bi爲中心的分叉結構在這個問題設定下沒有意義
Reference
[1] 白板機器學習第九章《概率圖模型》
[2] Probabilistic Graphical Models,Philippe LERAY
[3] (기계 학습, Machine Learning) Week 7 Bayesian Network | Lecture 4 Bayes Ball Algorithm
[4] https://zh.wikipedia.org/wiki/踩地雷