확률

ML & MAP

고요한하늘... 2014. 8. 5. 13:27

이것은 bayes의 정리이다.

여기서 

P(h|D) = 사후확률(posteior)로써 우리가 얻고자 하는 값이고

P(h)    = 사전 확률(prior),

P(D|h) = Likelihood 로써 사후확률을 구하기 위한 확률값으로 생각하면 된다.

즉 사전 확률에 Likelihood를 곱하면 사후 확률을 얻을수 있다. ( P(D)는 가설에 상관없이 모두 동일한 조건이므로 생략해도 상관없다 )


간단한 예를 살펴보자

이메일이 한통 왔다.

이메일을 살펴보니 '김팀장'이라는 단어가 눈에 띄었다.


이때 우리가 알고 싶은 것은 '김팀장'이라는 단어가 출현했을때 해당 이메일이 스팸메일일지 아닌지를 알고 싶다고 할때

두가지 방법으로 계산할수 있다.


1. Maximum Likelihood( 이하 ML )를 사용하면

....

뭔말인지 쉽게 풀어설명하면

최대라는 것은 Likelihood가 여러개라는 것이다. 왜 여러개가 나오나면

위에서 가설( h ) 이라는게 존재하는데 이 예제에서는 '햄'과 '스팸' 두가지 가설이 존재한다.( class라고 부를수도 있다 )

각 가설마다 likelihood가 존재하게 되는데( likelihood는  조건부확률로 계산할 수 있다)

그중 최대를 Maximum likelihood라고 한다.

''''

다시 본론으로 들어가서 

P( 김팀장 | 스팸 )의 확률과 P( 김팀장 | 햄 )의 확률을 비교하여 큰쪽을 선택하면 되고


2. Maximum a Posterior( 이하 MAP ) 를 사용하면

'김팀장'이 주어진 상태의 조건부확률 즉

P( 스팸 | 김팀장 )과 P( 햄 | 김팀장 )의 확률을 계산하여 큰쪽을 선택한다.


전체 문서중에 스팸 문서의 비율과 햄문서의 비율을 알고 있다고 할때는

P( 스팸 )과 P( 햄 )을 구할 수 있다 .

그럴 경우에는 ML 보다는 문서비율구성을 고려한 MAP를 사용하는 것이 보다 합리적인 선택일 것이다.


아래 전개된 식을 간단히 보면 


ML   : P( 김팀장 | 스팸 ) 

MAP : P( 스팸 | 김팀장 ) = { P( 김팀장 | 스팸 ) * P( 스팸 ) } / P( 김팀장 )


두개 모두 P( 김팀장 | 스팸 )을 사용하지만

MAP의 경우는 P( 스팸 )이라는 추가정보를 사용한다.

다시말하면 ML에서  P(스팸) == P( 햄 )라고 가정하게 되면 MAP과 같아진다.