본문 바로가기

컴퓨터이야기

EM 알고리즘

기댓값 최대화 알고리즘(expectation-maximization algorithm, 약자 EM 알고리즘)은 관측되지 않는 잠재변수에 의존하는 확률 모델에서 

최대가능도(maximum likelihood)나 최대사후확률(maximum a posteriori, 약자 MAP)을 갖는 매개변수를 찾는 반복적인 알고리즘이다. 


EM 알고리즘은 매개변수에 관한 추정값으로 로그가능도(log likelihood)의 기댓값을 계산하는 기댓값 (E) 단계와 

이 기댓값을 최대화하는 변수값을 구하는 최대화 (M) 단계를 번갈아가면서 적용한다. 

최대화 단계에서 계산한 변수값은 다음 기댓값 단계의 추정값으로 쓰인다.


최대가능도는 관측되지 않은 모든 변수 각각에 대하여 로그가능도를 미분한 식을 풀어서 구할 수 있다. 

하지만 잠재변수를 포함하는 통계 모델의 수식들은 매우 복잡하여 이와 같은 방법으로는 풀 수 없다. 각각의 변수에 관해 미분한 식은 서로 얽혀있어 한 수식의 해를 구하기 위해서는 다른 식의 해를 구해야 하는데, 이 수식의 해 또한 이전 식의 변수를 포함하기 때문이다. 따라서 이 경우 정확한 해를 계산하는 것은 불가능하다.

하지만 EM알고리즘을 이용하면 이 문제의 해를 수치적으로 계산할 수 있다. 우선 서로 얽혀있는 두 식과 각각의 변수들을 가정해보자. 두 식은 얽혀있기 때문에 한 식의 변수는 다른 식의 변수일 수 있다. 첫번째 식의 변수값을 임의로 잡은 후 이 변수값으로 두번째 식의 변수값을 추정한다. 그렇게 구한 변수값으로 다시 첫번째 식의 변수값을 추정하고 이를 반복한다. 특정한 상황에서 충분히 많은 반복을 거치면 각각의 변수들이 일정한 값으로 수렴한다는 것을 보일 수 있다. 



관측할 수 있는 확률변수 와 관측할 수 없는 확률변수 , 그리고 매개변수 가 있을 때, 에 대한 확률분포는 로 주어져 있다. 이 때 최대가능도를 계산하고 싶은 경우, 최대화하려는 가능도 함수는 로 정의할 수 있다.

이 수식의 계산비용은 잠재변수 가 취할 수 있는 값의 수에 비례하고, 의 차원이 증가할수록 취할 수 있는 값의 수는 지수적으로 증가하기 때문에 이 수식을 계산하기는 매우 어렵다.

EM알고리즘은 다음 두 단계를 반복하여 가능도 함수 의 최대가능도를 구한다.

기댓값 (E) 단계에서는 가 주어지고 새로운 를 사용할 때 가능도의 기댓값 를 정의한다. 이 때 기댓값을 취하는 확률분포는 가 주어졌을 때 의 조건부 분포이다.

최대화 (M) 단계에서는 를 최대화하는 새로운 매개변수 를 계산한다.


매개변수 가 주어졌을 때, 잠재변수 에 관한 가능도 함수를 최대화함으로써 의 값을 어렵지 않게 추정할 수 있고, 반대로 잠재변수 의 값이 주어졌을 때, 매개변수에 관한 가능도 함수를 최대화함으로써 매개변수 의 값을 추정할 수 있다. 매개변수와 잠재변수 중 하나의 값을 알면 다른 값도 쉽게 알 수 있다는 것이 EM 알고리즘의 핵심이다. 


다음은 EM알고리즘을 간략히 요약한 것이다.

  1. 매개변수 를 임의의 값으로 설정한다.
  2. 주어진 매개변수 값에 관한 잠재변수 값을 추정한다.
  3. 2단계에서 얻은 잠재변수 값을 이용해 매개변수 값을 다시 추정한다.
  4. 매개변수 값과 잠재변수 값이 수렴할 때까지 2, 3단계를 반복한다.


'컴퓨터이야기' 카테고리의 다른 글

Ipython.display.Image class  (0) 2017.03.10
No Free Lunch Theorems  (0) 2017.03.09
[펌] 가우시안 분포  (0) 2017.03.03
딥러닝의 세계에 푹 빠지다  (0) 2017.01.13
[펌]그리스문자 읽기  (0) 2016.12.14