[人工智慧導論](https://app.notion.com/p/3e6fc631b0308131b213f0a3d93fe91d) › [W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e) › 03|Ch12 Part 3(2021 錄影)影片 [0:00:00–0:18:47](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=0s)|投影片 Ch12 p.40–47|上一章 [02 用聯合分布推論與獨立性(0:15–0:41)](https://app.notion.com/p/3ecfc631b03081bdb8b1e658c224b992)|下一章 [04 條件獨立與單純貝氏模型(0:18–0:31)](https://app.notion.com/p/3ecfc631b03081afb7ecc5dcaf0d4ce8) 跳過提示:(0:06:55–0:07:55) 老師把腦膜炎的數字寫成機率式再代入計算,聽不懂可以直接跳到 [0:07:55](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=475s),接著講「為什麼 0.0014 這麼出乎意料」。 ## 重點 - 貝氏定理(Bayes' rule)讓我們用「由因推果」的機率,反過來算「由果推因」的機率。老師說它是現代 AI 做機率推論最重要的一個式子。 - 腦膜炎例子:腦膜炎病人七成會頸椎僵硬,但一個頸椎僵硬的人有腦膜炎的機率只有 0.0014,因為腦膜炎本來就非常少見(事前機率很小)。 - 醫生靠經驗記住的「診斷機率」很脆弱:疾病大流行時就失準;用貝氏定理的人可以換上新的事前機率,馬上算出新的答案。 ## Exam-ready - **Bayes' rule, P(b|a) = P(a|b) P(b) / P(a)**: "This simple equation underlies most modern AI systems for probabilistic inference."(Ch12 p.40)【老師強調】(0:01:12) - 中文:把乘法規則的兩種寫法相等、同除 P(a) 得到的這條簡單式子,是大多數現代 AI 系統做機率推論的基礎。白話:AI 會「算機率下判斷」,靠的就是這一條。難字:underlie(是…的基礎)、probabilistic inference(機率推論)。 - **Why Bayes' rule is useful**: "Bayes' rule is useful in practice because there are many cases where we do have good probability estimates for these three numbers and need to compute the fourth."(Ch12 p.42) - 中文:實務上我們常常手上有右邊三個數字(P(a|b)、P(b)、P(a))的可靠估計,卻需要第四個數字 P(b|a),貝氏定理剛好補上。白話:知道三個好拿的數,就能算出那個難拿的數。難字:in practice(實務上)、estimate(估計值)。 - **Causal vs. diagnostic direction, P(cause|effect) = P(effect|cause) P(cause) / P(effect)**: "The conditional probability P(effect | cause) quantifies the relationship in the causal direction, whereas P(cause | effect) describes the diagnostic direction."(Ch12 p.43) - 中文:P(結果|原因) 描述因果方向(知道病,推症狀);P(原因|結果) 描述診斷方向(看到症狀,推病)。白話:醫生看診要的是後者,資料比較容易拿到前者,貝氏定理把前者換成後者。難字:quantify(量化)、causal(因果的)、diagnostic(診斷的)。 - **Medical diagnosis**: "In a task such as medical diagnosis, we often have conditional probabilities on causal relationships (that is, the doctor knows P(symptoms | disease)) and want to derive a diagnosis, P(disease | symptoms)."(Ch12 p.43) - 中文:在醫療診斷這類工作裡,我們手上常有因果方向的機率(醫生知道「有這個病會出現什麼症狀」),但想得到的是診斷(「有這些症狀,是這個病的機率」)。白話:手上有的跟想要的剛好方向相反。難字:derive(推導出)、symptom(症狀)、disease(疾病)。 - **Prior probability, P(m|s) = 0.7 × 1/50000 / 0.01 = 0.0014**: "This is because the prior probability of stiff necks is much higher than that of meningitis."(Ch12 p.44) - 中文:腦膜炎病人七成會頸椎僵硬,頸椎僵硬的人有腦膜炎的機率卻只有 0.0014,原因是頸椎僵硬本來就比腦膜炎常見得多。白話:大部分頸椎僵硬的人是別的原因。難字:prior probability(事前機率)、stiff neck(頸椎僵硬)、meningitis(腦膜炎)。 - **Normalization, P(M|s) = α ⟨P(s|m)P(m), P(s|¬m)P(¬m)⟩**: "One can avoid assessing the prior probability of the evidence (here, P(s)) by instead computing a posterior probability for each value of the query variable (here, m and ¬m) and then normalizing the results."(Ch12 p.45) - 中文:可以不去估證據本身的事前機率 P(s),改成把查詢變數的每一個值(有病 m、沒病 ¬m)都算出事後機率,再正規化。白話:分母不用算,最後讓兩個數加起來等於 1 就好。難字:assess(評估)、query variable(查詢變數,要問的那個變數)、normalize(正規化)。 - **No free lunch**: "There is no free lunch—sometimes this is easier, sometimes it is harder."(Ch12 p.45) - 中文:不算 P(s) 的代價是要改估 P(s|¬m);這樣比較容易還是比較難,要看情況。白話:省一個數字,就要多拿另一個數字。難字:no free lunch(天下沒有白吃的午餐)。 - **Diagnostic knowledge is fragile**: "Unfortunately, diagnostic knowledge is often more fragile (脆弱) than causal knowledge."(Ch12 p.46)【老師強調】(0:17:19) - 中文:可惜的是,診斷方向的知識常常比因果方向的知識脆弱。白話:靠經驗記住的「頸椎僵硬的人多少是腦膜炎」,遇到大流行就不準了。難字:fragile(脆弱的)、diagnostic knowledge(診斷知識)。 - **Causal knowledge is stable**: "Most important, the causal information P(s | m) is unaffected by the epidemic, because it simply reflects the way meningitis works."(Ch12 p.47) - 中文:最重要的是,因果資訊 P(s|m) 不受大流行影響,因為它只反映腦膜炎這個病本身怎麼運作。白話:病的症狀不會因為流行就改變,所以換上新的 P(m) 重算就好。難字:unaffected(不受影響的)、epidemic(大流行)。 ## [0:00:01](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=1s) 從 product rule 推出貝氏定理 老師一開始就說,貝氏定理是做機率推論最重要的原則和工具。它不是新的公式,而是從上週學過的 product rule(乘法規則:兩件事同時發生的機率=一件事的機率×另一件事在它發生下的機率)直接推出來的。 product rule 有兩種寫法,左邊都是「a 和 b 同時發生」,所以兩種寫法的右邊一定相等;兩邊同除 P(a),就得到貝氏定理。為什麼要這樣繞?因為它讓我們能把條件機率的方向倒過來,這一點下一段開始說明。 考試可能怎麼問:Derive Bayes' rule from the product rule in words.(中文:用文字說明怎麼從乘法規則推出貝氏定理。)
用生活例子講,貝氏定理在做什麼? 像偵探辦案。偵探知道「如果是小偷,現場會有腳印」的機率很高,但他要回答的是「看到腳印,是小偷的機率多高」。貝氏定理就是把前一句換成後一句的工具,還會考慮小偷本來有多常見。
它到底怎麼運作?(進階,可跳過) - product rule 寫法一:P(a ∧ b) = P(a|b) P(b) - product rule 寫法二:P(a ∧ b) = P(b|a) P(a) - 左邊相同,所以右邊相等:P(b|a) P(a) = P(a|b) P(b) - 兩邊同除 P(a):P(b|a) = P(a|b) P(b) / P(a) 用文字說步驟:寫出兩種乘法規則 → 讓兩個右邊相等 → 同除 P(a)。
老師原話是什麼? - 「Bayes' rule 是在做機率推論裡面最重要的一項原則跟工具。」(0:00:01) - 「這個式子大家不要小看它,它可以說是讓現代的 AI 系統,讓它有機率推論的最重要的一個式子。」(0:01:12)
## [0:01:45](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=105s) 推廣到隨機變數與其他證據 同一條式子不只能用在單一事件,也能寫成隨機變數(random variable,可以有好幾種值的變數,例如「天氣」可以是晴、雨、陰)的形式,一次處理所有值。 如果手上還有其他已知的證據 e,也可以把 e 一起放進每一個條件裡,式子的形狀不變。所以對你的影響是:之後遇到多個證據的推論,用的還是同一條貝氏定理。 考試可能怎麼問:How does Bayes' rule change when we condition on background evidence e?(中文:多了背景證據 e 時,貝氏定理要怎麼改?)
它到底怎麼運作?(進階,可跳過) - 隨機變數版:P(Y|X) = P(X|Y) P(Y) / P(X),代表 X、Y 每一組值都成立一條式子。 - 加入背景證據 e:P(Y|X, e) = P(X|Y, e) P(Y|e) / P(X|e)(Ch12 p.41 的式子)。
## [0:02:07](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=127s) 為什麼有用:因果方向與診斷方向 表面上貝氏定理只是把機率「換來換去」,好像沒什麼用。但實務上,我們常常拿得到 P(結果|原因),卻很難直接估 P(原因|結果)。 由病因推症狀叫因果方向(causal direction),這可以靠大量研究統計出來;由症狀推病因叫診斷方向(diagnostic direction),這正是醫生看新病人時要回答的問題。老師舉牙痛為例:看到的結果是牙痛,可能的原因有好幾個,我們想知道每個原因的機率,但這很難直接算;用貝氏定理改寫成 P(effect|cause) P(cause) / P(effect),右邊三個數反而好取得。為什麼因果方向比較好拿?因為研究者可以先找到確定有這種病的人,再看他們有什麼症狀。 下面這張圖把兩個方向畫在一起:左邊是我們手上有的,右邊是我們想要的。 ```mermaid flowchart LR A["原因:腦膜炎"] -- "因果方向 P(症狀|病):研究統計得到,好取得" --> B["結果:頸椎僵硬"] B -. "診斷方向 P(病|症狀):看診時想知道,難直接估" .-> A ``` 看圖的重點:實線是資料給的方向,虛線是我們想問的方向,貝氏定理負責把實線換成虛線。 考試可能怎麼問:Explain the causal and diagnostic directions and why Bayes' rule is useful in practice.(中文:說明因果方向和診斷方向,以及貝氏定理為什麼實務上有用。)
用生活例子講,因果方向和診斷方向差在哪? 像汽車故障。修車廠很清楚「電瓶沒電的車,九成發不動」(因果方向)。但你早上車子發不動,想知道「是電瓶的機率多高」(診斷方向),還得考慮電瓶沒電本來有多常見、其他故障有多常見。
## [0:05:53](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=353s) 腦膜炎例子:算出 0.0014 醫生知道三件事:腦膜炎病人有 70% 會頸椎僵硬;這個地區得腦膜炎的機率是五萬分之一;這個地區頸椎僵硬的機率是 1%。後兩個是不看任何條件的機率,叫 unconditional(無條件)機率,可以從一般統計拿到。 現在一個病人說他頸椎僵硬,問他有腦膜炎的機率。代入貝氏定理,答案只有 0.0014,也就是大約七百個頸椎僵硬的人裡才有一個是腦膜炎。 考試可能怎麼問:What does the meningitis example show about Bayes' rule?(中文:腦膜炎例子說明了貝氏定理的什麼?)
它到底怎麼運作?(進階,可跳過) 令 s=頸椎僵硬,m=有腦膜炎。 - P(s|m) = 0.7 - P(m) = 1/50000 = 0.00002 - P(s) = 0.01 - P(m|s) = P(s|m) P(m) / P(s) = 0.7 × 0.00002 / 0.01 = 0.0014 這組數字下面兩段會繼續沿用。
## [0:08:32](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=512s) 為什麼結果這麼小:事前機率 聽到「腦膜炎病人七成會頸椎僵硬」,直覺會覺得頸椎僵硬就很可能是腦膜炎。但算出來只有 0.0014,跟直覺差很多。 原因是事前機率(prior probability,還沒看到任何症狀之前的機率):頸椎僵硬比腦膜炎常見太多了。分子是 0.7 乘上一個極小的 P(m),變得很小;分母 P(s) 相對大,一除就更小。下面用「十萬人」把同一件事換成人數來看(我補充): | 這個地區十萬人裡 | 人數 | |---|---| | 有腦膜炎的人(五萬分之一) | 2 人 | | 有腦膜炎而且頸椎僵硬(2 人的 70%) | 1.4 人 | | 所有頸椎僵硬的人(1%) | 1,000 人 | | 頸椎僵硬的人裡真的是腦膜炎 | 1.4 ÷ 1,000 = 0.0014 | 看表的重點:頸椎僵硬的一千人裡,絕大多數是其他原因造成的,腦膜炎只占一點點。 考試可能怎麼問:Why is P(meningitis | stiff neck) small even though P(stiff neck | meningitis) is 0.7?(中文:腦膜炎造成頸椎僵硬的機率有 0.7,為什麼頸椎僵硬的人有腦膜炎的機率還是很小?)
用生活例子講,為什麼直覺會錯? 「中頭獎的人幾乎都有買彩券」是真的,但「有買彩券的人幾乎都會中頭獎」完全不對。買彩券的人太多、中獎的人太少,就像頸椎僵硬的人太多、腦膜炎的人太少。
## [0:10:18](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=618s) 不算 P(s):用正規化 其實可以完全不估分母 P(s)。做法是上一章用過的正規化(normalization,把幾個數按比例縮放,讓它們加起來等於 1):只算分子,把「有腦膜炎」和「沒腦膜炎」兩種情況都算出來,再正規化。 代價是要多估一個數字:沒腦膜炎的人頸椎僵硬的機率 P(s|¬m)。老師說這是 no free lunch(天下沒有白吃的午餐),P(s) 和 P(s|¬m) 哪個比較好取得,要看臨床統計的狀況。 下面這張圖是正規化的步驟: ```mermaid flowchart LR A["有腦膜炎:P(s|m) × P(m)"] --> C["兩個分子相加"] B["沒腦膜炎:P(s|¬m) × P(¬m)"] --> C C --> D["各自除以總和"] D --> E["得到 P(m|s) 和 P(¬m|s),加起來等於 1"] ``` 看圖的重點:兩條分支都只用到分子,分母是最後相加自己冒出來的。 考試可能怎麼問:How can normalization avoid computing P(evidence), and what is the trade-off?(中文:正規化怎麼避開算證據的機率?代價是什麼?)
它到底怎麼運作?(進階,可跳過) 老師沒有給 P(s|¬m) 的數字。這裡用前一段的數字反推,讓結果能對得起來(我補充): - P(s|¬m) ≈ (0.01 − 0.000014) / 0.99998 ≈ 0.009986 - 有腦膜炎的分子:0.7 × 0.00002 = 0.000014 - 沒腦膜炎的分子:0.009986 × 0.99998 ≈ 0.009986 - 總和 ≈ 0.01(剛好就是 P(s)) - 正規化:P(m|s) = 0.000014 / 0.01 = 0.0014,跟上一段一樣。
## [0:12:31](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=751s) 為什麼不直接統計診斷方向 一個自然的疑問:既然拿得到 P(s|m),為什麼不直接統計 P(m|s),何必用貝氏定理繞一圈? 老師承認這是可能的。一個看過大量頸椎僵硬病人、也都追蹤到確診結果的資深醫生,心裡可能就有一個數字,例如「五千個頸椎僵硬的人裡有一個是腦膜炎」。這種情況下,他確實不需要貝氏定理。 注意:這個「五千分之一」是老師假設的資深醫生經驗數字,跟前面用貝氏定理算出的 0.0014(約七百分之一)是不同來源,不要混在一起。 考試可能怎麼問:Why might a doctor have the conditional probability in one direction but not the other?(中文:為什麼醫生可能只有某一個方向的條件機率?)
用生活例子講,經驗數字是什麼? 像老店家憑感覺知道「下雨天客人大概少三成」。他不用分析天氣和客群,經驗直接給答案。問題是這個感覺是在過去的條件下養成的。
## [0:15:11](https://www.youtube.com/watch?v=bJM9vgr6iy4&t=911s) 診斷知識很脆弱:大流行時要更新 老師說診斷知識有點脆弱,因為它靠個人經驗,而不是累積的因果事實。假設某地突然腦膜炎大流行(老師提到台南以前的登革熱疫情做類比),P(m) 升高,資深醫生還能說「頸椎僵硬的人只有五千分之一是腦膜炎」嗎?不行,他的經驗不再可靠,而且不知道該怎麼調整。 用貝氏定理的醫生則可以把新的 P(m) 放進去,算出更準確的 P(m|s);投影片說 P(m|s) 會跟著 P(m) 等比例上升。為什麼可以?投影片的理由是:因果資訊 P(s|m)(腦膜炎病人七成會頸椎僵硬)只反映這個病怎麼運作,不受大流行影響;會變的只有腦膜炎有多常見。老師延伸到人生:時代在變、有新資訊進來,只靠幾十年的老經驗做事,結果可能就不好。 ```mermaid flowchart TD A["腦膜炎大流行:P(m) 升高"] --> B["資深醫生:仍用舊經驗五千分之一"] A --> C["貝氏醫生:換上新的 P(m)"] B --> D["不知道怎麼調整,答案失準"] C --> E["P(s|m) 不變,重算得到新的 P(m|s)"] ``` 看圖的重點:同一個新消息,記答案的人卡住,記算法的人可以更新。 考試可能怎麼問:Why is diagnostic knowledge more fragile than causal knowledge?(中文:為什麼診斷知識比因果知識脆弱?)
它到底怎麼運作?(進階,可跳過) 老師沒有給大流行時的數字,以下假設 P(m) 從五萬分之一升到五百分之一(我補充),P(s|m)、P(s|¬m) 不變,用正規化算: - 有腦膜炎的分子:0.7 × 0.002 = 0.0014 - 沒腦膜炎的分子:0.009986 × 0.998 ≈ 0.009966 - 總和 ≈ 0.011366 - P(m|s) ≈ 0.0014 / 0.011366 ≈ 0.12 從 0.0014 跳到約 0.12。資深醫生若還用五千分之一,就差了幾百倍。 投影片說 P(m|s) 會「跟著 P(m) 等比例上升」:若 P(s) 先當作不變,P(m) 變 100 倍,0.7 × 0.002 / 0.01 = 0.14 也剛好變 100 倍。上面用正規化算出 0.12 略小,是因為大流行時頸椎僵硬的人也變多、P(s) 跟著小幅升高(我補充)。
老師原話是什麼? - 「這個診斷的知識是有一點脆弱的。」(0:15:11) - 「相反的如果他用的是貝氏定理,在這裡的話,他有辦法納入新的 probability M,來估算出更為準確的 probability M given S。」(0:16:37) - 「所以我要講的點就這個。」(0:17:19)
## Self-check
Q1. Why is Bayes' rule useful in practice, even though it only rearranges the product rule?(中文:貝氏定理只是把乘法規則重新排列,為什麼實務上有用?) **Answer**: Because we often have good estimates of P(effect|cause), P(cause), and P(effect), but cannot directly estimate P(cause|effect). Bayes' rule turns the easy-to-get causal probabilities into the diagnostic probability we actually need. 中文:實務上我們常常有「由因推果」的機率、原因本身的機率、結果本身的機率這三個好取得的數字,卻很難直接估「由果推因」的機率。貝氏定理把好拿的因果方向機率,換成我們真正需要的診斷方向機率。
Q2. In the meningitis example, P(stiff neck | meningitis) is high, yet P(meningitis | stiff neck) is very small. Explain why.(中文:腦膜炎例子裡,腦膜炎造成頸椎僵硬的機率很高,但頸椎僵硬的人有腦膜炎的機率卻很小,為什麼?) **Answer**: Because the prior probability of meningitis is tiny, while the prior probability of a stiff neck is much higher. Most people with a stiff neck have it for other reasons, so the posterior probability (the probability after seeing the evidence) of meningitis stays small. 中文:因為腦膜炎的事前機率非常小,而頸椎僵硬的事前機率高得多。大部分頸椎僵硬的人是其他原因造成的,所以看到頸椎僵硬之後,有腦膜炎的機率還是很小。答題時要點出「事前機率」這個關鍵;posterior probability 是事後機率,也就是看到證據之後的機率。
Q3. Why is diagnostic knowledge more fragile than causal knowledge? Use a meningitis epidemic as an example.(中文:為什麼診斷知識比因果知識脆弱?用腦膜炎大流行舉例。) **Answer**: A doctor who only remembers P(meningitis | stiff neck) from experience has no idea how to update it when an epidemic raises P(meningitis). P(stiff neck | meningitis) describes the disease itself and stays the same, so a doctor using Bayes' rule can plug in the new prior and get a more accurate P(meningitis | stiff neck). 中文:只靠經驗記住「頸椎僵硬的人有多少是腦膜炎」的醫生,在大流行讓腦膜炎機率升高時,不知道怎麼調整這個數字。「腦膜炎造成頸椎僵硬的機率」是疾病本身的性質,大流行時不變,所以用貝氏定理的醫生只要換上新的事前機率,就能算出更準的診斷機率。
Q4. How can we compute P(meningitis | stiff neck) without knowing P(stiff neck), and what is the cost?(中文:不知道頸椎僵硬的機率時,怎麼算頸椎僵硬的人有腦膜炎的機率?代價是什麼?) **Answer**: Compute only the numerators for both cases, P(s|m)P(m) and P(s|¬m)P(¬m), then normalize so they sum to 1. The cost is that we must estimate P(s|¬m) instead; there is no free lunch, and which number is easier to obtain depends on the situation. 中文:只算「有腦膜炎」和「沒腦膜炎」兩種情況的分子,再正規化讓兩者加起來等於 1。代價是要改成估「沒腦膜炎的人頸椎僵硬的機率」;天下沒有白吃的午餐,哪個數字比較好取得要看情況。
讀完了嗎?下一章:[04 條件獨立與單純貝氏模型(0:18–0:31)](https://app.notion.com/p/3ecfc631b03081afb7ecc5dcaf0d4ce8)|回到週頁:[W4(10/1)](https://app.notion.com/p/3ecfc631b03081e895d2c5f3aec0353e)