선배개발자이야기

제 경험에 비추어본 인식 알고리즘 학습 방법

예쁜꽃이피었으면 2014. 12. 24. 15:25

http://cafe.naver.com/opencv/1578

티구티구님이 PCA, LDA 부터 ICA, SVM, HMM, EM, AdaBoost를 방학동안 떼고 싶다고 하시는데.. 조금 건드려봤던 사람으로서 의견을 적어봅니다.

 

먼저 PCA는, 이해는 나중이고 일단 operation을 외워야 합니다.. 공분산행렬을 구하고.. eigen decomposition을 하는..

SVD와의 연관성이나 차원축소에 관한 advanced한 주제가 있지만 그건 나중에 생각해볼 바고..

사실 PCA는 그 의미를 생각해보고 하려면 정말 끝이 없다고 봅니다. 여러관점에서 바라볼 수 있고 또 고려사항들이 다양하니까요..

하지만 그런 사색에 들인 시간과 노력은 결국 보상으로 돌아오는게 PCA라고 봅니다.

 

LDA는... 오히려 어렵지 않습니다. Duda & Hart에서 잘 나와있고요.. 실제 적용시에는 Nearest neighborhood 방법과 결합되어야 합니다..

 

ICA는 결코.. 결코.. 이것만도 한 학기에 마치기 힘든 주제가 아닐까 합니다. ICA는 원래 PCA와 같은 단일한 방법이 아니고, 하나의 목적아래에서 나온 경쟁관계에 있는 여러 알고리즘의 통칭입니다. 그 각각이 바라보는 관점이 완전히 다르고 그 중 어느 하나를 택해도 원활한 이해를 위해 선행적으로 알아야 할 사항의 양과 깊이가 만만치않아서, 좌절감을 느끼고 싶지 않다면 섣불리 덤비지는 마시기 바랍니다.

 

SVM은 최종적인 작동만 본다면 어렵지는 않습니다. 대부분의 SVM에 대한 설명이 말하듯 실체는 그 최적화 알고리즘에 있죠. 티구티구님이 배우셨던 교수님으로 보이는 변혜란 교수님이 잘 아시는 분야로 아는데 사실 SVM을 설명하는데 꼭 빠지지 않는 카루시 쿤 터커 증명이 꼭 중요한지 저는 의문입니다..

 

HMM은, 알고리즘 자체가 무지하게 헷갈려 자꾸 까먹게되기는 해도 그리 어렵지는 않습니다. 그런데 문제는.. 앞서의 알고리즘들과는 달리 실제 적용시의 자잘한 문제들의 처리가 무지하게 요구된다는겁니다. 그래서 HMM은 정말 이것만 실제 응용사례들을 가지고 파거나 아니면 (모두가 보는) Rabiner의 논문을 한번 보고 이해했다고 하거나 둘중 하나를 선택해야지 싶습니다. 그리고 HMM을 실제 적용하는데의 전문가들은 음성인식쪽에 있으므로 그쪽 연구를 살펴보는게 필수입니다.

 

EM은.. 학교때 세미나 준비를 했던 친구가 "쉽다"고 했던건데 저는 아직도 모르고 있습니다. 썬샤인님의 강의를 열심히 공부해보려 합니다. ^^

 

AdaBoost는 집중해서 보면 반나절거리입니다...

 

결국 어려운 순으로 보자면, 알고리즘 자체의 이해는 AdaBoost < PCA < LDA < SVM << HMM << ICA 이고

실제 적용시의 현실적인 문제까지 따진다면 HMM과 ICA 둘이 확 어려운 놈들이라고 할 수 있겠습니다..

 

그리고.. 위의 내용들은 지금도 싸이트가 살아있는지는 모르겠는데 포항공대 최승진 교수님의 강의노트가 best가 아닐까 합니다.. 문제까지 같이 공개하고 계시니 자습에도 도움되겠죠.

 

 

PS. 그런데 결국 티구티구님처럼 pervasive computing쪽으로 하시려는 분들은 위 알고리즘들을 아주 깊이있게 알 필요는 없을 겁니다. 님과 같은 분들의 접근방법을 취하는데가 MIT 미디어랩일텐데 그쪽 출신의 연구자로 지금 MS에 있는 Sumit Basu가 눈에 띄더군요.. Technical report도 잘 쓰는 사람이니 그의 홈페이지를 찾아 catch-up해보시는게 도움이 될 듯 합니다.

반응형