現實生活中的很多問題都是概率問題,由多個變量(因素,要素)相互影響。而想要用貝葉斯網絡對其建模,我們需要考慮三個問題:1. 如何定義節點;2.如何定義節點之間的概率依賴關係;3. 如何表示聯合概率分佈。
假設我們現在有個變量,每個變量有個取值,則可建模爲如下形式:
若使用枚舉法,參數個數爲:。
假設變量之間相互獨立,則聯合概率分佈大大簡化爲如下形式:
但是變量之間相互獨立的這個假設太強了,那我們如何來利用圖的結構優勢降低模型的複雜度?
貝葉斯網絡
貝葉斯網絡是一個有向無圈圖(Directed Acyclic Graph, DAG
)(有向邊並不會形成一個圈),由代表變量節點及連接 這些節點有向邊構成。節點代表隨機變量,節點間的有向邊代表了節點間的互相關係(由父節點指向其子節點),用條件概率表達變量間依賴關係,沒有父節點的用先驗概率進行信息表達。
令爲定義在上的一個貝葉斯網絡,則其聯合概率分佈可以表示爲各個節點的條件概率分佈的乘積:
其中爲節點的父節點,爲節點條件概率表。
我們以一個例子來對其進行實例化建模:
實際生活中的一個例子:對一個學生能否拿到老師的推薦信這一問題進行建模研究。假設與該問題相關的變量有以下五個:試題難度、學生智力、考試成績、高考成績、是否 得到老師推薦信。那麼其節點可定義爲如下形式:
可以看到Grade
有兩個父節點,SAT
有一個父節點(有父子節點的表示爲條件概率分佈的形式)。所以其聯合概率分佈可表示爲如下形式:
那寫成這這種聯合概率分佈的情況有什麼好處呢?我們可以看一下其參數形式:
- 枚舉法:
2 * 2 * 3 * 2 * 2 - 1 = 47
個參數(減去1的原因是聯合概率分佈求和需要等於1)。 - 結構化分解:
1 + 1 + 8 + 3 + 2 = 15
個參數 (每一行的參數求和需要等於1)。
更一般地,假設個二元隨機變量的聯合概率分佈,表示該分佈需要 個參數。如果用貝葉斯網絡建模,假設每個節點最多有 個父節點,所需要 的參數最多爲 ,一般每個變量局部依賴於少數變量。
算一個實際的例子:
那爲什麼聯合概率爲什麼可以表示爲局部條件 概率表的乘積?
- 隨機變量 , 相互獨立, 則會滿足以下三個等式:
或者說上面三個等式中的任意一個等式成立,則隨機變量,是相互獨立的。下圖是其舉例:
- 隨機變量 , 在給定 條件下條件獨立, 如果滿足:
我們可以將下圖中具體的數值代進去,其將會成立:
概率影響的流動性
爲了更好地去介紹貝葉斯網裏面的條件獨立性,我們引入新的概念,概率影響的流動性。概率影響的流動性說地是:在一定的觀測條件下,變量間的取值概率是否會相互影響。所謂的觀測條件是這個系統是否有觀測變量,或者觀測變量的取值是否確定。當變量取值未知,通常根據觀測變量取值,對隱變量的取值概率進行推理。
比如:判斷 是否爲觀測變量,與的概率影響的流動性。
這裏要注意第3
和第4
中情況,第3種情況:當未知的時候你纔可以對和進行推斷。第4種情況:當已知的時候,和纔可以進行概率之間的推斷。
概率影響的流動性
在貝葉斯網絡裏面有一個概率獨立性定理:父節點已知時,該節點與其所有非後代的節點(non-descendants
)條件獨立。
如上圖所示,當SAT
的父節點Intelligence
已知時,Difficulty
、Grade
、Letter
都與SAT
條件獨立。
貝葉斯網鏈式法則
依據上述定理我們可以得到貝葉斯網絡因子分解的形式:
貝葉斯網絡推理的直觀理解
因果推斷(Causal Reasoning
):順着箭頭方向推斷。得到貝葉斯網絡之後我們就可以進行推理計算。這種因果推理是順着箭頭方向進行的推理。
貝葉斯網絡的第二種推斷叫做證據推斷(Evidential Reasoning
):是逆着箭頭推斷的。
交叉因果推斷(Intercausal Reasoning
):雙向箭頭推斷。
我的微信公衆號名稱:深度學習與先進智能決策
微信公衆號ID:MultiAgent1024
公衆號介紹:主要研究分享深度學習、機器博弈、強化學習等相關內容!期待您的關注,歡迎一起學習交流進步!