貝葉斯網絡

（），又有叫（），喺人工智能（AI）上係一種可以用嚟教電腦做推理、學習同計劃嘅工具。一個貝葉斯網絡會
*考慮若干個變數；
*考慮變數之間嘅條件概率關係；
例如係好似附圖嗰個簡單（得三個變數）嘅貝葉斯網絡噉，個網絡睇咗三個變數－包括
#RAIN（有冇落雨；設 R 嚟代表）、
#SPRINKLER（啲灌溉花灑有冇著；設 S 嚟代表）同埋
#GRASS WET（啲草係濕嘅；設 G 嚟代表），
而且會有一拃數值表示啲變數之間嘅條件概率－即係例如「如果落咗雨，啲草會濕咗嘅機率係幾多」，會用到好似以下噉嘅概率論數學符號：
:\Pr(G,S,R)=\Pr(G|S,R)\Pr(S|R)\Pr(R)
個設計者寫好咗程式之後，可以（簡化噉講）搵一大柞紀錄咗呢幾個變數之間過往嘅關係嘅數據俾個程式睇，跟住叫個程式用呢啲數據計出變數同變數之間嘅關係係點（建立網絡），然後佢就可以攞個網絡嚟預測未來。廿一世紀初嘅研究表明，貝葉斯網絡式嘅 AI 有相當廣泛嘅用途，可以教電腦幫手睇症或者預測電子遊戲對局嘅結果呀噉。
## 定義

貝葉斯網絡係種有向圖。有向圖呢種圖畫起上嚟會包括若干個框框（頂點），啲框之間有啲箭咀互相指住，而且啲箭咀表示緊一啲有方向性嘅關係（\text{A} → \text{B}  \ne \text{B} → \text{A}），而貝葉斯網絡係有向圖嘅一種，有以下呢幾個特徵：
#每個頂點對應一個隨機變數，啲隨機變數係離散定連續都得；
#每對項點之間都可以有箭咀，如果頂點 X 有個箭咀指住頂點 Y（X → Y），噉 X 係 Y 嘅**母點**（parent）；
#啲箭咀冇任何嘅有向循環（directed cycle）－即係話拃頂點之間彼此之間唔會形成一個圈噉；
#是但攞個頂點 X_i 嚟睇，X_i 都有個條件概率分佈 \Pr(X_i|\text{Parents}(X_i)) －呢個條件概率分佈會講明「如果已知 X_i 啲母點嘅數值，X_i 嘅數值嘅概率分佈」，用日常用語講即係話個條件概率分佈表示「母點嗰啲變數嘅數值會點影響 X_i 嘅數值嘅概率分佈」。

舉個具體例子，想像上圖呢個簡單（得嗰三個變數）嘅貝葉斯網絡，
*個網絡有三個變數－
**「落咗雨」（RAIN）、
**「啲灌溉花灑著咗」（SPRINKLER）同埋
**「啲草濕咗」（GRASS WET），
**當中三個都係離散變數，每個嘅可能數值一係**真**（T）一係**假**（F）。
*RAIN 係 SPRINKLER 同 GRASS WET 嘅母點，而 SPINKLER 就係 GRASS WET 嘅母點（由箭咀顯示）。
*拃機率就如下：
**\Pr(\text{RAIN} = \text{T}) = 0.2（RAIN 係真嘅機率係 20%），\Pr(\text{RAIN} = \text{F}) = 0.8－RAIN 係假嘅機率係 80%；
**SPRINKLER 左手邊嘅表反映 SPRINKLER 嘅概率分佈，當中
***如果 \text{RAIN} = \text{T}，\Pr(\text{SPRINKLER} = \text{T}) = 0.01，\Pr(\text{SPRINKLER} = \text{F}) = 0.99－如果 RAIN 係真，SPRINKLER 嘅條件概率分佈；
***如果 \text{RAIN} = \text{F}，\Pr(\text{SPRINKLER} = \text{T}) = 0.4，\Pr(\text{SPRINKLER} = \text{F}) = 0.6－如果 RAIN 係假，SPRINKLER 嘅條件概率分佈；
**GRASS WET 下面嘅表反映 GRASS WET 嘅概率分佈，當中
***如果 \text{RAIN} = \text{T}, \text{SPRINKLER} = \text{T} 嘅話，\Pr(\text{GRASS WET} = \text{T}) = 0.99，\Pr(\text{GRASS WET} = \text{F}) = 0.01－如果 RAIN 同 SPRINKER 都係真，GRASS WET 嘅條件概率分佈；
***... 如此類推。
## 基本用途

貝葉斯網絡可以用嚟做兩種推論。假設家陣手上有個能夠有返咁上下準確噉描述現象嘅貝葉斯網絡（姑且勿論個網絡係點整嘅），研究者可以：
#得知啲變數之間嘅聯合概率分佈－意思即係話是但指定一個情況 (X_1, X_2... X_n)（例如指定 X_1 = 2, X_2 = 2.5, X_3 = 1.2...），研究者都可以攞個貝葉斯網絡計出呢個情況出現嘅機率
#:\Pr(X_1, X_2... X_n)
#搵出啲變數之間嘅條件概率－假想家陣已知其中一部份變數嘅值 (e)，研究者可以攞個貝葉斯網絡計出
#:\Pr(x_1, x_2... x_n|e) 嘅機率，當中 (x_1, x_2... x_n) 係對數值未知嗰啲變數指定嘅值。
喺實際應用上，研究者可以攞大量嘅數據嚟建立貝葉斯網絡：簡單講，描述過去經驗嘅數據會話到俾部電腦知（例如）「根據以往嘅經驗，如果有一日
*冇落雨（\text{RAIN} = \text{F}）而
*啲灌溉花灑又冇著（\text{SPRINKLER} = \text{F}），
啲草有幾大機率（\Pr(\text{GRASS WET} = \text{T})）會係濕咗」噉嘅資訊；而想像有位醫學嘅研究者由醫院等嘅地方收集數據，得知咗「如果有位病人感冒，佢有幾大機率會出發燒同鼻涕等嘅症狀」噉嘅資訊，就可以做到教電腦睇病嘅效果。事實係喺廿一世紀初，貝葉斯網絡係人工智能最常見嘅做法之一，可以攞嚟教 AI 對感應到嘅現象作出預測。

## 建立方法

建立一個貝葉斯網絡會用到以下噉嘅步驟：
#**決定項點**：諗掂個網絡要包括啲咩變數 \{X_1, X_2... X_n\}；
#*喺呢個過程當中，研究者嘅思路通常都會建基於某啲理論：佢要對研究緊嗰樣現象有返咁上下熟，知有邊啲變數係緊要嘅，例如想像家陣有位研究者想建立一個貝葉斯網絡，攞嚟幫手睇病－即係計「位病人係感冒」等變數嘅機率，研究者要對醫學有認識，識得邊啲變數係會對「病人患嘅係咩病」有具體影響嘅，再將呢啲變數加入去個模型度。
#*喺實際應用上，母點好多時會係因，而子點好多時會係果，例如攞返睇病做例子，一個用嚟睇病嘅貝葉斯網絡當中「感冒」通常會做母點，「發燒」通常會做子點。
#*上述呢個步驟好多時都會涉及簡化－個現象涉及嘅變數多得滯，所以研究者將其中一啲變數結合（睇因素分析）；
#**決定箭咀**：設 i = 1，再一路重複以下嘅嘢：
#*由 \{X_1, X_2... X_{i-1}\} 當中，揀出一拃數量有咁少得咁少（**minimal**）嘅頂點嚟做 X_i 嘅母點，而
#*:\Pr(X_i|\text{Parents}(X_i)) = \Pr(X_i|X_{i-1},...,X_1)
#*:－用日常用語講，即係話啲母點會包含嗮所有能夠直接影響 X_i 嘅變數，啲做唔成 X_i 母點嘅頂點冚唪唥都係冇能力影響 X_i 嘅。
#*Foreach 揀好咗嘅母點，由個母點畫條箭咀落個子點度；
#*i 數值升 1，而如果 i > n，結束；
#操作化：研究者要諗掂啲變數實際上要點量度；
#*例如如果研究者想整個貝葉斯網絡嚟幫手睇病，可能會想要知病人嘅體重（X_1）或者血糖（X_2）水平，呢啲變數喺現代醫學上都有方法量度；
#*不過有陣時啲變數嘅量度方法未必係咁明顯－例如假想有位電子遊戲設計方面嘅研究者想整貝葉斯網絡嚟預測網上遊戲玩家之間嘅對局嘅結果（預測邊個贏）噉，直覺上「玩家嘅技術」理應會對對局嘅結果產生具體嘅影響（想攞佢做 X_1），但玩家技術呢家嘢「要點量度」就未必係咁顯而易見。
#**攞[[數據]]**：搵啲數據返嚟，拃數據會有一個個個案，每個個案都係喺每個變數上有個數值；
#*例如如果研究者想整個貝葉斯網絡嚟幫手睇病，啲數據會包含若干位病人，每位病人係一個個案，都會喺拃變數上有個值－病人 A 有發燒有咳但冇感冒，病人 B 冇發燒有咳但有感冒... 如此類推；如果用關係數據庫嚟表示，望落會係噉嘅樣－



最後，研究者就會用啲數據估計個貝葉斯網絡啲參數，而呢步正路係搵電腦嚟計嘅（可以睇埋最大似然估計同梯度下降法等嘅最佳化相關課題）。假設個網絡嘅理論基礎有返咁上下正確而且啲數據有返咁上下代表性，最後理應會得出一個能夠相當準確噉描述現實嘅貝葉斯網絡。

## 註釋

## 睇埋

*貝葉斯概率
*知識表示
*語義網絡
*專家知識
*專家系統
*深度信念網絡
*結構方程模型
*隱馬可夫模型

## 文獻

*Borgelt C., Steinbrecher M., Kruse R. (2009). *Graphical Models - Representations for Learning, Reasoning and Data Mining* (Second ed.). Chichester: Wiley. ISBN 978-0-470-74956-2.
*Conrady S., Jouffe L. (2015-07-01). *Bayesian Networks and BayesiaLab - A practical introduction for researchers*. Franklin, Tennessee: Bayesian USA. ISBN 978-0-9965333-0-0.
*Charniak E. (Winter 1991). "Bayesian networks without tears" (PDF). *AI Magazine*.
*Kruse R., Borgelt C., Klawonn F., Moewes C., Steinbrecher M., Held P. (2013). *Computational Intelligence A Methodological Introduction*. London: Springer-Verlag. ISBN 978-1-4471-5012-1.
*Shute, V. (2015). Stealth assessment in video games (PDF).
*Shute V. J., Moore G. R. (2017). Consistency and validity in game-based stealth assessment (PDF). *Technology enhanced innovative assessment: Development, modeling, and scoring from an interdisciplinary perspective*, 296，有心理學家指，打機嗰陣嘅行為源自腦對遊戲世界俾反應，所以會反映個人嘅認知能力同性格特質；呢啲心理學家模擬心理特性同「打機嗰陣嘅行為」嘅啦掕－例如「有一關過唔到嗰時，個人肯花幾多時間繼續嘗試過關」理應會反映個人嘅恆心，班研究者跟住攞數據，然後教部電腦整貝葉斯網絡計 \Pr( 心理特性 | 遊戲行為 )。

## 攷

## 拎

*BayANet: A Bayesian networks tool，一個俾人喺網上整貝葉斯網絡嘅網站。
*A Tutorial on Inference and Learning in Bayesian Networks (PDF).
*An Introduction to Bayesian Networks and their Contemporary Applications.
*On-line Tutorial on Bayesian nets and probability.
*Web-App to create Bayesian nets and run it with a Monte Carlo method.
*Continuous Time Bayesian Networks.
*Bayesian Networks: Explanation and Analogy.
*A live tutorial on learning Bayesian networks.
*A hierarchical Bayes Model for handling sample heterogeneity in classification problems, provides a classification model taking into consideration the uncertainty associated with measuring replicate samples.