인공지능관련/PET 프로젝트

EM 알고리즘 2

학위논문통계 2014. 6. 20. 11:44

 

 

 

앞에서 이야기했지만 EM 알고리즘은 log f(x,u)를 최대화하는 u를 구하는 것이 아니고 E[log f(v,h;u)|V)라는 복잡한 수식을 최대화하는 u를 구하는 것입니다.

 

 

그러나 생각보다는 쉬울 수가 있습니다.

 

 

먼저 기댓값 E는 선형함수라는 사실을 기억하시고요. 즉

 

 

 

E[aX+bY] = aE[X]+bE[Y]

 

라는 성질을 가지고 있습니다.

 

 

그림 f(x;u)가 e(a+b+c+d)  이런 형태라면  log f(x:u)는 a+b+c+d, 그리고 기댓값을 붙이면

 

 

 

E[log f(x;u)|v]= E[a|v]+E[b|v]+E[c|v]+E[d|v]

 

 

 

이런식으로 간략하게 분해되고 오른쪽의 분해된 항 중에서 u에 무관한 항이 있으면 M 단계, 즉 u에 관해 최대화하는 단계에서는 이런 u에 관해 무관한 항은 사실상 필요없는 항이 되어 E[log f(x;u)|v] 는 실제로는 간단한 항으로 처리될 수 있습니다.

 

 

 

 

f(x;u)가 e(a+b+c+d) 형태일 때 지수계열(exponential family) 분포라고 합니다. 기초통계학에 나오는 중요한 분포는 다 지수계열 분포입니다. 정규분포, 지수분포, 포아송 분포, 이항분포 등입니다.

 

 

 

정확한 지수계열 분포의 일반적인 식을 한번 보죠.

 

 

 

 

 

 

책마다 약간 표현 방법이 다르지만 그건 별 중요하지 않고요. 여기서는 전부 다 벡터 형태입니다. 여기서 t(x)는 모수 u에 관련된 충분통계량입니다. 여기서 log를 취하면

 

 

log f(x;u) = log b(x)-log a(u)+u't(x)

 

 

여기서 이것을 최대화하는 u를 구하려면 미분하여 0으로 놓고 방정식을 풀면 됩니다.

 

 

 

 

 

 

 

 

를 0으로 놓고 풀면 됩니다.

 

여기서

를 score라고 하는데

 

 

 

 

 라는 유명한 성질을 가지고 있습니다. (증명은 약간의 trick을 사용해야 합니다. 콜백거리가 0보다 크다는 것을 증명할 때 쓰는 trick이랑 비슷합니다)

 

 

 

이걸 이용하면 지수계열 분포의 최대가능성추정량(MLE)는 다음과 같은 성질이 있습니다.

 

 

 

 

 

즉 지수계열 분포는 바로 이 공식을 이용하여 u에 관해서 풀면 미분해서 구하고 하는 과정 없이 바로  MLE가 나옵니다.

 

 

 

그럼 EM 알고리즘의 경우는 어떻게 될까요?

 

 

 

X=(H, V) 결합 확률변수로 보죠. 책에는 complete data라고 하죠. 그럼 M 과정에서

 

 

 

 

 

 

를 u에 관해서 풀면 다음 단계의 u의 값이 나옵니다. 여기서 u*는 이전 단계에서 u의 추측값이고요. 위의 그냥 MLE 경우 공식과 상당히 비슷하죠.

 

 

 

그래서 지수계열 분포의 경우 위 공식을 풀어서 프로그램 짜면 끝난다는 것이죠. 다시 E 단계를 걸쳐서 또 최대화하고 또 E 단계로 가고 또 최대화하고 이렇게 하지 않는다는 것입니다.