[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e) › 06|Ch13 Part 1(2021 錄影)影片 [0:19:02–0:33:53](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1142s)|投影片 Ch13 p.9–10|上一章 [05 貝氏網路的定義與警報器例子(0:00–0:19)](https://app.notion.com/p/3ecfc631b0308143bb9bc5ea30a57b40)|下一章 [07 網路的精簡性與節點順序(0:33–0:48)](https://app.notion.com/p/3ecfc631b03081a4b341d85d2cb7f773) ## 重點 - 貝氏網路有兩種看法:它是「整個聯合機率分布」的精簡寫法,也是「哪些變數彼此條件獨立」的編碼;兩種看法等價,前者適合拿來建網路,後者適合理解推論。 - 有了網路,任何一種「全部變數都指定值」的機率,都只要把每個節點「給定 parent 的機率」查表相乘就好。 - 建網路三步驟:決定變數 → 排順序 → 每個節點只從前面的節點挑「直接影響它」的最少 parent、畫箭頭、寫 CPT;這樣建出來的網路保證無環,也不會有互相矛盾的機率。 ## Exam-ready - **Two views of semantics**: a Bayesian network can be seen as a representation of the full joint probability distribution, or as an encoding of a collection of conditional independence statements; the two views are equivalent. (my wording,老師口頭 0:19:22) - 中文:貝氏網路可以看成「聯合機率分布的表示法」,也可以看成「一組條件獨立敘述的編碼」,兩種看法講的是同一件事。白話:同一張網,一面是算機率的工具,一面是寫「誰跟誰無關」的筆記。representation(表示法)、encoding(編碼)、equivalent(等價的)。 - **Joint entry from the network — P(x1, …, xn) = ∏ P(xi | parents(Xi))**: each entry of the full joint distribution is the product of the local conditional probabilities. (my wording) - 中文:聯合分布裡的每一格機率,都等於每個節點「給定它的 parent 時的機率」全部乘起來。白話:查每個節點自己的小表,乘一乘就有答案。entry(一格、一個值)、product(乘積)、local(局部的)。 - **Construction method**: "A method for constructing Bayesian networks"(Ch13 p.9) - 中文:p.9 這頁的主題是「建構貝氏網路的方法」:決定變數 → 排順序 → 每個節點從前面挑 parent、畫箭頭、寫 CPT。白話:這頁就是在教你一步一步把網畫出來。constructing(建構)。 - **Goal of construction**: build the network in such a way that the resulting joint distribution is a good representation of a given domain. (lecture,老師唸出 0:24:56) - 中文:建網路的目標,是讓網路算出來的聯合分布能好好代表我們要描述的那個領域。白話:網要畫得像真實世界。resulting(得出的)、domain(領域)。 - **Choosing parents — P(MaryCalls | JohnCalls, Alarm, Earthquake, Burglary) = P(MaryCalls | Alarm)**: "Intuitively, the parents of node Xi should contain all those nodes in X1, …, Xi−1 that directly influence Xi."(Ch13 p.10) - 中文:直覺上,節點 Xi 的 parent 要包含排在它前面、而且「直接」影響它的所有節點;投影片的例子是 MaryCalls 只要看 Alarm。白話:只連直接原因,間接原因不用連。intuitively(直覺上)、directly influence(直接影響)、contain(包含)。 - **Acyclic guarantee**: "Because each node is connected only to earlier nodes, this construction method guarantees that the network is acyclic."(Ch13 p.10) - 中文:因為每個節點只會連到排在它前面的節點,這種建法保證網路裡沒有環。白話:箭頭永遠從前面指到後面,就不可能繞回原點。acyclic(無環的)、guarantee(保證)。 - **Node ordering**: any ordering can be used, but different orderings give networks of different compactness, so the ordering should follow cause-effect relationships. (my wording) 【老師強調】(0:32:53) - 中文:任何順序原則上都能建出網路,但不同順序建出來的網路精簡程度不同,所以排順序時要照因果關係(原因在前、結果在後)。白話:先排原因再排結果,箭頭最少。ordering(順序)、compactness(精簡程度)、cause-effect(因果)。 - **No redundancy**: it contains no redundant probability values; if there is no redundancy, then there is no chance for inconsistency. (lecture,老師唸出 0:32:59) - 中文:貝氏網路裡沒有重複的機率值;沒有重複,就沒有互相矛盾的機會。白話:每個數字只寫一次,所以不會兩個數字吵架。redundant(多餘的、重複的)、inconsistency(不一致、矛盾)。 - **Cannot violate axioms**: it is impossible for the knowledge engineer or domain expert to create a Bayesian network that violates the axioms of probability. (lecture,老師唸出 0:33:09) - 中文:知識工程師或領域專家不可能建出違反機率公理的貝氏網路。白話:只要照規則填表,機率一定合法(在 0 到 1 之間、加總為 1)。axioms(公理)、violate(違反)、domain expert(領域專家)。 ## [0:19:06](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1146s) 兩種角度看語意 貝氏網路畫的是真實世界的知識,老師說可以從兩個角度讀它。第一個角度:它是「全部變數的聯合機率分布」的精簡表示法,前一章一直在用的就是這個。第二個角度:它是「條件獨立敘述」的編碼,誰指向誰、方向怎樣,就是在寫「給定某些變數後,哪些變數彼此無關」。 為什麼要兩個角度?因為兩者等價,只是用途不同:要建網路時,從「怎麼描寫聯合分布」出發比較好下手;要理解推論怎麼進行時,從「條件獨立」出發比較好懂。 | 角度 | 網路被看成什麼 | 適合拿來做什麼 | |---|---|---| | 第一個 | 聯合機率分布的表示法 | 建構網路 | | 第二個 | 條件獨立敘述的編碼 | 理解推論過程 |
用生活例子講,兩個角度差在哪? 像一張家族族譜。第一個角度把它當「算遺傳機率的計算表」:要知道某種組合出現的機率,就順著族譜查每個人的表乘起來。第二個角度把它當「誰影響誰的說明書」:知道爸媽的血型後,祖父母的血型就不會再影響你的血型。同一張圖,兩種讀法。
考試可能怎麼問:說明貝氏網路的兩種語意,並說它們各適合用在哪裡。 ## [0:20:31](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1231s) 用網路算聯合機率 有了網路,就能算很多不同的機率。老師的例子:警報響了、John 和 Mary 都打來,但其實沒有竊賊、也沒有地震,這種情況的機率是多少?做法是把每個節點「給定它的 parent 時的機率」相乘,數字全部從各節點的 CPT(conditional probability table,條件機率表)查表就好。 下面這張圖是前一章的警報器網路,箭頭代表「直接影響」。算機率時,每個節點只看指向它的箭頭。 ```mermaid flowchart TD B["Burglary 竊賊"] --> A["Alarm 警報響"] E["Earthquake 地震"] --> A A --> J["JohnCalls John 打來"] A --> M["MaryCalls Mary 打來"] ``` Burglary 和 Earthquake 沒有 parent,而且彼此獨立,所以直接各自乘自己的機率;Alarm 要看「沒竊賊、沒地震」時響的機率;John、Mary 只看 Alarm。結果大約只有萬分之六,非常低。為什麼這代表好事?因為這正是「完全誤報卻兩個鄰居都打來」的機率,低就表示這個警報器很少亂響、挺可以信賴。
它到底怎麼運作?(進階,可跳過) 小寫字母代表變數取某個值:j=John 有打來,¬b=沒有竊賊,以此類推。 P(j, m, a, ¬b, ¬e) = P(j | a) × P(m | a) × P(a | ¬b, ¬e) × P(¬b) × P(¬e) 查表(老師給的數字): - 地震機率 0.002,所以 P(¬e) = 0.998 - 沒有竊賊 P(¬b) = 0.999 - 沒竊賊、沒地震時警報響 P(a | ¬b, ¬e) = 0.001 - 警報響時 Mary 打來 P(m | a) = 0.70 - 警報響時 John 打來 P(j | a) = 0.90 相乘:0.90 × 0.70 × 0.001 × 0.999 × 0.998 ≈ 0.000628。 注意:老師口頭在這段把 John 的機率說成 0.98、結果說成 0.00628;前一章 0:13:31 說 John 是 0.9,照 0.9 算出來是 0.000628(萬分之六左右)。結論不變:這個機率很低。
考試可能怎麼問:說明如何用貝氏網路算出一筆完整指定的聯合機率,為什麼只需要查各節點的 CPT。 ## [0:24:12](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1452s) 本章兩大問題 剛才是現成的小例子。面對真正的問題時,Ch13 要解決兩件事:第一,怎麼建構貝氏網路,讓它好好代表這個領域;第二,有了網路之後,怎麼推論出我們想要的機率。這支影片只講第一件,推論留到之後的影片。 ```mermaid flowchart LR P["真實問題"] --> Q1["問題一:怎麼建網路"] Q1 --> Q2["問題二:怎麼用網路推論機率"] ```
用生活例子講,為什麼要分兩階段? 像開餐廳:先要把菜單和食譜定好(建網路),客人點菜時才能照食譜出菜(推論)。食譜沒寫好,後面再會炒也沒用。
考試可能怎麼問:貝氏網路這章要回答的兩個核心問題是什麼? ## [0:24:50](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1490s) 用 chain rule 拆聯合機率 建網路的出發點,是把聯合機率用 product rule(乘法規則:P(A, B) = P(A | B) P(B))一層一層拆開。先把「n 個變數一起出現」拆成「前 n−1 個一起出現」乘上「給定前 n−1 個時第 n 個出現」,再對前面那塊重複拆,最後得到一長串條件機率相乘,這就是 chain rule(連鎖規則)。 關鍵在下一步:每一項「給定前面所有變數」的條件,其實不用真的全帶著,只要留下真正直接影響它的那些,也就是它的 parent。為什麼可以丟掉其他的?因為給定 parent 之後,其他排在前面的變數對它已經沒有額外影響(條件獨立)。這一步正是貝氏網路能省下大量數字的原因。
它到底怎麼運作?(進階,可跳過) 用警報器例子,順序取 B, E, A, J, M: chain rule 完整展開: P(B, E, A, J, M) = P(B) × P(E | B) × P(A | B, E) × P(J | B, E, A) × P(M | B, E, A, J) 每一項換成「只看 parent」: - P(E | B) → P(E):地震跟竊賊無關 - P(A | B, E) 不變:兩個都直接影響警報 - P(J | B, E, A) → P(J | A) - P(M | B, E, A, J) → P(M | A) 結果就是上一段用的那條式子:P(B) P(E) P(A | B, E) P(J | A) P(M | A)。一般式:P(x1, …, xn) = ∏ P(xi | parents(Xi)),成立的條件是 parents(Xi) 都在 X1, …, Xi−1 裡面,而且給定 parents(Xi) 之後,Xi 跟其他排在前面的節點條件獨立。
考試可能怎麼問:說明 chain rule 和貝氏網路的關係,為什麼每一項的條件可以縮小成 parent。 ## [0:28:02](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1682s) 建網路的三個步驟 把上一段整理成做法,就是三個步驟。第一,決定這個問題有哪些隨機變數(節點)。第二,把變數排一個順序 X1 到 Xn。第三,依序處理每個 Xi:從排在它前面的節點中,挑出「最少、但足夠」的 parent,從每個 parent 畫一條箭頭指向 Xi,再把 P(Xi | parents) 的數字(靠經驗或統計估出來)寫進 CPT。 下面這張圖是三個步驟的流程。 ```mermaid flowchart TD S1["1 決定有哪些隨機變數"] --> S2["2 排一個順序 X1 到 Xn"] S2 --> S3["3 依序處理每個 Xi"] S3 --> S3a["從前面節點挑最少的 parent"] S3a --> S3b["每個 parent 畫箭頭到 Xi"] S3b --> S3c["估計並寫下 CPT"] ``` 為什麼順序重要?老師說任何順序原則上都能用,但不同順序建出來的網路「簡潔程度」不一樣,有些原則可以遵循,下一章會示範。
用生活例子講,建網路像什麼? 像排一場婚禮的座位:先列出所有賓客(變數),再決定入場順序(排序),每個人入場時只問「已經坐下的人裡面,誰跟你最直接有關?」,就跟那幾位拉一條線(畫箭頭),最後記下彼此的關係有多緊(CPT)。入場順序排得好,線就少;排得亂,線會拉得一團。
考試可能怎麼問:用文字描述建構貝氏網路的步驟。 ## [0:29:43](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1783s) MaryCalls 只需要 Alarm 挑 parent 的原則:Xi 的 parent 要包含所有排在它前面、而且「直接」影響它的節點。老師用 MaryCalls 示範:Mary 打不打電話當然跟竊賊、地震有關,但那是間接的;她對地震沒感覺,也看不到你家有沒有小偷,她會打來只因為聽到警報響。John 打不打電話也跟她無關,兩人沒有串通。 下面這張圖是 MaryCalls 的候選 parent:排在它前面的有四個,但直接影響它的只有 Alarm。 ```mermaid flowchart LR B["Burglary:間接"] -.- M["MaryCalls"] E["Earthquake:間接"] -.- M J["JohnCalls:沒有串通"] -.- M A["Alarm:直接影響"] --> M ``` 所以 P(MaryCalls | JohnCalls, Alarm, Earthquake, Burglary) 可以簡化成 P(MaryCalls | Alarm),投影片 p.10 寫的就是這條式子。這段的重點是:拆成一長串條件機率之後,要靠背景知識把條件縮小,網路才會精簡。
老師原話是什麼? - 「但這個所謂的有關,並不是直接相關。」(0:30:01) - 「跟 MaryCalls 這個變數直接相關的只有 Alarm。」(0:31:17)
考試可能怎麼問:在警報器例子中,為什麼 MaryCalls 的 parent 只有 Alarm? ## [0:31:35](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1895s) 照順序建就不會有環 前面堅持要先排好 X1 到 Xn 的順序,原因在這裡:每個節點只連到比它早的節點,箭頭永遠從前指向後,所以建出來的網路一定沒有環(acyclic)。貝氏網路必須是無環的有向圖,這個建法自動保證這件事。 老師特別提醒:排順序時要考慮變數之間的因果關係,「所以這是要注意的」。為什麼?(我補充)照這個建法,數學上任何順序都不會產生環;但順序沒照因果排(例如先排結果、再排原因),每個節點就得掛很多 parent,網路變複雜、數字也更難估。下一章會用不同順序實際比較。 注意:老師口頭說隨便排順序「不見得」不會有環;投影片 p.10 寫的是這個建法保證無環(任何順序都一樣),差的順序付出的代價是網路不精簡、箭頭不符直覺。以投影片為準。
用生活例子講,為什麼照順序就不會繞圈? 像排隊傳紙條:規定只能把紙條傳給排在你前面的人。不管怎麼傳,紙條只會往隊伍前方移動,永遠不可能繞一圈回到你手上。
考試可能怎麼問:為什麼依照節點順序建構貝氏網路能保證無環?排順序時還要注意什麼? ## [0:32:55](https://www.youtube.com/watch?v=MxNi_mjW4qs&t=1975s) 沒有多餘的機率值 貝氏網路的另一個重要性質:裡面沒有重複的機率值。每個節點只在自己的 CPT 裡寫「給定 parent 的機率」,同一件事不會在兩個地方各寫一個數字。沒有重複,就沒有互相矛盾的機會。 所以知識工程師或領域專家不可能建出違反機率公理的網路:每個機率都在 0 到 1 之間、該加總為 1 的都會等於 1,也不會出現兩個條件機率加起來超過 1 這種怪事。為什麼這很重要?如果直接請專家填一整張聯合機率表,數字很多又互相牽連,很容易填出加總不等於 1 的表;貝氏網路把問題拆成各自獨立的小表,專家只要讓每張小表合理就好。
用生活例子講,為什麼不重複就不會矛盾? 像公司通訊錄:每個人的電話只登記在一個地方,就不會發生「這頁寫 A 號碼、那頁寫 B 號碼」的矛盾。如果同一個人登記在三本通訊錄,改號碼時只改一本,資料就打架了。
考試可能怎麼問:為什麼貝氏網路不會出現違反機率公理的情況? ## Self-check
Q1. Describe the steps for constructing a Bayesian network.(中文:描述建構貝氏網路的步驟。) **Answer**: First, determine the set of random variables. Second, choose an ordering X1, …, Xn. Third, for each Xi in order, choose from X1, …, Xi−1 a minimal set of parents that directly influence Xi, insert a link from each parent to Xi, and write down the CPT P(Xi | Parents(Xi)). 中文:第一步,決定問題裡有哪些隨機變數。第二步,把變數排成 X1 到 Xn 的順序。第三步,依序處理每個 Xi:從排在它前面的節點中挑出直接影響它的最少一組 parent,從每個 parent 畫箭頭指向 Xi,再寫下它的條件機率表 P(Xi | parents)。
Q2. Why does this construction method guarantee an acyclic network, and why should the ordering still follow causal relationships?(中文:為什麼這種建法保證網路無環?為什麼排順序時仍要考慮因果關係?) **Answer**: Each node is connected only to earlier nodes, so every link points forward in the ordering and no cycle can form. However, if the ordering does not follow cause-to-effect relationships, nodes need many parents, so the network becomes less compact and its probabilities are harder to specify. 中文:每個節點只會連到排在它前面的節點,箭頭永遠往順序的前方指,所以不可能繞成一個環。但如果順序沒照「原因在前、結果在後」排,很多節點會需要一堆 parent,網路變得不精簡,條件機率也更難估,所以老師特別提醒排順序時要考慮因果關係。
Q3. Why can P(MaryCalls | Burglary, Earthquake, Alarm, JohnCalls) be simplified to P(MaryCalls | Alarm)?(中文:為什麼這個條件機率可以簡化成只看 Alarm?) **Answer**: Only Alarm directly influences whether Mary calls. Burglary and Earthquake affect her only through the alarm, and John and Mary do not coordinate, so given Alarm, MaryCalls is conditionally independent of the other variables. 中文:直接影響 Mary 打不打電話的只有警報有沒有響。竊賊和地震只是透過警報間接影響她,John 和 Mary 也沒有串通,所以只要知道警報響不響,其他變數對 Mary 打不打來就沒有額外資訊,也就是條件獨立。
Q4. Explain why a Bayesian network cannot violate the axioms of probability.(中文:解釋為什麼貝氏網路不會違反機率公理。) **Answer**: A Bayesian network contains no redundant probability values: each conditional probability is specified exactly once in a node's CPT. With no redundancy there is no chance for inconsistency, so the joint distribution it defines always satisfies the axioms. 中文:貝氏網路裡沒有重複的機率值,每個條件機率只在某個節點的 CPT 裡寫一次。沒有重複就不會有兩個數字互相矛盾,所以網路定義出的聯合分布一定合法:機率都在 0 到 1 之間、總和為 1。
讀完了嗎?下一章:[07 網路的精簡性與節點順序(0:33–0:48)](https://app.notion.com/p/3ecfc631b03081a4b341d85d2cb7f773)|回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e)