[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e) › 07|Ch13 Part 1(2021 錄影)影片 [0:33:53–0:48:19](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2033s)|投影片 Ch13 p.11–17|上一章 [06 語意與建構網路的步驟(0:19–0:33)](https://app.notion.com/p/3ecfc631b03081f19fe0d87a2b1bbab2)|下一章 無
## 重點
- 貝氏網路通常比完整的聯合分布表小很多,因為現實問題多半是「局部結構」:每個變數只直接受少數幾個變數影響。
- 但精簡不是自動得到的。節點加進網路的順序選錯,連線會變多,而且會冒出很難估的機率。
- 照「原因 → 結果」的因果方向排順序最好。三種順序建出的網路其實代表同一個聯合分布,差別只在有沒有善用條件獨立。
## Exam-ready
- **Compactness**: A Bayesian network is often far more compact than the full joint distribution. (my wording;老師唸於 0:34:05,本章投影片沒有這句)
- 中文:貝氏網路常常比完整的聯合分布表精簡得多。白話:同一件事,用網路記比用一張大表記省很多格子。compact(精簡的)、full joint distribution(完整聯合分布)。
- **Locally structured (sparse) domain**: Each component interacts directly with only a small, bounded number of other components. (my wording;老師唸於 0:36:13)
- 中文:系統裡每個小部分只跟有限幾個其他部分直接互動。白話:每個變數只認識幾個鄰居,不是跟所有人都有關。interacts directly(直接互動)、bounded number(有上限的數量)。
- **Adding extra links**: "Whether to add the link from Earthquake to JohnCalls and MaryCalls (and thus enlarge the tables) depends on comparing the importance of getting more accurate probabilities with the cost of specifying the extra information."(Ch13 p.11)
- 中文:要不要從 Earthquake 多拉線到 JohnCalls、MaryCalls(表格也跟著變大),要比較「機率更準」有多重要,和「多指定這些資訊」的成本。白話:畫得更細更準,但要多付出功夫,值不值得自己權衡。enlarge(擴大)、specifying(指定、填寫)。
- **Node ordering**: "Even in a locally structured domain, we will get a compact Bayesian network only if we choose the node ordering well."(Ch13 p.12)【老師強調】(0:46:45)
- 中文:就算問題本身是局部結構,也只有在節點順序選得好的時候,才會得到精簡的貝氏網路。白話:材料再好,加進去的順序錯了一樣會做得很亂。domain(問題領域)、node ordering(節點順序)。
- **Cost of a bad ordering**: "The resulting network has two more links than the original network in Figure 14.2 and requires three more probabilities to be specified."(Ch13 p.15)
- 中文:用 MaryCalls、JohnCalls、Alarm、Burglary、Earthquake 這個順序建出的網路,比原本的 Figure 14.2 多兩條連線,也要多指定三個機率。白話:順序錯了,要記的東西就變多。resulting network(建出來的網路)、specified(指定)。
- **Unnatural probability judgments**: "What's worse, some of the links represent tenuous (稀薄的) relationships that require difficult and unnatural probability judgments, such as assessing the probability of Earthquake, given Burglary and Alarm."(Ch13 p.15)
- 中文:更糟的是,有些連線代表很薄弱的關係,要你做困難又不自然的機率判斷,例如估「已知有竊賊、警報有響時,發生地震的機率」。白話:這種數字問專家也答不出來。tenuous(薄弱的)、assessing(估計)。
- **Diagnostic model**: Building links from symptoms to causes forces us to specify extra dependencies between causes that are otherwise independent. (my wording;老師唸於 0:45:30)
- 中文:如果從症狀往原因的方向建「診斷式」模型,最後就得額外指定原本彼此獨立的原因之間的依賴關係。白話:倒著建,本來無關的竊賊和地震也得硬拉上線。diagnostic(診斷的)、otherwise independent(本來是獨立的)。
- **Same joint distribution**: All three networks, built from different orderings, represent exactly the same joint distribution. (my wording;老師唸於 0:47:25)【老師強調】(0:47:43)
- 中文:三種順序建出的網路,表示的都是完全相同的聯合分布。白話:三張圖算出來的機率一模一樣,只是繁簡不同。represent(表示)、exactly the same(完全相同)。
- **Topological semantics**: "The topological semantics specifies that each variable is conditionally independent of its non-descendants, given its parents (Figure 14.4(a))."(Ch13 p.16)
- 中文:拓撲語意是說:給定一個變數的 parent,它就跟所有「非後代」節點條件獨立。白話:知道了直接原因,更上游或旁支的節點就不會再提供新資訊。non-descendants(非後代節點)、conditionally independent(條件獨立)。
- **Markov blanket**: "A node is conditionally independent of all other nodes in the network, given its parents, children, and children's parents—that is, given its Markov blanket."(Ch13 p.16)
- 中文:給定一個節點的 parent、children、以及 children 的其他 parent(合起來叫 Markov blanket,馬可夫毯),這個節點就跟網路裡其他所有節點條件獨立。白話:只要看住它身邊這一圈,外面的節點都不用管。Markov blanket(馬可夫毯)、children's parents(孩子的其他父母)。
## [0:33:55](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2035s) 精簡來自局部結構
貝氏網路之所以小,是因為現實世界多半是局部結構(locally structured,也叫稀疏 sparse):就算有 10 個隨機變數,每一個通常也只跟兩三個有關,不會跟其他 9 個全都有關。老師舉兩個例子:今天的天氣跟昨天、前天有點關係,跟 10 天前就扯遠了;台南的氣溫跟隔壁的嘉義、高雄有關,跟基隆關係就不大。
下面這張圖畫的是台南氣溫的例子:只有鄰近城市直接連到台南,遠的基隆沒有連線。
```mermaid
flowchart LR
A["嘉義氣溫"] --> C["台南氣溫"]
B["高雄氣溫"] --> C
D["基隆氣溫"]
```
為什麼「只跟少數有關」就能變小?因為網路裡每個節點只要記「給定它的 parent 時的機率」,parent 少,要記的數字就少;不用像聯合分布表那樣把所有變數的組合全部列出來。
用生活例子講,局部結構是什麼?
像一個班級的八卦傳播:你聽到的消息通常來自隔壁兩三個同學,而不是全班 40 個人同時告訴你。所以要描述「你會不會知道這件事」,只要看那兩三個人就夠了。
## [0:36:36](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2196s) 全連接網路與名詞提醒
如果每個變數都跟其他所有變數有關(牽一髮動全身),網路就是全連接網路(fully connected network)。這時候網路一點都不省,要指定的機率表跟完整聯合分布一樣大。好在大部分領域裡,每個隨機變數只跟少部分有關。
注意:老師特別提醒,這裡的 network 只是借用同一個字,跟深度學習的類神經網路無關,也跟電腦通訊網路無關。
它到底怎麼運作?(進階,可跳過)
用老師說的 10 個布林(真/假)隨機變數來算(我補充):
完整聯合分布:10 個變數有 2 的 10 次方 = 1024 種組合,扣掉「加總等於 1」可以推出的那一格,要記 1023 個數字。
局部結構:假設每個變數最多 3 個 parent。一個節點有 k 個布林 parent,就要記 2 的 k 次方個數字(每種 parent 組合一個「為真」的機率)。所以最多 10 × 8 = 80 個數字。
全連接:第 1 個節點 0 個 parent、第 2 個 1 個 parent……第 10 個 9 個 parent,加起來 1 + 2 + 4 + … + 512 = 1023,跟完整聯合分布一樣大。
## [0:37:36](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2256s) 微弱關聯可以忽略
真實世界裡,遠的變數也許有一點點關係,像蝴蝶效應:宜蘭一隻蝴蝶拍翅膀,說不定影響台南的天氣。但這種影響微乎其微,實務上直接假設它們沒關係。
老師再用竊賊警報的例子說明(投影片 p.11):有人會反對原本的網路,因為如果發生地震,John 和 Mary 就算聽到警報也不會打電話,他們會以為是地震引起的。照這個想法,要從 Earthquake 多拉箭頭到 JohnCalls、MaryCalls。這樣做沒有標準答案。多一個 parent 就要多估一張 CPT(conditional probability table,條件機率表)。投影片說要比較「機率更準」的重要性和「多指定資訊」的成本;老師的說法是看你對問題的掌握和計算量。
用生活例子講,要不要多拉一條線?
像畫地圖要不要把每條小巷都畫出來。畫得越細越準,但也越難畫、越難讀。實務上只畫主要道路,影響很小的小巷就省略。
## [0:39:44](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2384s) 順序選得好才精簡
就算問題是局部結構,也只有節點順序選得好,才會得到精簡的網路。老師舉反例:順序改成 MaryCalls、JohnCalls、Alarm、Burglary、Earthquake,也就是從結果往原因建。
為什麼 JohnCalls 被迫要拿 MaryCalls 當 parent?建網路時,新節點只能從「已經加進來的節點」裡挑 parent。這時網路裡還沒有 Alarm,而 Mary 打電話代表警報比較可能響了,警報響又代表 John 也比較可能打電話。所以 Mary 打電話確實會改變 John 打電話的機率,只能拉一條 MaryCalls → JohnCalls。這條線背後的真正原因是間接的,透過 Alarm 傳過去。
投影片 p.14 把每一步的理由列出來:
- MaryCalls 第一個加,沒有 parent。
- Alarm:兩個人都打電話,比只有一人或沒人打,更可能是警報響了,所以 JohnCalls、MaryCalls 都是 parent。
- Burglary:已經知道警報狀態後,電話不會再透露竊賊的消息,也就是 P(Burglary | Alarm, JohnCalls, MaryCalls) = P(Burglary | Alarm),所以只要 Alarm 當 parent。
- Earthquake:警報響了,地震就比較可能;但如果已知有竊賊,警報已經被竊賊「解釋掉」,地震機率只比平常高一點點。所以 Earthquake 要 Alarm 和 Burglary 兩個 parent。
下面這張圖畫的就是用這個順序建出來的網路(投影片的 Figure 14.3(a))。
```mermaid
flowchart TD
M["MaryCalls"] --> J["JohnCalls"]
M --> A["Alarm"]
J --> A
A --> B["Burglary"]
A --> E["Earthquake"]
B --> E
```
整張圖的箭頭方向是從症狀指向原因,老師說「感覺邏輯很怪」。Figure 14.3 是課本第 3 版的圖號(第 4 版在 Ch13)。
要先懂什麼?
上一章的建網路步驟(我補充摘要):先決定變數的順序;然後一個一個加進網路,每加一個變數,就從前面已加入的變數裡挑「最少的一組 parent」,讓這個變數在給定這些 parent 時,跟其他前面的變數條件獨立;最後替每個節點填好 CPT。所以順序一改,每個節點能挑的 parent 就跟著變。
## [0:44:12](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2652s) 多出的連線與難估的機率
跟原本的網路(Figure 14.2)比,這個反例網路硬是多了兩條連線,也要多指定三個機率(投影片 p.15)。更糟的是有些機率很難估,例如「當有竊盜案、警報響或不響時,發生地震的機率」,老師說「誰知道啊」。
網路建好不只是把圖(topology,拓撲結構)畫出來,每個節點的 CPT 也都要填得出來才算完成。所以這個順序不只結構更複雜,裡面的機率還寫不出來。
它到底怎麼運作?(進階,可跳過)
沿用上一段的算法:布林節點有 k 個 parent 就要記 2 的 k 次方個數字(我補充)。
原本的因果網路(Burglary、Earthquake → Alarm → JohnCalls、MaryCalls):1 + 1 + 4 + 2 + 2 = 10 個數字,4 條連線。
反例網路:MaryCalls 1、JohnCalls 2、Alarm 4、Burglary 2、Earthquake 4,共 13 個數字,6 條連線,正好多兩條。
## [0:45:32](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2732s) 診斷方向與因果方向
從症狀往原因建,叫診斷式模型(diagnostic model),就像先看到 Mary 打電話,再推到警報,再推到竊賊。這跟人理解的因果是反的。硬要這樣建,就得額外指定原本互相獨立的原因(竊賊和地震)之間的依賴。
照因果方向建(causal model,從原因到結果),只需要比較少、也比較好估的機率。下面的表比較兩種方向。
| 比較項目 | 因果方向(原因 → 結果) | 診斷方向(症狀 → 原因) |
|---|---|---|
| 建的順序 | Burglary、Earthquake 先,電話最後 | 電話先,Burglary、Earthquake 最後 |
| 連線數 | 少 | 多(要補原因之間的連線) |
| 機率好不好估 | 好估,例如「有竊賊時警報響的機率」 | 難估,例如「有竊賊、警報響時地震的機率」 |
| 結果 | 精簡 | 複雜 |
為什麼因果方向的機率比較好估?因為專家熟悉的是「原因會造成什麼結果」,例如保全公司知道「有小偷時警報有多常響」;但很少人能回答反過來的組合問題。
老師原話是什麼?
「所以這個 ordering 是很重要的」(0:46:45)
## [0:46:47](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=2807s) 最爛的順序與同一個分布
老師故意再舉一個更爛的順序:MaryCalls、JohnCalls、Earthquake、Burglary、Alarm。建出來的網路更亂,光 Alarm 就有四個 parent,Burglary 有三個 parent。
但不要忘了:這三個網路其實都代表同一個聯合分布,算出來的任何機率都一樣。差別在後兩個沒有善用條件獨立,所以多估了一些不必要、或很難估的機率。下表整理三種順序。
| 順序 | 方向 | 網路長相 |
|---|---|---|
| Burglary、Earthquake、Alarm、JohnCalls、MaryCalls | 因果 | 最精簡 |
| MaryCalls、JohnCalls、Alarm、Burglary、Earthquake | 診斷 | 多兩條連線,有難估的機率 |
| MaryCalls、JohnCalls、Earthquake、Burglary、Alarm | 診斷且更亂 | Alarm 四個 parent、Burglary 三個 parent |
既然代表同一個分布,為什麼還要挑?因為同樣的答案,一個要記 10 個好估的數字,另一個要記一大堆沒人估得出來的數字,實務上只有前者建得起來。
注意:本章投影片範圍到 p.17,但影片在 0:48:13「稍微告一個段落」,p.16–17 的條件獨立關係這支影片沒講。p.16 有兩句:一個變數在給定 parent 時,跟它的非後代節點條件獨立(topological semantics,拓撲語意);一個節點在給定 parent、children、children 的其他 parent 時,跟其他所有節點條件獨立,這一圈叫 Markov blanket(馬可夫毯)。白話:看住身邊這一圈鄰居,外面的人說什麼都不影響它。
它到底怎麼運作?(進階,可跳過)
沿用前面的算法(我補充)。假設 Earthquake 拿 MaryCalls、JohnCalls 當 parent:MaryCalls 1、JohnCalls 2、Earthquake 4、Burglary 8(三個 parent)、Alarm 16(四個 parent),共 31 個數字。這剛好等於 5 個布林變數完整聯合分布要記的 2 的 5 次方減 1 = 31,等於完全沒省到。
老師原話是什麼?
「但不要忘了,這個貝氏網路,他們其實都代表同樣的 joint distribution」(0:47:43)
## Self-check
Q1. Why can a Bayesian network be much more compact than the full joint distribution?(中文:為什麼貝氏網路可以比完整聯合分布精簡很多?)
**Answer**: Most real domains are locally structured (sparse): each variable is directly influenced by only a few other variables. A Bayesian network only stores each variable's probability given its parents, so the number of numbers grows with the number of parents, not with all combinations of all variables.
中文:因為大部分真實問題是局部結構,每個變數只直接受少數幾個變數影響。貝氏網路每個節點只記「給定 parent 時的機率」,要記的數量看 parent 有幾個,而不是把所有變數的所有組合都列出來,所以小很多。
Q2. Why is node ordering important when constructing a Bayesian network?(中文:建貝氏網路時,為什麼節點順序很重要?)
**Answer**: Each new node can only choose parents from nodes already added. With a causal ordering (causes before effects), each node needs few parents and the CPTs are easy to assess. With a diagnostic ordering (symptoms before causes), extra links appear, such as MaryCalls → JohnCalls, and some CPTs become difficult and unnatural to assess, such as P(Earthquake | Burglary, Alarm).
中文:新加的節點只能從已經加進來的節點裡挑 parent。照因果順序(原因先、結果後),每個節點需要的 parent 少,CPT 也好估。照診斷順序(症狀先、原因後),會多出連線,例如 MaryCalls → JohnCalls,而且有些機率很難估,例如「已知竊賊和警報時地震的機率」。所以順序決定網路精不精簡、建不建得起來。
Q3. Compare a causal model and a diagnostic model.(中文:比較因果模型和診斷模型。)
**Answer**: A causal model adds links from causes to effects; it needs fewer probabilities, and they are natural for experts to estimate. A diagnostic model adds links from symptoms to causes; it must specify additional dependencies between otherwise independent causes, so it has more links and harder probabilities.
中文:因果模型的箭頭從原因指向結果,需要的機率比較少,而且專家容易估。診斷模型的箭頭從症狀指向原因,必須額外指定本來互相獨立的原因之間的關係,所以連線多、機率也難估。
Q4. If the three networks built from different orderings are different, do they represent different distributions? Explain.(中文:不同順序建出的三個網路長得不一樣,它們代表的分布也不同嗎?請說明。)
**Answer**: No. Any of these three networks can represent exactly the same joint distribution. The more complex ones simply fail to exploit conditional independence, so they need more, and often unnecessary or hard-to-assess, probabilities.
中文:不會。三個網路都能表示完全相同的聯合分布,算出來的機率一樣。比較複雜的那兩個只是沒有善用條件獨立,所以要多估一些不必要、或很難估的機率。
這週讀完了。回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e)