期望最大化算法 是什麼?

Expectation Maximization — 期望最大化算法 的完整解釋

期望最大化 (EM) 算法是一種迭代算法,用於在存在隱變量的情況下,估計機率模型的參數。它交替執行期望 (E) 步驟和最大化 (M) 步驟。

容易混淆

EM vs 梯度下降 梯度下降是沿著損失函數直接往下走,EM 是先估隱變量,再更新參數。

EM vs K-means K-means 看起來像簡化版 EM,都是先分配、再更新,但 EM 能處理更一般的機率模型。

E 步 vs M 步 E 步是在估計隱變量的分布,M 步是在固定這個估計後更新參數。

最關鍵的區別: EM 不是一次算到底,而是先猜隱藏資訊,再拿猜測結果去修正模型。

記住這句就好

先補看不見的部分,再更新模型。

實際案例

案例一:混合高斯分群 你不知道每筆資料屬於哪一群,EM 會先估每群的機率,再更新每群的平均和變異數,反覆做下去。

案例二:缺標籤資料的語意分析 當資料沒有明確標籤時,EM 可以幫忙在隱含類別和模型參數之間來回修正,讓結果逐漸穩定。

算法與應用

EM 通常用在含有 latent variables 的機率模型,例如 Gaussian Mixture Model。E 步計算每個樣本屬於各個隱藏狀態的機率,M 步在這些機率基礎上更新參數。它的優點是把難解問題拆成兩個比較好處理的子問題,缺點是可能收斂到局部最佳,對初始值也很敏感。

情境判斷

Q1(直覺題): 你現在不知道每筆資料真正屬於哪一群,但想把群組和參數一起估出來,這時候可以想到什麼方法?

→ 可以想到 EM,因為它就是拿來處理隱變量和參數交替估計的。

Q2(判斷題): 如果你把 EM 跟一般凸優化問題混在一起看,哪裡容易出錯?

→ 容易誤以為它一定找到全域最佳,但 EM 常常只保證局部收斂,所以初始值和模型假設很重要。

相關術語

常見問題

EM 算法如何判斷收斂?

通常看對數似然是否變化很小,或參數更新幅度是否已經趨近穩定。

EM 算法在處理高維數據時會遇到什麼問題?

計算量會上升,估計也容易不穩,常需要降維、初始化策略或更簡化的模型。

EM 算法和變分推斷有什麼區別?

EM 比較像用點估計去交替更新隱變量和參數,變分推斷則是用一個近似分布去逼近後驗,處理方式更彈性。