CHOU

[Pattern Recognition] EM-Algorithm 문제 풀어보기 본문

Japan/From Kyushu

[Pattern Recognition] EM-Algorithm 문제 풀어보기

chobabo 2009. 6. 22. 20:51

 얼마전에 수업시간에 배운 EM-Algorithm 에 관한 내용과 레포트로 제출한 문제에 대해 다시한번 생각해 보겠습니다. 예전 학교에서는 주로 알고리즘을 배우면 프로그래밍화 시켜서 실제 검출시 얼마나 적중이 잘되는지를 확인을 주로 했는데.. 일본은 주로 수학식을 풀어오라는 레포트가 많아서 최근에 수학을 무지하고 있습니다^^.

 EM-Algorithm 은 어렵다면 어렵고 쉽다면 쉬운 알고리즘 인데.. 뭐 어느정도 이해를 했다는 가정하에 문제를 풀어보겠습니다.





문제는 간단하게 분산 행렬을 이하와 같이 설정했을 때 EM-algorithm을 적용하여 문제를 풀어보는 것 입니다. 이때 N은 학적번호 뒷자리입니다. 


초기치와 사용 공식은 아래와 같습니다.














1. 우선 문제를 풀기위해 분산행렬을 계산해주고, 가우스 분포식에 대입해 줍니다.






2. 계산으로 유도된 식을 바탕으로 첫번째 EM 을 동작합니다.






전자계산기나 프로그램을 제작해서 exp를 계산해주면 되는데, 첫번째 계산 된 결과를 바탕으로 새로운 값을 설정해 줍니다.








2. 목표치 쪽으로 향하지 않기 때문에 한번더 새로운 값을 이용해서 EM 을 계산해 줍니다.








 값이 점점 멀어지는걸 알수 있는데.. 이를 통해.. 알고리즘 계산치를 잘 설정해야 하는구나를 알 수 있습니다^^. 다른 선배들 레포트 한걸 보니까 6정도 집어 넣으면 목표치로 수렴하는걸로 알고 있는데 뭐 더적은수도 가능할 수 있습니다.^^


 풀이를 보다 보면 뜬금없는 공식이 나오는데 아래에 문서를 참고해 주시면 금방 이해하실 수 있습니다. 다음에는 AdaBoost 알고리즘에 대해 공부하고 문제를 풀어보겠습니다. AdaBoost 알고리즘은 최근에 대세로 떠오른 알고리즘인데.. MS 모션 캡쳐기도 이 알고리즘을 사용하지 않았을까 추측해 봅니다. 워낙 회전 인식에 강하다 보니까.. 아무튼.. 8월에 시험이 끝나면 로봇 업데이트 할때 이 알고리즘도 써볼 생각입니다^^.

 패턴인식을 전공하는게 아니라서 지식이 많이 빈약하지만.. 그래도 어렵지만 재미있는 과목인거 같습니다 ㅋㅋㅋ.




Reference

1. http://cafe.naver.com/opencv/1716 



2. Lecture(Em Algorithm)