머신러닝

최대우도법(Maximum Likelihood)

적외선 2019. 3. 6. 14:56

정의

어떤 확률변수에서 표집한 값들을 토대로 그 확률변수의 모수를 구하는 방법.

즉, 어떤 모수가 주어졌을 때, 원하는 값들이 나올 가능도를 최대로 만드는 모수를 선택하는 방법.

방법

어떤 모수  θ 로 결정되는 확률변수들의 모임  Dθ=(X1,X2,,Xn) 이 있고,  Dθ 의 확률밀도함수나 확률질량함수가  f 이고, 그 확률변수들에서 각각 값  x1,x2,,xn 을 얻었을 경우의 가능도  L(θ) 는 다음과 같다.

L(θ)=fθ(x1,x2,,xn)

여기서 가능도를 최대로 만드는  θ 는 다음과 같다.

θ^=argmaxθL(θ)

이 때  X1,X2,,Xn 이 모두 독립적이고 같은 확률분포를 가지고 있다면  L 은 다음과 같이 표현이 가능하다.

L(θ)=i=1nfθ(xi)

또한, 로그함수는 단조 증가하므로,  L 에 로그를 씌운 값의 최대값은 원래 값  θ^ 와 같고, 이 경우 계산이 비교적 간단해진다.

L(θ) =log(L(θ)) = i=1nlogfθ(xi)

L(θ)=i=1nfθ(xi)

=fθ(x1)fθ(x2)fθ(x3)

log(L(θ)) =log(i=1nfθ(xi))

=logfθ(x1)+logfθ(x2)+logfθ(x3)+

예시 (모비율 추정)

대한민국의 모든 인구 중 한명을 표본으로 추출하는데 추출된 사람이 남자인지 여자인지를 알려고 한다고 하면, 이 때 표본 랜덤변수가 갖는 확률분포는 베르누이 분포를 따를 것이다. 베르누이 분포는 다음과 같다.

1회 시행 시 두 가지 결과에 의해 그 값이 각각 0 또는 1로 결정되는 확률변수 X 에 대해서

f(x)=px(1p)(1x)

그러면 총  n 명에 대해 추출했을 때의 우도(likelihood)는 다음과 같이 정해진다.

L(X1=x1, X2=x2, , Xn=xn | p)=i=1npxi(1p)1xi (a)

즉, 위 식은 다음과 같이 설명할 수 있다. 가령 10명의 사람을 추출했는데 1번부터 10번 사람까지의 성별이 각각 {남, 여, 남, 남, 여, 여, 남, 남, 여, 남} 이라고 해보자.

남자라면  Xi=0 이라고 하고 여자라면 Xi=1 이라고 결정한다고 했을 때, 현 상태에서  xi(i=1,2,,10) 은

{0, 1, 0, 0, 1, 1, 0, 0, 1, 0} 이라고 할 수 있다. 그러면 식 (a) 는 다음과 같을 것이다.

L(X1=0, X2=1, , X10=0 | p)=i=110pxi(1p)1xi

하지만 여전히  p (표본이 여성일 확률)를 알 수 없기 때문에 확률  f 를 최대화 할 수 있는 모수  p 를 찾도록 최대우도법을 시행한다.

식  (a) 에서 함수  f 를  p 에 대해 편미분 하려면 쉽지 않다. 여기서 로그 함수의 단조증가 성질을 활용하여  L=log(L) 라는 보조 방정식을 도입하도록 한다. 그러면  L 은 다음과 같다.


L=log(L) = i=1nlog(pxi(1p)(1xi))=i=1n{xilog(p)+(1xi)log(1p)}


L 의  p 에 대한 편미분이 0이 되는  p 를 찾으면 최대우도를 만족하는 모수  p 를 추정할 수 있다.

L=i=1nxipi=1n(1xi)1p

=nX¯pn(1X¯)p=0

=nX¯p=n(1X¯)p

=(1p)X¯=(1X¯)p

=X¯pX¯=pX¯p

=p=X¯

따라서,  p=X¯ 로 모수  p 를 추정하는 것이 적절하다는 것을 알 수 있다.

생각해보면 자연스러운 것이 모비율 추정 시 현재 모여있는 사람의 성비를 가지고 모비율을 추정할 수 밖에 없고, 아마 그런 모비율이 있었기 때문에 현재 상태가 만들어 진 것은 아닐까? 라고 추정하는 것은 자연스럽다.