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))

NoYes초기 모수 θ 설정E 단계: 기댓값 계산M 단계: 모수 최대화수렴 여부 확인최종 모수 추정값 반환

가우시안 혼합 모델에서는 이렇게 돈다

가우시안 혼합 모델(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 단계를 수렴할 때까지 반복한다.

NoYes원본 데이터EM 초기화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 같은 기준을 쓴다.

EM 알고리즘가우시안 혼합 모델잠재 변수최대가능도 추정클러스터링