본문 바로가기

데이터사이언스/머신러닝

Expactation Maximization

 
Expactation Maximization(EM)이란 latent variable(관측되지 않는 변수)가 존재하는 경우, 확률변수의 모수를 측정하는 방법이다. latent variable로 인해 Maximum likelihood estimation(MLE)을 사용하기 어려운 경우에 주로 쓰인다. 먼저 모수를 측정하는 기본적인 방법인 MLE에 대해서 알아보자. 
 

1. Maximum likelihood estimation(MLE)

  동전 던지기의 예를 들어보자. 우리의 목표는 동전 A, B에서 각각 앞면이 나올 확률 $\theta_{A}, \theta_{B}$
를 예측하는 것이다. 동전 던지기는 5개의 sequence로 이루어져 있고, 각 sequence에서는 동전을 10번씩 던진다.  i번째 sequence에 사용된 동전의 종류(A or B)를 $z_{i}$로, 나온 앞면의 수를 $x_{i}$로 나타낸다고 하자. 두 변수의 값을 알 수 있는 상황이라면 코인의 앞면이 나올 확률은 다음과 같이 추정할 수 있다.
$$\widehat{\theta} =  \frac{(해당 코인이 앞면이 나온 횟수)}{(해당 코인으로 동전을 던진 횟수)} $$
이렇게 관찰된 데이터로 모수(여기서는 $\theta$)를 추정하는 방식을 MLE라고 한다. 만약 $logP(x,z|\theta)$를 앞면이 나온 횟수 x, 동전 종류 z를 얻을 log likelihood라고 하면, 위 식을 통해 $logP(x,z|\theta)$를 최대화하는 $\widehat{\theta}$를  구할 수 있다.
 
 

2. Expactation Maximization(EM)

 이번에는 각 sequence에서 앞면이 나온 횟수 x는 알 수 있지만, 사용한 동전 종류 z는 알 수 없는 상황이다. 여기서 z처럼 값을 알 수 없는 변수를 latent variable이라고 한다. EM은 먼저 initial parameter $\widehat{\theta}^{t}$를 설정하고, 다음과 같은 과정을 반복하면서 진행된다. 1. E(Expactation) 단계에서는,  현재 시점의 파라미터  $\widehat{\theta}^{t}$를 이용해 각 sequence에서 어떤 코인이 사용되었는지 예측한다. 즉, latent variable z에 대한 예측을 진행하는 것이다. 2. M(Maximization) 단계에서는, latent variable z에 대한 예측이 참이라고 가정한다. 그리고 MLE에서와 같이 현재 변수에서 maximum likelihood를 가지는  $\widehat{\theta}^{t+1}$를 예측한다. 결과가 수렴할 때까지 위 두 과정을 반복하며 파라미터를 예측한다.
  이처럼 EM 알고리즘은 한번에 최선의 예측을 하려고 하기보다, 현재 파라미터 $\widehat{\theta}^{t}$를 이용해 변수의 확률을 추측한다. 그리고 추측한 확률을 바탕으로 새로운 파라미터 $\widehat{\theta}^{t+1}$를 구한다.
 

3. EM 알고리즘 특징

 EM 알고리즘은 데이터가 완전하지 않아 latent variable이 있는 경우에도 확률분포의 모수를 간단하게 학습할 수 있다.  이렇게 얻은 파라미터의 모수를 이용해 데이터의 특성을 파악할 수 있다. 따라서 clustering, 의료 이미지 분석 등 다양한 분야에서 사용되는 방법이다.
 
 
 
참고자료
What is the expectation maximization algorithm? 
https://personal.utdallas.edu/~prr105020/biol6385/2018/lecture/lecture_4_em_paper.pdf