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

EM의 예, 결측값의 경우

학위논문통계 2014. 6. 29. 00:32

 

 

 

 

 

 

지난번에 지수계열 분포인 경우 EM 알고리즘이 생각보다 쉽게 풀어진다고 이야기 했습니다.

 

 

 

이번에는 실제 EM 알고리즘을 쓸 필요가 없는데도 불구하고 EM알고리즘을 설명하기 위해 일부러 쓴 예를 소개하겠습니다. 그래서 지수계열 분포인 경우 어떻게 EM 알고리즘이 작동하는지 한번 보죠. 지난번에 일반적으로 MLE는

 

 

 

 

EM의 경우

 

 

 

 

그래서 두 식을 합쳐 뭉쳐 다음과 같이 생각할 수 있습니다.

 

 

 

 

 

여기서 관찰변수, 은닉변수를 구체적으로 적으면 즉 X=(V, H)로 표시하면 위 식은

 

 

 

 

 

가 됩니다. 그럼 이 식이 뭘 의미하는가?

 

 

1. log 가능함수를 풀어 충분 통계량을 구한다.

 

 

2. 충분통계량의 기댓값을 주어진 모수 u의 추측값과, 관찰변수의 조건하에서 구한다.

 

 

3. 일반적인 최대 가능추정량을 X=(V,H) 상태에서 충분통계량의 함수형태로 구한다.

 

 

4. 3에서 구한 공식안에 있는 충분통계량 부분에 2에서 구한 값을 대입한다.

 

 

 

이 과정을 상세히 예를 들어 살펴보죠.

 

 

간단한 결측값(missing value)가 있는 경우입니다. 사람의 키 데이터입니다. 키는 정규분포를 한다는 가정을 하고요.

 

 

변수

V1

170

V2

160

V3

180

H1

.(결측값)

 

 

 

네 사람의 키에 대한 조사인데 한 사람이 응답을 안해 정확한 값을 알 수 없습니다. 그래서 결측값이고 은닉변수입니다.

 

 

 

결측값이 없다면 모수인 사람의 평균키는 (V1+V2+V3)/3으로 u의 추정값은 170이 됩니다. 이게 최고가능 추정값MLE가 되고요. 그러나 결측값도 고려하면 u의 추정은

 

u=(V1+V2+V3+H1)/4=(170+160+180+?)/4

 

로 결측값이 있어 구할 수가 없습니다. 그러나 앞부분에서 일반적인 MLE 공식은 구할 수는 있지요. 그리고 u에 대한 충분통계량은 (V1+V2+V3+H1)입니다. 이게 지수계열 분포에서 MLE 구하는 앞의 공식에서 바로 도출됩니다.

 

 

 

 

즉 u=t(v,h)/4=(v1+v2+v3+H1)/4로 표시 됩니다. 그럼 여기서 충분통계량 t(v,h) 대신

 

 

 

 

를 구해 t(v,h) 대신 집어 넣자는 것이죠. 그럼 현재 u에 대한 추측값 u*에서 다음 추측값 u는

 

 

 

 

가 된다는 것이죠.

 

 

옛날에는 직관적으로 이런 경우 다음과 같은 방법을 썼습니다. 먼저 결측값에 대해 적당한 추측값을 집어 넣습니다. 예를 들어 u1=165로 하죠. 그럼 X=(170, 160, 180, 165)가 되죠 그럼 그 다음 단계에서 여기서 다시 평균의 추정값을 구하는 것이죠. 그럼 u2는

 

 

u2=(170+160+180+165)/4

 

가 된다는 것이죠. 다음 단계의 u 추측값 u3은

 

u3=(170+160+180+u2)/4 가 됩니다.

 

이런 식으로 u의 추측값이 일정정도 수럼할 때까지 합니다. 이게 옛날 직관적으로 하던 방법입니다. 그럼 u의 추정값은 어디로 수렴할 까요. 초기에 결측값이 없다고 생각하고 V1, V2, V3의 평균값인 170을 넣으면 아무리 다음 단계를 해도 더 이상 u의 추측값은 170에서 변하지 않습니다. 즉 결측값이 있던 없던 u의 대한 추정량은 세 개의 관찰된 키의 값의 표본평균인 170입니다, 구태여 EM 알고리즘을 적용할 필요가 없습니다. 그럼 EM 알고리즘을 한번 적용해 볼까요.

 

 

u=t(v,h)/4 의 공식에 있는 충분통계량 (V1+V2+V3+H1) 대신

 

 

 

 

이걸로 대체해야 한다고 했습니다. 그럼 이 값부터 구해야 하겠죠.

 

 

 

 

 

가 됩니다. 여기서 v1+v2+v3가 기댓값 밖으로 바로 빠져 나오는 이유는 이 변수는 관찰 변수로 이미 관찰되었기 때문에 숫자에 불과합니다. 즉 일반적인 변수로 썼기 때문에 마치 모르는 값으로 보이지 실제로는 v1=170, v2=160, v3=180입니다. 그리고 은닉변수 H1는 V1, V2, V3와 독립적인 변수이기 때문에 이것은 기댓값은 그냥 모수 u입니다. 즉 여기서는 모수의 추측값 u*입니다.

 

 

 

그래서 u=(v1+v2+v3+h1)/4에서 분자인 충분 통계량인 (v1+v2+v3+h1) 대신 위에 구한 u의 추측값과 v1, v2, v3의 정보하에서 x=(V,H)의 기댓값인 v1+v2+v3+u* 값을 대신 집어 넣으면 됩니다. 그럼 결국 다음 모수 u에 대한 추측값은 결측값에 u의 추측값이 u*를 집어 넣고 표본의 평균값을 구한 것에 불과합니다.

 

 

 

그래서 앞에서 한 옛날 결측값이 있는 경우 결측값에 u의 추측값을 넣은 다음 다시 평균을 구한 것을 다음 u의 추측값으로 구한 것과 똑같은 과정을 밟고 있는 것입니다.

 

 

 

 

조금 구체적인 식 전개는 다음에 간단히 적겠습니다. 여기서는 지수계열 분포의 경우 구체적으로 어떻게 적용하는지 큰 그림만 이해하시면 되겠습니다.

 

 

 

처음에 쿨백거리 등 거창하게 이야기를 했는데 더 이상 언급을 하지 않는 이유는 처음부터 너무 이론적으로 나가면 흥미를 잃어 버리고 헤매기 쉽습니다. 꼭 필요한 부분만 이론을 간단히 이야기하고 예를 들어 설명하되 큰 길을 잃지 않도록 노력하겠습니다. 어느 정도 감이 잡히면 당연히 쿨백거리를 이용해 EM알고리즘이 나온 이유를 설명하겠습니다.

'인공지능관련 > PET 프로젝트' 카테고리의 다른 글

인공지능, EM 알고리즘, MIxture Model, Pet  (0) 2021.09.10
MLE 실제 구해보기  (0) 2016.04.02
EM 알고리즘 2  (0) 2014.06.20
EM 알고리즘 1  (0) 2014.06.18
여행하는 세일즈 문제 1  (0) 2013.07.14