EM 알고리즘 — 잠재 변수가 있는 모델에서 최대가능도를 구하는 법
관측되지 않은 잠재 변수가 있는 확률 모델에서 EM 알고리즘이 E 단계와 M 단계를 반복해 모수를 추정하는 원리와 GMM 적용, 실무 활용 분야를 정리한다.
2026-08-13 · 최초 발행 2025-05-23
확률 모델에 관측되지 않은 잠재 변수(latent variable)가 섞여 있으면, 로그가능도를 직접 미분해 닫힌 해를 구하는 방법이 통하지 않는 경우가 많다. EM(Expectation Maximization) 알고리즘은 이 문제를 관측 데이터와 잠재 변수를 함께 고려하는 반복적 접근으로 우회한다 — 잠재 변수에 대한 기댓값을 계산하는 E 단계와, 그 기댓값을 최대화하는 M 단계를 번갈아 수행하며 모수 추정값을 개선해 나간다.
E 단계와 M 단계가 번갈아 도는 구조
EM은 두 단계를 수렴하거나 정해진 최대 반복 횟수에 도달할 때까지 반복한다.
E(Expectation) 단계는 현재 모수 추정값을 조건으로 관측된 데이터를 두고, 잠재 변수에 대한 확률 분포를 추정해 로그가능도의 기댓값을 계산한다. M(Maximization) 단계는 E 단계에서 계산된 기댓값을 최대화하는 새로운 모수 추정값을 구하고, 이 값은 다음 E 단계의 입력으로 쓰인다.
수식으로는 다음과 같이 쓴다.
E 단계: Q(θ|θ^(t)) = E_Z|X,θ^(t)[log P(X,Z|θ)]
여기서 θ는 모델 매개변수, θ^(t)는 t번째 반복에서의 매개변수 추정값, X는 관측 데이터, Z는 잠재 변수다.
M 단계: θ^(t+1) = argmax_θ Q(θ|θ^(t))
가우시안 혼합 모델에서는 이렇게 돈다
가우시안 혼합 모델(GMM)은 EM 알고리즘의 가장 대표적인 응용 사례다. 여러 가우시안 분포의 혼합으로 복잡한 데이터 분포를 모델링한다.
먼저 K개 가우시안 컴포넌트의 초기 평균(μ_k), 공분산(Σ_k), 혼합 계수(π_k)를 설정한다. E 단계에서는 각 데이터 포인트가 각 가우시안 컴포넌트에 속할 책임(responsibility)을 계산한다.
γ(z_ik) = π_k * N(x_i|μ_k,Σ_k) / Σ_j π_j * N(x_i|μ_j,Σ_j)
M 단계에서는 이 책임 값을 사용해 새로운 매개변수를 추정한다.
μ_k^new = Σ_i γ(z_ik) * x_i / Σ_i γ(z_ik)
Σ_k^new = Σ_i γ(z_ik) * (x_i - μ_k^new)(x_i - μ_k^new)^T / Σ_i γ(z_ik)
π_k^new = Σ_i γ(z_ik) / N
이 E 단계와 M 단계를 수렴할 때까지 반복한다.
이미지 분할부터 추천 시스템까지, 쓰이는 곳
이미지 분할(image segmentation)에서는 픽셀을 여러 세그먼트로 그룹화하는 과정에서 EM을 활용한다. 각 세그먼트는 특정 분포의 매개변수로 모델링된다. 유전체학(genomics)에서는 DNA 서열 분석과 유전자 발현 데이터 클러스터링에 쓰여 특정 패턴이나 구조를 식별한다.
컴퓨터 비전에서는 객체 인식·추적, 배경과 전경 분리(background/foreground segmentation)에 활용된다. 자연어 처리에서는 토픽 모델링(예: Latent Dirichlet Allocation)에서 단어의 잠재적 토픽 분포를 추정하는 데 쓰인다. 추천 시스템에서는 사용자 행동을 클러스터링하고 잠재적 사용자 선호도를 모델링하는 데 활용된다.
왜 쓰는가, 그리고 어디서 걸리는가
EM은 다양한 확률 모델에 적용할 수 있고 구현이 상대적으로 간단하며 직관적이다. 올바르게 구현하면 각 반복마다 로그 가능도가 증가함을 보장하고, 잠재 변수나 결측 데이터가 있는 상황에서 특히 효과적이다.
반면 초기값에 따라 전역 최적해가 아닌 지역 최적해(local optima)에 수렴할 수 있고, 완전히 수렴하기까지 많은 반복이 필요할 때가 있다. 사용된 확률 모델의 가정이 데이터에 적합해야 하며, 고차원 데이터에서는 계산 복잡성이 늘어난다(차원의 저주).
변형과 확장
- Stochastic EM: 대규모 데이터셋에서 효율성을 높이기 위해 미니배치 접근법을 사용한다
- Variational EM: 복잡한 모델에서 근사적 추론 방법을 적용한다
- Generalized EM: M 단계에서 완전한 최대화 대신 개선만 추구한다
- Online EM: 스트리밍 데이터에 적용할 수 있는 온라인 버전이다
- Monte Carlo EM: 샘플링 방법을 통해 복잡한 기댓값을 계산한다
구현할 때 챙길 것들
초기값 설정은 무작위, k-means 결과 등 다양한 초기화 전략을 시도해볼 만하다. 수렴 기준은 로그 가능도 변화량, 매개변수 변화량 등을 적절히 설정해야 한다. 과적합을 막기 위한 정규화(regularization) 기법을 적용하고, 고차원 데이터라면 처리 전 차원 축소를 고려한다. 데이터에 적합한 컴포넌트 수를 정하는 모델 선택 단계에서는 BIC·AIC 같은 기준을 쓴다.