直覺解析 (Intuition)
想像你有一大袋混合的 M&M 巧克力,但這袋巧克力實際上是由兩袋不同的小包裝混合而成的。A 袋裡大多是藍色的 M&M(高頻率),而 B 袋裡的藍色 M&M 很少(低頻率)。如果你只是隨機抓幾把出來,你會發現藍色 M&M 的數量各不相同。你想要分別知道 A 袋和 B 袋裡藍色 M&M 的「出現率」,但你不知道你抓出來的這一把是來自哪一袋!
這正是 期望最大化演算法 (Expectation-Maximization Algorithm, EM) 試圖解決的問題。在城市裡有轟炸數據,但我們不知道哪些區域是目標(高頻繁被炸)以及哪些區域不是(低頻繁被炸)。我們想要在不知道哪個區域是哪個的情況下,找出這兩種情況各自的轟炸率。
1. E 步 (E-Step):軟猜測 (Soft Guessing)
EM 演算法沒有強制做出「硬性決定」(Hard decision)(例如:「區域 1 肯定是目標」),而是做出 軟猜測 (Soft guess)(例如:「我 80% 確定區域 1 是目標,而有 20% 確定它只是遭受波及」)。
我們使用貝氏定理 (Bayes' Theorem) 來計算這些機率。 這一項(被稱為責任值 Responsibility)只是在回答:「給定這裡落下的炸彈數量,以及我目前對目標/非目標轟炸率的猜測,這個區域屬於群組 的可能性有多大?」
2. M 步 (M-Step):加權平均 (Weighted Averages)
一旦我們對每個區域有了「軟猜測」,我們就需要更新我們對實際擊中率()的估計。
如果我們確切地知道哪些區域是目標,我們只需計算目標區域的平均炸彈數(這就是第 2.1 題中的最大概似估計 MLE)。但因為我們只有軟猜測,所以我們計算的是 加權平均 (Weighted average)。
如果區域 1 有 5 顆炸彈,而我們有 80% 的把握它是目標區域,那麼我們將 顆炸彈放入目標組的「桶子」,並將 顆炸彈放入非目標組的「桶子」。我們將所有區域加總,然後除以分配給該組的「總權重」(百分比總和)。
類比:「軟分群」(Soft Clustering) 概念
graph TD;
Data["觀測資料 (Data)"] -->|E 步:你屬於 A 或 B 的比例為何?| SoftA("群組 A (80%)")
Data -->|E 步:你屬於 A 或 B 的比例為何?| SoftB("群組 B (20%)")
SoftA -->|M 步:更新群組 A 平均值| MeanA["A 的新機率 (Rate)"]
SoftB -->|M 步:更新群組 B 平均值| MeanB["B 的新機率 (Rate)"]
MeanA -.->|反覆跌代 (Iteration)| Data
MeanB -.->|反覆跌代 (Iteration)| Data
我們在 E 步和 M 步之間循環,直到數字不再顯著變化為止。這證明我們已經對目標與非目標的機率得出了一個穩定、合理且合乎邏輯的結論。