這是一個機率推論系統,根據觀察到的輸入(症狀、臨床徵象、血液報告及其他檢驗結果),計算兩個關鍵輸出:每種可能疾病發生的機率,以及器官功能障礙的機率。該引擎結合疾病盛行率的先驗機率、每種症狀在特定疾病下的可能性(似然度),以及病患實際回報的症狀,運用貝氏定理進行運算。透過此計算,它產生疾病的事後機率分佈,以及獨立的器官功能障礙機率估計,為臨床決策提供量化基礎。
貝氏定理的核心在於一個簡單的直覺:當你看到新證據時,你對某個假說的信念應當改變。
我們從 先驗機率 開始 – 即疾病在相關族群中的普遍程度。接著我們觀察症狀;每種疾病都有已知的 似然度(例如:「如果病患得了流感,有 90% 的機率會發燒」)。引擎將先驗機率乘以所有報告症狀的似然度,然後 正規化 使總機率為 100%。結果即為 事後機率 – 也就是看到證據後更新的信念。
為使此方法實用,引擎採用了 「樸素」假設:症狀在給定疾病下是條件獨立的。這大幅簡化了計算(從聯合機率變成個別似然度的乘積)。雖然此假設很少完全成立,但樸素貝氏在醫療分診中表現良好。然而,將許多很小的機率相乘可能導致數值下溢 – 這就是為什麼我們使用對數‑求和‑指數技巧(第 3 節)。
症狀之間更複雜的相依性(超越樸素假設)可以透過 因子圖與置信傳播 來處理 – 這是一個仍能進行高效機率推論的通用框架。我們接下來將探討此方法。
因子圖將機率模型拆解為 變數節點(疾病或症狀)和 因子節點(變數之間的關係)。邊只連接變數與因子,這推廣了樸素貝氏模型,並實現了高效的計算。

圖:雙向訊息流 – D ⇄ F ⇄ S。置信傳播 沿著每一條邊發送訊息 – 可以把它們想像成攜帶機率資訊的便條。每個節點將當前的信念傳遞給鄰居,並接收更新後的信念。例如,觀察到的症狀值會流回疾病(向前推送證據),而疾病的預測則向前流向症狀(向後拉動預測)。
在較大的網路中,節點會反覆交換訊息,直到所有節點對一致的機率達成共識 – 即 收斂。每個疾病節點的最終信念即為診斷答案。如果圖形中含有循環,循環置信傳播 仍然有效,只需多進行幾輪即可。
總結:置信傳播將靜態因子圖轉化為雙向對話,在不必從頭重新計算的情況下,高效地達成一致。
將許多機率相乘很快就會導致下溢 – 電腦會將極小的數字四捨五入為零。為避免此問題,我們改用 對數空間 運算,因為乘法變成加法。但之後我們需要對機率求和,這在對數空間中較為棘手。
對數‑求和‑指數技巧 解決了這個問題:從所有項中減去最大的對數值,指數化,安全地求和,取對數,然後再加回最大的值。最大的指數項會恰好等於 1,因此不會出現極大或極小的數值。
應用此技巧後,診斷引擎可以處理數百個輸入特徵(症狀、臨床徵象、血液報告),而不會出現數值錯誤 – 實現 數值上可靠 的推論。
總結:此技巧讓我們能停留在對數空間以防止下溢,同時仍能正確地對機率求和 – 既安全又穩定。