배워서 남 주자

AI/인공지능 및 기계학습 개론

[인공지능 및 기계학습 개론] 1.3 MAP

신라면순한맛 2022. 8. 12. 22:42

이번 포스팅에서는 MAP(Maximum A Posteriori) Estimation에 대해서 알아보도록 하겠습니다.

 


 

http://www.edwith.org/machinelearning1_17/lecture/10576

 

[LECTURE] 1.3. MAP : edwith

- 신승재

www.edwith.org

 

지난 포스팅에 이어 계속 압정을 던지는 예를 생각하고 있습니다. MLE 관점에서는 다섯 번 던져봤더니 세 번이 head가 나오고 두 번이 tail이 나왔었으니 $\hat\theta=3/5$가 적절하다고 결론을 내렸었는데요. 이는 50번을 던졌더니 30번이 head가 나왔어도 같은 prediction 값이 됩니다. 결과적으로는 같은 prediction이지만, 정말로 이 둘이 같은가? 에 대해서, 지난 시간에는 simple error bound 개념을 통해 결과적으로는 같은 값을 주지만 50번을 던져서 나온 쪽이 더 참값에 가까워질 여지가 있다고 생각할 수 있었습니다. 

 


 

이 때, 만약에 어떤 사람이 앞면 대 뒷면이니까 $50:50$ 아니냐? 라고 반론을 제기했다 해보겠습니다. 이는 사실 압정을 던져보기 전에도 얘기할 수 있는 것이죠. 그래서 이러한 것을 prior knowledge (사전지식) 라고 하고, 이것이 따르는 분포를 prior distribution (사전분포) 라고 합니다. 이를 수식으로 한 번 보도록 하겠습니다. 우리의 likelihood function은 $f(\theta)=P(D|\theta)$였습니다. 그래서 이 $f$를 $\theta$에 대해 미분해서 최대를 구했었던 것이죠. 그리고 $P(\theta)$가 바로 $\theta$의 확률이니까, 좀 더 풀어 말하면 $\theta$가 따르는 확률분포에서의 확률값입니다. 이 확률분포가 바로 prior distribution인 것이죠. 마지막으로 posterior인 $P(\theta|D)$와의 관계를 규명한 것이 바로 Bayes formula입니다.: $$ P(\theta|D)=\frac{P(D|\theta)P(\theta)}{P(D)} $$ 즉, data $D$와 $\theta$에 대한 prior knowledge가 주어져 있다면 이 둘에 비례하는 값으로 $\theta$에 대한 posterior distribution (사후분포) 의 확률값인 $P(\theta|D)$를 구할 수 있다는 뜻입니다. 여기서 $P(D)$는 $D$가 특정 분포를 따르고 있는 상황이 아니므로 constant이고, 그래서 다음과 같이 표현할 수 있겠습니다.: $$ P(\theta|D)\propto P(D|\theta)P(\theta) $$ 이 식에서 likelihood인 $P(D|\theta)$는 이미 $$ P(D|\theta)=\theta^{\alpha_H}(1-\theta)^{\alpha_T} $$임을 알고 있으니, $P(\theta)$가 무엇인지만 알면 되겠습니다. 이것은 prior를 무엇으로 택하냐에 따라 다 다를텐데, 강의에서는 Beta distribution $B(\alpha,\beta)$를 택했습니다. (베타분포는 $0$에서 $1$사이에서 정의 된 분포로, 자세한 것은 구글링을 해보시기 바랍니다. 블로그에서는 다음 포스팅에서 간단히 다룰 예정이고, 나중에 수리통계를 다룰 때 좀 더 자세히 포스팅 할 예정입니다.) 베타분포는 아래와 같이 주어지는 분포입니다.: $$ P(\theta)=\frac{\theta^{\alpha-1}(1-\theta)^{\beta-1}}{B(\alpha,\beta)} $$ where $$ B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)},\quad\Gamma(\alpha)=\int_0^{\infty} t^{\alpha-1}e^{-t}\:dt,\:\alpha>0$$ 감마함수까지 등장하니 머리가 어지러운데, 아 저런 적분으로 정의 된 것이 감마함수구나~ 라고 넘어가셔도 큰 지장은 없을 것 같습니다. 베타함수도 아~ 저렇게 감마함수를 이용해서 정의하는구나~ 하고 넘어가시면 될 듯 합니다. 감마함수는 일반적으로는 저렇게 정의되는데, 만약 $\alpha\in\mathbb{N}$라면 아래와 같이 factorial 값과 같아집니다.: $$ \Gamma(\alpha)=(\alpha-1)!\quad(\alpha\in\mathbb{N}) $$ 어쨌든, 여기서 저 prior 정보를 이용하여 likelihood와의 곱을 계산해보면, 아래의 식을 얻습니다.: $$ \begin{aligned} P(\theta|D)\propto P(D|\theta)P(\theta)&\propto\theta^{\alpha_H}(1-\theta)^{\alpha_T}\cdot\theta^{\alpha-1}(1-\theta)^{\beta-1} \\ &= \theta^{\alpha_H+\alpha-1}(1-\theta)^{\alpha_T+\beta-1} \end{aligned} $$ 형태가 마침 prior와 같네요. 따라서 이에 대한 최대값도 MLE때와 완전히 같은 것을 알 수 있습니다. (이 경우는 운이 좋았던 것이죠.) 즉, posterior를 최대로 하는 $\hat\theta$을 MAP라고 하는 것이고, 수식으로는 아래와 같습니다.: $$ \hat\theta = \argmax_{\theta} P(\theta|D) $$ 그래서 이를 계산해보면 $$ \hat\theta = \frac{\alpha_H+\alpha-1}{\alpha_H+\alpha+\alpha_T+\beta-2} $$ 이 값을 보시면 결국 MAP는 prior였던 베타분포의 모수 $\alpha, \beta$에 의존하는 형태로 나오는 것을 알 수 있는데, 이 때 만약에 시행횟수가 많다면, 즉 $\alpha_H$와 $\alpha_T$가 충분히 크다면 그 때는 $\alpha$와 $\beta$를 무시할 수 있는 수준으로 바뀔 것이고, 그 결과는 MLE와 비슷하게 나오는 것을 알 수 있습니다. 물론 반대의 경우라면 사전분포의 지식이 굉장히 강력하게 작용하겠죠?

 


 

이렇게 $\theta$를 추정하는 값으로써, MLE 뿐만 아니라 MAP라는 것이 있다는 것도 알아보았습니다. 이것으로 이번 포스팅을 마치겠습니다.