[개념부터 수식까지 생성모델] 1. MLE와 MAP

kiteday·2023년 12월 6일

baseline

목록 보기
1/7

생성모델들에 대한 수학적 이해를 해보고자 하니 수식적으로 빈 공간이 생겨 위로 위로 올라가다가 시작점을 MLE 개념부터 알아야 겠다는 생각이 들었다. 여러 블로그나 강의자료 글들을 참고하여 가장 이해하기 쉬운 형태로 정리하고자 한다. 여러 예제들이 많은데 레퍼런스를 참고해서 가장 쉬운 형태의 예제를 만들어 보았다.

1. MLE (Maximum Likelihood Estimation)

likelihood를 최대화하기 위해서 먼저 likelihood가 무엇인가에 대해 생각해보자.

likelihood는 쉽게 말해 어떤 주어진 관측치(X=x1,x2,...,xnX=x_1,x_2, ..., x_n)를 따를 확률들의 분포를 의미한다. 확률을 θ\theta라고 할 때, 수식은 다음과 같다.

P(Xθ)=Πi=1nP(xiθ)P(X|\theta) = \mathrm{\Pi}^n_{i=1} P(x_i|\theta)

우리가 원하는 것은 데이터(관측치들)를 가장 잘 설명할 수 있는 θ\theta를 찾아 최대화 하는 것이다. 따라서 이를 수식으로 나타내면

θMLE=arg maxθP(Xθ)\theta_{MLE} = \argmax_\theta P(X|\theta)

가 된다.

예제를 통해 정확한 개념을 다시 확인해보자.

예1)
어떤 동전을 던졌을 때 각각 앞면과 뒷면이 나올 확률을 θ\theta라 하자. 이 동전은 X=,,,X=앞, 앞, 앞, 뒤와 같은 관측치를 가질 때, θ\theta를 구해보자.

먼저 동전을 던졌을 때 나오는 경우의 수는 무조건 앞 혹은 뒤이므로
P()=θP(앞)=\theta_{앞}이면 P()=1θP(뒤)=1-\theta_{앞} 이다. (동전의 앞면이 나올 확률과 뒷면이 나올 확률을 더하면 1)

우리의 관측치 XX에 따르면

P()P()P()P()P(앞)P(앞)P(앞)P(뒤)

로 작성할 수 있다.

이걸 Lagrange multiplier방법으로 θ\theta를 직접 계산해보자.

(P()3P())=λ(P()+P())\triangledown ({P(앞)}^3 P(뒤)) = \triangledown\lambda(P(앞) + P(뒤))

P(앞)과 P(뒤)에 대해 각각 미분하여 두 개의 식을 얻을 수 있다.

3P()2P()=λ(P()으로미분)3{P(앞)}^2P(뒤) = \lambda \qquad (P(앞)으로 미분)
P()3=λ(P()로미분){P(앞)}^3 = \lambda \qquad (P(뒤)로 미분)
P()+P()=1(제한조건)P(앞)+ P(뒤) = 1 \qquad (제한조건)

앞서 나온 모든 식을 정리해보면 결국
α=13P()=P()\alpha = {1 \over 3}P(앞) = P(뒤)라는 관계가 나오게 되고 P()=34,P()=14P(앞)= {3 \over 4}, P(뒤)= {1 \over 4}라는 값을 얻을 수 있다.

우리는 지금 동전의 앞면이 나올 확률 θ\theta에 대해서 likelihood를 최대로 하도록 하기 때문에 결국 우리가 얻을 MLE는 α=14\alpha = {1 \over 4}가 최대일 때가 된다.

θMLE=34343414\theta_{MLE} = {3 \over 4}\cdot{3 \over 4}\cdot{3 \over 4}\cdot{1 \over 4}

정말 동전의 앞면이 나올 확률이 뒷면이 나올 확률보다 더 클까? 동전을 아는 사람이라면 뭔가 이상함을 느꼈을 것이다. MLE는 관측한 데이터에 대해 매우 잘 설명하지만, 데이터 분포에 대한 prior(사전 지식)을 활용하지 않는 단점이 있다. 따라서 우리는 새로운 관측값이 와도 더 잘 데이터를 설명할 수 있는 확률 분포를 찾기 위해 이를 활용하여 posterior(사후 확률)를 계산한 MAP를 도입한다.

2. MAP (Maximum A Posterior)

Posterior는 어떤 조건 prior가 주어졌을 때 가지는 확률분포들을 의미한다. 수식으로는 다음과 같이 표현할 수 있다.

P(θX)=P(Xθ)P(θ)P(x)P(\theta|X) = {P(X|\theta) \cdot P(\theta) \over P(x)}
  • P(Xθ)P(X|\theta) : likelihood
  • P(θ)P(\theta) : prior

실제 P(X)는 관측치의 확률이므로 알 수가 없고, posterior는 prior * likelihood와 비례하기 때문에 MAP는 이 값을 최대화 하는 값이 된다.

θMAP=arg maxΠiP(xiθ)P(θ)\theta_{MAP} = \argmax {\mathrm{\Pi}_i} P(x_i|\theta) \cdot P(\theta)

앞선 예1)의 동전의 관측치를 가지고 새로운 예시에 적용해보자.

예 2)
주머니에 동전 10개가 있다. 이 중 8개는 정상 동전이라서 앞면이 나올 확률이 0.5이고 2개는 사기동전이라서 앞면이 나올 확률이 0.6이다. 이 때 이 주머니에서 한 개의 동전을 골라 4번을 던졌을 때, 관측치가 (앞, 앞, 앞, 뒤)인 경우에 우리가 고른 이 동전은 어떤 동전일까?

문제를 해결하기 위해 주어진 정보를 정리해 posterior를 구해보자.

우리는 이전과 달리 새로운 사전 정보(prior)를 얻었다. 바로 주머니에 총 동전이 10개이고 이 중 정상 동전이 8개, 사기 동전이 2개라는 것이다. 각 정보를 표로 정리하면 다음과 같다.

앞면이 나올 확률priorlikelihoodprior * likelihood
정상동전 θ=0.5\theta=0.50.8(0.5)3(10.5)(0.5)^3(1-0.5)0.05
사기동전 θ=0.6\theta=0.60.2(0.6)3(10.6)(0.6)^3(1-0.6)0.01728

두 값 중 0.05가 0.01728보다 크기 때문에 θMAP=0.05\theta_{MAP}=0.05가 되고 우리가 고른 동전은 정상 동전으로 판단할 수 있다.

레퍼런스

profile
공부

0개의 댓글