---
title: "期望最大化算法（Expectation Maximization）"
slug: expectation-maximization
language: zh-TW
source: https://aiterms.tw/terms/expectation-maximization
updated_at: 2026-04-29
tags: [統計方法, 機器學習, 模型訓練, 最佳化, 資料處理, 數學基礎, iPAS中級]
ipas_term: false
---

# 期望最大化算法（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 常常只保證局部收斂，所以初始值和模型假設很重要。

### 常見問題
> **Q：EM 算法如何判斷收斂？**
> 通常看對數似然是否變化很小，或參數更新幅度是否已經趨近穩定。
>
> **Q：EM 算法在處理高維數據時會遇到什麼問題？**
> 計算量會上升，估計也容易不穩，常需要降維、初始化策略或更簡化的模型。
>
> **Q：EM 算法和變分推斷有什麼區別？**
> EM 比較像用點估計去交替更新隱變量和參數，變分推斷則是用一個近似分布去逼近後驗，處理方式更彈性。

### 相關術語
> - **最大似然估計**：讀完這個再看 EM，可以知道它在優化什麼
> - **非監督式學習**：很多 EM 的經典應用都在這裡
> - **潛在空間**：EM 常在含有隱變量的表示空間裡工作
> - **變分自編碼器**：讀完這個再看它，可以看懂更現代的隱變量模型
> - **K 均值分群**：讀完這個再看它，可以分辨簡化版和一般版的差別

---

來源：https://aiterms.tw/terms/expectation-maximization
快查頁：https://aiterms.tw/terms/expectation-maximization
最後更新：2026/04/29
深度解說：https://aiterms.tw/learning/what-is-expectation-maximization