Featured image of post 貝氏定理:條件機率、醫療檢測範例與AI的四種應用

貝氏定理:條件機率、醫療檢測範例與AI的四種應用

了解正規化、敏感度與陽性預測值,以及MAP和後驗預測的差異。整理樸素貝氏、網路、最佳化與深度學習的應用及前提。

1. 在不確定的世界中更新預測

明天會不會下雨、新藥是否有效、郵件是不是垃圾郵件:我們依據不完整的資訊做判斷。貝氏定理連結了給定證據後的條件機率與反向條件機率。 指定模型與先驗資訊後,就能用新的觀測更新機率。

這個定理以18世紀的牧師兼數學家湯瑪斯·貝葉斯命名。理查德·普萊斯介紹貝葉斯遺稿的書信記載,該文於1763年12月23日在英國皇家學會宣讀。現代貝氏推論也包含後來許多研究者的發展。以下依序討論公式、檢測範例、四種AI應用,以及不同的機率解釋。

2. 公式與正規化的作用

對滿足 \(P(B)>0\) 的事件B,條件機率的定義給出

\[ P(A\mid B)=\frac{P(A\cap B)}{P(B)} \]

如果也滿足 \(P(A)>0\),使反向條件機率有定義,分解聯合機率便得到

\[ P(A\mid B)=\frac{P(B\mid A)P(A)}{P(B)} \]

將B視為新證據時,各項扮演以下角色。

  • 先驗機率 \(P(A)\):考慮B之前,A的機率。
  • 概似(likelihood) \(P(B\mid A)\):假設A成立時,觀測到B的機率。
  • 證據機率/邊際概似 \(P(B)\):觀測到B的整體機率。
  • 後驗機率 \(P(A\mid B)\):考慮B之後,A的機率。

先驗乘以概似只是分子。還要除以證據機率進行正規化,才能得到後驗機率。 即使A的機率為0,只要B的機率為正,第一個使用聯合機率的公式仍然成立。反向條件機率未定義時,不要直接代入第二個公式。

3. 概似、MAP與後驗預測並不相同

令未知參數為θ,觀測資料為d。利用概似更新先驗密度時,可寫成

\[ \pi(\theta\mid d)=\frac{L(\theta;d)\pi(\theta)}{Z(d)},\qquad Z(d)=\int L(t;d)\pi(t)\,dt \]

這裡假設 \(0<Z(d)<\infty\)。概似L是固定觀測d、讓θ變動的函數,不是關於θ的機率分布。連續資料使用的是機率密度,密度值可以超過1。觀測點本身的機率為0,不代表無法利用密度更新。

如果後驗密度存在最大點,**最大後驗估計(MAP)**會選取這樣的點:

\[ \hat\theta_{\mathrm{MAP}}\in\arg\max_\theta\pi(\theta\mid d) \]

相較之下,下一次二元觀測的後驗預測,是依後驗分布對各參數下的預測取平均:

\[ \Pr(Y_{\mathrm{new}}=1\mid d)=\int\Pr(Y_{\mathrm{new}}=1\mid\theta,d)\pi(\theta\mid d)\,d\theta \]

例如,對硬幣的正面機率θ指定0到1之間的均勻先驗。給定θ後,各次投擲互相獨立,並依序觀測到1,1,0,其中1代表正面。此時

\[ \pi(\theta\mid 1,1,0)=12\theta^2(1-\theta),\qquad 0<\theta<1 \]

因此

\[ \hat\theta_{\mathrm{MAP}}=\frac23,\qquad\Pr(Y_{\mathrm{new}}=1\mid1,1,0)=\frac35 \]

代入眾數與對分布取平均,答案可以不同。選擇分類類別、對參數進行MAP估計、預測未來觀測,不能全都稱為「最大化後驗機率」。

4. 假想醫療檢測:敏感度99%,陽性預測值約16.7%

以下是用於計算的假想範例,並非真實檢測的實測效能。D代表具有目標疾病,T代表檢測陽性。假設目標族群的盛行率為1%、敏感度為99%、偽陽性率為5%。

\[ P(D)=0.01,\qquad P(T\mid D)=0.99,\qquad P(T\mid D^c)=0.05 \]

D的補事件是「沒有目標疾病」,並不是各方面都健康。將有病與無病兩種情形下的陽性機率相加,可得

\[ P(T)=P(T\mid D)P(D)+P(T\mid D^c)P(D^c)=0.99\cdot0.01+0.05\cdot0.99=0.0594 \]

因此,陽性時具有目標疾病的機率是

\[ P(D\mid T)=\frac{0.0099}{0.0594}=\frac{99}{594}=\frac16\approx0.1667 \]

結果約16.7%,精確值為1/6。陽性者中其餘的5/6、約83.3%,是沒有目標疾病的偽陽性。當盛行率低時,沒有目標疾病的人很多,從中產生的偽陽性可能超過真陽性。

為了用人數呈現比例,可以建構一個恰好滿足上述比例的虛擬萬人族群,得到下表。實際抽樣一萬人時,各項人數會有變動。

檢測結果有目標疾病無目標疾病合計
陽性99(真陽性)495(偽陽性)594
陰性1(偽陰性)9,405(真陰性)9,406
合計1009,90010,000
  flowchart TD
    Population["虛擬族群:10,000人"] --> Disease["有目標疾病:100人"]
    Population --> NoDisease["無目標疾病:9,900人"]
    Disease --> TP["真陽性:99人(有病者的99%)"]
    Disease --> FN["偽陰性:1人(有病者的1%)"]
    NoDisease --> FP["偽陽性:495人(無目標疾病者的5%)"]
    NoDisease --> TN["真陰性:9,405人(無目標疾病者的95%)"]
    TP -.-> AllPositive["陽性總人數:594人"]
    FP -.-> AllPositive
    AllPositive --> PPV["陽性預測值:99/594 = 1/6 ≈ 16.7%"]

敏感度99%不等於陽性預測值99%,也不等於整體正確率99%。 這張表的整體正確率為

\[ \frac{99+9405}{10000}=0.9504=95.04\% \]

敏感度、特異度與陽性預測值的定義使用不同的分母。「99%表示陽性者幾乎確定有病」的直覺,混淆了比例所針對的族群。要應用於真實結果,還需要適合該目標族群的盛行率與檢測特性。

5. AI應用一:樸素貝氏分類器

垃圾郵件偵測可以利用詞語是否出現等特徵X,求類別C的後驗機率。樸素貝氏的基本假設是給定類別後的條件獨立,而非詞語無條件獨立。特徵達三個以上時,即使在每個類別內兩兩獨立,也不保證聯合獨立。

對離散特徵,若觀測x的邊際機率與各類別的先驗機率為正,且每個類別內的所有特徵聯合獨立,則

\[ \Pr(C=c\mid X=x)\propto\Pr(C=c)\prod_{j=1}^{m}\Pr(X_j=x_j\mid C=c) \]

若各種誤分類的代價相同,可選擇後驗機率最大的類別。這個分類決策與模型參數本身的MAP估計不同。

真實詞語有關聯,獨立性是一種近似。簡單、計算快是優點,但不保證分類表現或機率校準總是較好。scikit-learn官方說明也區分了分類表現與機率估計品質。以詞語是否出現為特徵的伯努利型,與使用詞頻計數的多項型等變體,具體生成模型也不同。

6. AI應用二:貝氏網路

貝氏網路利用有向無環圖(DAG)與各節點的局部條件分布,表示聯合分布。在有限離散模型中,以pa代表父節點的取值,可作因子分解:

\[ \Pr(V_1=v_1,\ldots,V_n=v_n)=\prod_{i=1}^{n}\Pr(V_i=v_i\mid\mathrm{pa}_i) \]

用DAG表示機率分布也指定了相應的條件獨立假設。

下圖是連結年齡、生活習慣、遺傳因素、疾病、症狀與檢測結果的假想模型。它假設三個沒有父節點的因素互相獨立。實線定義局部分布的父子關係,不表示現實中的因果關係已獲驗證。要從統計相依模型提出因果主張,還需要額外的因果假設(參見Pearl的區分)。

  flowchart LR
    subgraph Model["假想機率模型"]
        Age["年齡"] --> Disease["目標疾病"]
        Lifestyle["生活習慣"] --> Disease
        Genes["遺傳因素"] --> Disease
        Disease --> SymptomA["症狀A"]
        Disease --> SymptomB["症狀B"]
        Disease --> TestResult["檢測結果"]
    end
    TestResult -.->|"使用觀測"| Inference["推論操作:計算後驗分布"]

虛線指向的是推論操作的註記,不是聯合分布中的額外隨機變數。利用觀測計算疾病等變數的後驗邊際分布,也不同於重新學習模型的全部參數。這類模型可作為診斷、狀態估計與金融預測等問題的框架,但各用途中的有效性取決於結構與資料。

7. AI應用三:貝氏最佳化

調整學習率、網路深度等超參數,可能需要反覆訓練與評估。參數設定不必由人手動選擇,也可以自動搜尋。

貝氏最佳化使用高斯過程等機率代理模型,描述設定與效能的關係,並納入評估結果更新。透過期望改善等**獲取函數(acquisition function)**選擇下一個候選點:既要利用有希望的區域,也要探索尚不確定的區域。Snoek等人的研究討論機器學習演算法的調校。

目標是有效分配昂貴的評估資源,但並不保證對任何目標函數、預算與雜訊情況,都能以最少的嘗試找到最佳解。

8. AI應用四:貝氏深度學習

一般的類神經網路也能透過softmax等方式輸出類別機率。使用固定權重計算,與輸出機率分布並不衝突。

一種貝氏處理方式是對連續權重w指定先驗密度,再依訓練資料d求後驗密度。在通常的條件獨立模型下,離散類別y的後驗預測機率為

\[ \Pr(y\mid x,d)=\int\Pr(y\mid x,w)\pi(w\mid d)\,dw \]

Blundell等人的原論文利用變分分布,近似實際規模網路中難以精確計算的推論。預測可以反映權重的不確定性,但也依賴先驗、概似與近似方法的選擇。

只輸出「某類別的機率為90%」,並未表達關於模型的全部不確定性。「貝氏」這個名稱本身,也不保證醫療AI等應用的預測機率已妥善校準。探討資料分布改變下不確定性的研究也提醒我們,評估時要納入訓練資料與使用階段資料之間的差異。

9. 比較頻率學派與貝氏推論

兩者都使用機率論,貝氏定理本身是共同的數學工具。在統計推論中,頻率學派將未知參數視為固定值,重視估計或檢定程序在重複抽樣下的性質。貝氏推論以先驗分布表達對未知量的不確定性,觀測後使用後驗分布。指定分布不代表物理參數會在每次觀測後改變。

對獨立同分布的公平硬幣投擲,以1表示正面、0表示反面,大數法則給出極限

\[ \frac1n\sum_{i=1}^{n}X_i\xrightarrow{\mathrm{a.s.}}\frac12 \]

它不保證有限次投擲中,正面次數一定恰好占一半。

貝氏先驗可以反映專業知識,也可以選擇弱資訊先驗等。將所有先驗視為任意偏好,或認為指定先驗就自動具有客觀性,都不恰當。明天下雨機率70%,可理解為依模型與資訊產生的機率預測,並評估其校準程度。僅憑這個數字,無法判斷採用哪個統計學派,也不能斷定它就是某位預報人員個人的確信程度。

10. 更新證據,也檢查前提

貝氏更新依機率規則結合先驗資訊與證據。逐次更新時,以上一次的後驗作為下一次的先驗,並使用新資料的條件概似。不要把已使用的觀測,再當成獨立的新證據重複相乘。

公式本身無法修復錯誤模型或有偏資料。檢查觀測了什麼、假設了哪個族群與分布,也是重新學習、修正理解的一部分。兩個信封悖論同樣說明,條件機率必須從明確的模型計算。

comments powered by Disqus