[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e) › 05|Ch13 Part 1(2021 錄影)影片 [0:00:00–0:19:02](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=0s)|投影片 Ch13 p.2–8|上一章 [04 條件獨立與單純貝氏模型(0:18–0:31)](https://app.notion.com/p/3ecfc631b03081afb7ecc5dcaf0d4ce8)|下一章 [06 語意與建構網路的步驟(0:19–0:33)](https://app.notion.com/p/3ecfc631b03081f19fe0d87a2b1bbab2)
跳過提示:(0:13:27–0:14:53) 老師在逐一念出警報器例子的機率數字,聽不懂可以直接跳到 [0:14:53](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=893s),接著講「條件機率表 CPT 是什麼」。
## 重點
- 貝氏網路(Bayesian network)是一張「沒有環的有向圖」:每個節點是一個隨機變數,箭頭代表「誰直接影響誰」,每個節點附一張表,寫「給定它的 parent 時,它的機率是多少」。
- 圖怎麼連(topology),就決定了哪些變數彼此條件獨立;兩個節點之間「沒有線」本身就是資訊。這讓我們不必列出整張聯合機率表。
- 情境裡沒畫出來的細節(Mary 聽音樂、電話響)不是被忘掉,而是被收進機率裡當成不確定性;這樣一個小模型也能應付很大的世界。
## Exam-ready
- **Absence of a link**: "The conditional independence of Toothache and Catch, given Cavity, is indicated by the absence of a link between Toothache and Catch."(Ch13 p.3)
- 中文:在已知有沒有蛀牙的情況下,牙痛和探針卡住彼此條件獨立;這件事是用「兩者之間沒有連線」來表示的。白話:沒畫線,就代表知道蛀牙之後,它們不再互相提供消息。難字:indicated(表示)、absence(沒有)、link(連線)。
- **Burglar alarm**: "You have a new burglar alarm (竊盜警報器) installed at home. It is fairly reliable at detecting a burglary, but also responds on occasion to minor earthquakes."(Ch13 p.4)
- 中文:你家新裝了一台防盜警報器,偵測竊賊相當可靠,但偶爾也會被小地震觸發。白話:警報響不一定是有小偷,地震也可能讓它響。難字:fairly reliable(相當可靠)、on occasion(偶爾)、minor earthquakes(小地震)。
- **JohnCalls**: "John nearly always calls when he hears the alarm, but sometimes confuses the telephone ringing with the alarm and calls then, too."(Ch13 p.4)
- 中文:John 聽到警報幾乎都會打電話,但有時會把電話鈴聲誤當成警報,這時也會打。白話:John 會「多打」,所以警報沒響時他也有 0.05 的機率打來。難字:nearly always(幾乎總是)、confuses A with B(把 A 誤當 B)。
- **Network structure**: "The network structure shows that burglary and earthquakes directly affect the probability of the alarm’s going off, but whether John and Mary call depends only on the alarm."(Ch13 p.6)
- 中文:網路結構顯示,竊賊和地震直接影響警報響的機率;而 John 和 Mary 打不打電話只取決於警報。白話:箭頭只從竊賊、地震指到警報,再從警報指到兩個鄰居。難字:directly affect(直接影響)、go off(警報響起)、depend only on(只取決於)。
- **Assumptions**: "The network thus represents our assumptions that they do not perceive burglaries directly, they do not notice minor earthquakes, and they do not confer (協商) before calling."(Ch13 p.6)
- 中文:因此這個網路代表我們的假設:鄰居不會直接察覺竊賊、不會注意到小地震、打電話前也不會互相商量。白話:沒畫的線就是假設,鄰居只能靠警報聲判斷。難字:perceive(察覺)、notice(注意到)、confer(協商)。
- **Conditional probability table (CPT)**: "The conditional distributions are shown as a conditional probability table, or CPT."(Ch13 p.7)
- 中文:每個節點的條件機率分布用一張「條件機率表」呈現,簡稱 CPT。白話:parent 每一種組合對應一列機率。難字:conditional distribution(條件機率分布)、table(表)。
- **Prior probability**: "A node with no parents has only one row, representing the prior probabilities of each possible value of the variable."(Ch13 p.7)
- 中文:沒有 parent 的節點,表只有一列,代表這個變數每個可能值的事前機率。白話:沒有人影響它,就直接給一個「平常發生的機率」,例如竊賊 0.001。難字:prior probability(事前機率)、possible value(可能的值)。
- **Summarized circumstances**: "The probabilities actually summarize a potentially infinite set of circumstances in which the alarm might fail to go off (high humidity, power failure, dead battery, cut wires, a dead mouse stuck inside the bell, etc.) or John or Mary might fail to call and report it (out to lunch, on vacation, temporarily deaf, passing helicopter, etc.)."(Ch13 p.7)【老師強調】(0:16:48)
- 中文:這些機率其實彙整了可能無窮多種狀況:警報器沒響(濕度高、停電、電池沒電、電線被剪、老鼠卡在鈴裡)或 John、Mary 沒打電話(出去吃飯、度假、暫時耳背、直升機飛過太吵)。白話:細節不另開節點,全部算進表裡的機率。難字:summarize(彙整)、potentially infinite(可能無窮多)、circumstances(狀況)。
- **Small agent, large world**: "In this way, a small agent can cope with a very large world, approximately."(Ch13 p.7)
- 中文:用這種方式,一個小小的 agent 就能近似地應付一個非常大的世界。白話:靠合理的簡化,小模型也能處理複雜現實,只是不完全精確。難字:agent(代理人,做決策的程式)、cope with(應付)、approximately(近似地)。
## [0:00:00](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=0s) 為什麼需要貝氏網路
Ch12 已經學會用聯合機率分布(joint probability distribution,把所有變數每一種組合的機率都列出來)回答問題。問題是變數一多,要把每個機率都定出來非常困難。如果善用獨立和條件獨立,計算可以簡化很多。貝氏網路就是專門用來「把條件獨立用起來」的資料結構。
比喻:聯合機率表像把全班每個人跟每個人的關係都問一遍;貝氏網路只記「誰直接影響誰」,其他關係自己推。
下面這張圖是這一段的推理順序。
```mermaid
flowchart LR
A["想回答機率問題"] --> B["聯合機率表"]
B --> C["變數一多,表太大、數字難定"]
C --> D["善用條件獨立"]
D --> E["貝氏網路:只記直接影響"]
```
從左走到右:表太大是問題,條件獨立是解法,貝氏網路是把解法裝起來的容器。
考試可能怎麼問:Why do we need Bayesian networks instead of the full joint distribution?
貝氏網路是誰發揚光大的?
老師說主要歸功於 Judea Pearl。他在 1980–1990 年代開發機率推理(probabilistic reasoning),做出很多貢獻,後來拿到 Turing Award(我補充:2011 年)。他在第一、二章講 AI 歷史時出現過。
## [0:02:58](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=178s) 定義:有向無環圖與 parent
貝氏網路是一張有向圖:每個節點(node)是一個隨機變數,可以是離散的,也可以是連續的。箭頭從 X 指到 Y,就說 X 是 Y 的 parent。圖不能有環(cycle,例如 X→Y→Z→X 又繞回來),所以叫 DAG(directed acyclic graph,有向無環圖)。每個節點都有一個「給定 parent 時」的條件機率分布,用來量化 parent 對它的影響有多大。老師總結:貝氏網路是一種用來表達知識的資料結構。注意:今年投影片 p.2–8 沒有這段正式定義(p.2 只寫「這章介紹貝氏網路」),這段照老師口述整理。
為什麼不能有環?(我補充)因為箭頭代表「原因 → 結果」;如果繞一圈回來,就變成「A 是自己的原因」,機率也沒辦法一層一層往下算。
比喻:族譜。箭頭從父母指向小孩,不可能有人是自己的祖先。
考試可能怎麼問:What are the two components of a Bayesian network?
老師原話是什麼?
「如果有一個箭頭從 Node X 指向 Node Y,那我們就說 X 是 Y 的 Parent。」(0:03:38)
「貝氏網路是一個沒有 Cycle 的有向圖,所以它是 DAG。」(0:04:12)
「它呢能夠量化我這些這個 XI 的 Parent,它的父母對於這個 Node XI 的影響是怎麼樣。」(0:04:38)
## [0:05:16](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=316s) 拓撲代表條件獨立
拓撲(topology)指網路的連法:有幾個節點、誰跟誰連。這個連法就界定了變數之間的條件獨立關係。箭頭從 X 指到 Y,概念上代表 X 直接影響 Y,通常 X 是原因、Y 是結果。所以領域專家(domain expert)可以憑經驗先把圖畫出來;圖定了以後,只要告訴我 parent 的狀況,就能算出 child 的條件機率分布。
為什麼專家畫得出來?因為人對「什麼導致什麼」的直覺,比對「兩個變數一起出現的精確機率」好得多。先畫因果,再填數字,比直接填整張聯合機率表容易。
比喻:醫生不會背「發燒、咳嗽、喉嚨痛同時出現的機率」,但知道「感冒會導致這三種症狀」。
考試可能怎麼問:What does the topology of a Bayesian network represent?
箭頭一定代表因果嗎?
老師說的是「通常」:箭頭代表 X 直接影響 Y,也代表 X 可能是導致 Y 的原因。(我補充)數學上箭頭只要求符合條件獨立關係,但照因果方向畫,圖通常最簡潔、專家最好填數字。下一章講建構網路的步驟時會再談順序的影響。
## [0:07:03](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=423s) 牙痛例子
回到 Ch12 的牙痛例子,四個變數:牙痛(Toothache)、蛀牙(Cavity)、探針卡住(Catch)、天氣(Weather)。天氣跟其他三個完全獨立,所以單獨一個點,沒有任何線。蛀牙可能導致牙痛,也可能導致探針卡住,所以從 Cavity 各拉一條箭頭出去。
下面這張圖就是這四個變數的貝氏網路。
```mermaid
flowchart TD
W["Weather 天氣"]
C["Cavity 蛀牙"] --> T["Toothache 牙痛"]
C --> K["Catch 探針卡住"]
```
重點在「Toothache 和 Catch 之間沒有線」:已知有沒有蛀牙之後,牙痛不會再告訴你探針會不會卡住,兩者條件獨立。
比喻:兩個學生作文都寫得很像,因為抄同一本範本;知道他們抄同一本之後,一個人的作文就不會再透露另一個人的內容。
考試可能怎麼問:In the dental example, how is the conditional independence of Toothache and Catch shown in the network?
沒有蛀牙資訊時,牙痛和探針卡住獨立嗎?
不獨立。(我補充)如果不知道有沒有蛀牙,看到牙痛會讓你覺得「可能有蛀牙」,進而覺得探針比較可能卡住,所以兩者有關聯。條件獨立的「條件」很重要:要先知道 parent(Cavity)的值,兩者才互不影響。這就是 Ch12 單純貝氏模型的圖形版本。
## [0:09:25](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=565s) 竊賊警報器情境
你家有一台舊式的防盜警報器,沒有連網路,被闖入時只會在原地響,靠鄰居聽到。它大致可靠,但偶爾地震也會觸發它。兩個鄰居 John 和 Mary 答應聽到就打電話:John 有時會把電話鈴聲誤當警報;Mary 常聽大聲音樂,有時沒聽到。問題是:鄰居打電話來時,你家真的遭竊的機率有多高?
注意:老師在 0:10:43 口頭講成反方向(John 把警報聲當成電話聲,所以沒打)。投影片 p.4 寫的是 John 把電話鈴聲誤當警報、照樣打電話,以投影片為準;老師 0:14:27 解釋「警報沒響也有 0.05 會打」時也是這個意思。
為什麼這是機率問題?因為每一環都可能出錯:警報器會誤響、會漏響,鄰居會誤判、會沒聽到,結果不是確定的(non-deterministic)。
比喻:像靠同事轉述老闆的話,中間每一手都可能聽錯或漏聽,你只能估計「老闆真的這樣說」的可能性。
考試可能怎麼問:Describe the burglary alarm example and the question it tries to answer.
老師原話是什麼?
「如果說今天這個你的鄰居打電話來了,請你去預估出你家現在遭到竊賊侵入的機率是多少。」(0:11:39)
## [0:12:01](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=721s) 網路假設與機率數字
老師先講三個假設:警報器偶爾會被地震觸發;John 和 Mary 不互相串通,各自決定要不要打電話;兩人都感覺不到地震。投影片 p.6 還多寫一個:鄰居不會直接察覺竊賊,只能靠警報聲。所以 Alarm 有兩個 parent(Burglary、Earthquake),JohnCalls 和 MaryCalls 都只有一個 parent(Alarm)。
下面這張圖是警報器例子的網路。
```mermaid
flowchart TD
B["Burglary 竊賊"] --> A["Alarm 警報響"]
E["Earthquake 地震"] --> A
A --> J["JohnCalls John 打電話"]
A --> M["MaryCalls Mary 打電話"]
```
圖上 John 和 Mary 之間沒有線(不串通),地震也沒有直接指向他們(感覺不到地震):假設直接變成「沒畫的線」。
比喻:兩個互不認識的證人,只能根據自己聽到的鈴聲作證,不會先對口供。
考試可能怎麼問:What assumptions are encoded by the structure of the burglary network?
老師念的數字是哪些?
事前機率:竊賊 0.001、地震 0.002。
Alarm 響的機率:有竊賊有地震 0.95;有竊賊沒地震 0.94;沒竊賊有地震 0.29;都沒有 0.001。
JohnCalls:警報響 0.9、沒響 0.05(沒響也打,是把電話聲誤當警報)。
MaryCalls:警報響 0.7、沒響 0.01。
## [0:14:53](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=893s) 條件機率表 CPT 與事前機率
條件機率表(conditional probability table,CPT)列出一個節點在「parent 每一種取值組合」下的機率。布林變數有 k 個布林 parent,表就有 2 的 k 次方列;Alarm 有兩個 parent,所以 4 列。parent 不是布林時,列數是各 parent 取值數相乘,例如一個有 5 種值、一個有 3 種值,就是 5×3。沒有 parent 的節點(Burglary、Earthquake)表只有一列,就是事前機率(prior probability),老師說它來自這個地區長期觀察的結果。這段的 2 的 k 次方規則是老師念的英文句,今年投影片 p.2–8 沒有這句;投影片 p.5 是把整張圖和每個節點的 CPT 畫在一起。
下面這張表是 Alarm 的 CPT,每一列是一種 parent 組合。
| Burglary | Earthquake | P(Alarm 響) |
|---|---|---|
| 有 | 有 | 0.95 |
| 有 | 沒有 | 0.94 |
| 沒有 | 有 | 0.29 |
| 沒有 | 沒有 | 0.001 |
為什麼每列只寫一個數字?因為警報器只有「響/不響」,不響的機率就是 1 減掉它,不用另外存。
比喻:CPT 像餐廳的價目表,每一種「主餐+飲料」的組合對應一個價格;多加一個選項欄位,組合數就乘上去。
考試可能怎麼問:What is a CPT, and how does its size grow with the number of parents?
它到底怎麼運作?(進階,可跳過)
用警報器例子數「一共要填幾個數字」:
1. Burglary、Earthquake 沒有 parent → 各 1 個(0.001、0.002)。
2. Alarm 有 2 個布林 parent → 2 的 2 次方 = 4 個(上表)。
3. JohnCalls、MaryCalls 各 1 個 parent → 各 2 個。
合計 1 + 1 + 4 + 2 + 2 = 10 個數字。如果改用完整聯合機率表,5 個布林變數有 2 的 5 次方 = 32 種組合,要填 31 個(最後一個由總和 = 1 決定)。
再驗證一列:有竊賊沒地震時,警報不響的機率 = 1 − 0.94 = 0.06。
投影片 p.8 接著要用這 10 個數字算「警報響了、但沒有竊賊也沒有地震、John 和 Mary 都打電話」的機率,下一章會算。
## [0:16:48](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1008s) 隱性因素收進不確定性
老師特別提醒:情境裡講到 Mary 聽大聲音樂、電話鈴會響,這些都沒有畫成節點。它們被彙整(summarize)進 JohnCalls 和 MaryCalls 的不確定性裡,也就是那兩張表的機率。其他還有 Mary 不在家、有訪客、濕度太高或沒電讓警報器失靈、John 出去吃飯或度假,列舉不完,都不另外考慮。投影片 p.7 說得更完整:這些機率彙整了「可能無窮多」的狀況,包括警報器本身沒響(停電、電線被剪、老鼠卡在鈴裡)和鄰居沒打電話(暫時耳背、直升機飛過),所以 Alarm 的表也吸收了不確定性,不只 JohnCalls、MaryCalls。靠這種合理簡化,一個小小的 agent 也能應付很大的世界;想更精確,再加入相關變數,代價是網路更複雜、要填更多機率。
為什麼可以這樣做?因為我們關心的只是「警報響了,John 打不打電話」;他是因為耳背、音樂還是度假沒打,對這個問題都一樣,合併成一個機率就夠了。
比喻:氣象預報說「降雨機率 30%」,沒有把每一朵雲寫出來,所有細節都已經算進那個 30% 裡。
考試可能怎麼問:How does a Bayesian network handle factors that are not explicitly modeled, such as Mary listening to loud music?
老師原話是什麼?
「那特別要注意一點,就是說我們剛剛前面的整個問題的描述,有提到說 Mary 有時候在聽很吵的音樂啦,然後有時候電話鈴會響啦,這些要件都沒有表達在剛剛的這個網路裡面。」(0:16:48)
「基本上我們把這些比較隱性的因素,都 summarize 在這個 Alarm to JohnCalls 跟 MaryCalls 的這個 uncertainty 裡面。」(0:17:08)
「要不然你要考慮的東西太多了。」(0:17:30)
## Self-check
Q1. Why does the dental Bayesian network have no link between Toothache and Catch?(中文:為什麼牙痛例子的網路裡,Toothache 和 Catch 之間沒有連線?)
**Answer**: Because Toothache and Catch are conditionally independent given Cavity. Cavity is the common cause of both; once we know whether there is a cavity, knowing the toothache tells us nothing more about the catch. The absence of a link encodes this conditional independence.
中文:因為在已知有沒有蛀牙的情況下,牙痛和探針卡住是條件獨立的。蛀牙是兩者共同的原因;一旦知道有沒有蛀牙,牙痛就不會再提供探針會不會卡住的資訊。圖上「沒有連線」就是用來表示這個條件獨立。
Q2. In the burglary example, Mary's loud music and the ringing phone are not nodes in the network. How are these factors handled, and why?(中文:警報器例子裡,Mary 聽大聲音樂和電話響都不是節點。這些因素怎麼處理?為什麼?)
**Answer**: They are summarized in the uncertainty of the JohnCalls and MaryCalls nodes, that is, in their conditional probabilities given Alarm. The slides add that the CPTs summarize a potentially infinite set of circumstances, including reasons the alarm itself might fail to go off. Listing every such factor (being out, having a visitor, a dead battery) is impossible, so lumping them into probabilities keeps the model small. In this way a small agent can cope with a very large world; accuracy can be improved later by adding relevant variables.
中文:這些因素被彙整進 JohnCalls 和 MaryCalls 的不確定性,也就是「給定警報響不響」時打電話的條件機率裡。投影片還補充:這些表彙整了可能無窮多的狀況,連警報器本身沒響的原因(停電、電池沒電)也算在內。因為這類因素(不在家、有訪客、沒電)列舉不完,把它們合併成機率可以讓模型保持小。這樣小 agent 也能應付很大的世界;想更準時再加入相關變數。
Q3. What is a conditional probability table (CPT), and how does its size depend on a node's parents?(中文:什麼是條件機率表?它的大小跟節點的 parent 有什麼關係?)
**Answer**: A CPT gives the probability of a node for each combination of its parents' values. For a Boolean node with k Boolean parents, it has 2^k rows, one independent probability per row. With non-Boolean parents, the number of rows is the product of the parents' numbers of values. A node with no parents only needs a prior probability.
中文:條件機率表列出一個節點在 parent 每一種取值組合下的機率。布林節點有 k 個布林 parent 時,表有 2 的 k 次方列,每列一個可以各自決定的機率。parent 不是布林時,列數是各 parent 取值數相乘。沒有 parent 的節點只需要一個事前機率。
Q4. Why is a Bayesian network required to be acyclic, and why do arrows usually go from causes to effects?(中文:為什麼貝氏網路不能有環?為什麼箭頭通常從原因指向結果?)
**Answer**: Arrows mean direct influence, and each node's probability is defined given its parents. A cycle would make a variable its own ancestor, so the probabilities could not be specified layer by layer. Drawing arrows from causes to effects lets domain experts build the graph from their knowledge and fill in the numbers more easily.
中文:箭頭代表直接影響,每個節點的機率是「給定 parent」來定義的。如果有環,變數會變成自己的祖先,機率就沒辦法一層一層定下來。箭頭照「原因 → 結果」畫,領域專家才能用自己的知識畫出圖,也比較容易填數字。
讀完了嗎?下一章:[06 語意與建構網路的步驟(0:19–0:33)](https://app.notion.com/p/3ecfc631b03081f19fe0d87a2b1bbab2)|回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e)