기계학습 3

자바 HMM 라이브러리 소스 공개

약 2년전 HMM 라이브러리를 공개한 적이 있습니다. 2년이 지난 지금도 많은 분들이 관련 내용에 대해서 문의를 주십니다. 또한 소스 요청도 종종 받고 있습니다. 이름, 소속 및 사용 용도를 메일로 보내주신 분에 한하여 소스를 드렸습니다. 2년이라는 시간이 흘렀지만 보잘것 없는 라이브러리를 지금도 찾아주셔서 감사하기도 하고 한편으로는 저 자신에게 부끄럽기도 합니다. 용기를 내어서 소스를 공개하고자 합니다. 사용법은 소스 내에 있는 toy example을 참고하시면 될 것 같습니다. 또한 아래 페이지에서도 다운로드 가능합니다. git : https://github.com/shin285/HMM 나름대로 안정화를 많이 시켰지만 부족한 부분이 많이 있습니다. 이와 관련하여 피드백을 주시면 반영하도록 하겠습니다...

Legacy/Shineware 2014.11.13

HMM (Hidden Markov Model)

컴퓨터 전공을 공부하다보면 HMM이라는 말을 자주 접하게 된다. 특히 자연어처리, 패턴인식과 같은 분야에서는 HMM에 대해서 수백번은 들어보게 된다. HMM은 위키피디아에 보면 정리가 잘 되어있다. (위키피디아 - HMM) 물론 한글로 정리를 잘 해놓으신 분도 계신다. (난다로 님의 블로그) HMM을 언제 써야하는지 왜 써야하는지는 위에 링크들을 참조하면 큰 도움을 얻을 수 있을 것이다. 필자는 블로그에서 상세히 설명 하고자 하는 것은 아니기 때문에(물론 할 능력도 안되지만..) 단순한 예를 들어서 HMM에 대한 핵심만 정리하도록 하자. 이전 사건에서 현재 사건이 올 수 있는 확률과, 현재 사건 자체가 일어날 확률을 연속적으로 계산하면 된다. 실질적인 예를 들어보자. 공대 사람이 오늘 하루를 돌아다니다가..

상호정보량(Mutual Information)

상호정보량은 두 사건 사이가 얼마나 밀접한 관계가 있는지를 알아볼 수 있는 방법이다. 사전적인 의미로는 "사상 x의 발생을 아는 데 따라 전해지는 정보량과 다른 사상 y가 발생한다는 조건 하에서 사상 x의 발생을 아는 데 따라서 전해지는 조건 있는 정보량과의 차."( 네이버 링크 발췌 - 상호정보량 ) 말은 상당히 어렵다. 그러나 실제로는 매우 심플한 이론이다. 사건 A가 일어날 확률 : P(A)사건 B가 일어날 확률 : P(B) 이라고 할 때, 사건 A와 사건 B의 상호정보량은 아래와 같다. MI(A,B) = P(A∩B) / ( P(A)*P(B) ) 위 수식을 말로 쉽게 풀어쓴다면, 사건 A가 일어날 확률과 사건 B가 일어날 확률 중에 사건 A와 B가 동시에 일어날 확률이다. 실제 예를 들어서 설명해보..