머신러닝/불확실성

베이즈 정리(Bayes theorem)

망나 2019. 3. 10. 21:24

"베이즈 정리" 또는 "Bayes theorem"이라는 단어는 아주 낯설고 왠지 모르게 어려울 것 같습니다...


하지만, 어렵다고 무시할 수 없는 중요한 개념이기 때문에 공부할겸 포스팅 하게 되었습니다.


사실 베이즈 정리는 조건부 확률이고 우린 고등학교 때 그 개념에 대해서 대강 배웠습니다. 그렇다면 구글에 널리고 널린 좋은 자료들을 참고해서 베이즈 정리에 대해서 정리해보겠습니다.



Introduction of Bayes Theorem

베이즈 정리는 조건부 확률에 대한 수학적 수식으로써 데이터 과학 분야에서 정말 중요한 개념입니다. 대표적인 예로는 통계적 추론에 대한 접근법인 Bayesian inference가 있습니다. 



Problem Statement

X, Y 두개의 그릇에 오랜지와 블루베리가 채워져있다고 가정할 때, 우리는 각 그릇에 정확히 몇개의 오렌지와 블루베리가 있는지 알 수 있습니다. 그릇 X에 총 11개의 과일이 있고 그 중 3개의 오렌지가 있다고 할 때, 그릇 X에서 오렌지 하나를 선택할 확률은 p(orange) = 3/11로 쉽게 구할 수 있습니다.


Reversed Case

하지만 만약에 블루베리를 두 그릇 중 아무 그릇에서 무작위로 뽑았다면, 어떤 그릇에서 블루베리를 뽑았는지에 대한 확률을 계산할 수 있을까요?


Bayes' Theorem을 이용하면 방금 질문에 대한 답을 얻을 수 있습니다.

이를 정리하자면, 베이지언 확률은 사후확률(posterior probability)을 사전확률(prior probability)과 likelihood를 이용해서 계산할 수 있도록 해 주는 확률 변환식입니다. 여기서 조금 어려울 수 있는 용어들을 정리하자면 다음과 같습니다.


- likelihood : p(z|x), 어떤 모델에서 해당 데이터(관측값)이 나올 확률

- prior probability : p(x), 관측자가 관측을 하기 전에 모델에 대해 가지고 있는 선험적 확률로 예를 들면, 남여의 구성비를 나타내는 p(남), p(여)가 사전확률에 해당합니다.

- posterior probability : p(x|z), 사건이 발생한 후(관측이 진행된 후) 사건이 특정 모델에서 발생했을 확률로 예를 들면 위에서 이미 블루베리를 뽑았는데 그것을 X 또는 Y에서 뽑았을 각각의 확률에 해당합니다.



Bayes Theorem Derivation

Bayes' Theorem을 증명하기 위해 하나의 실험을 생각해보겠습니다. 실험을 위해서 우리는 주사위를 던지는데, 주사위의 번호가 4 이하일 때, 그릇 X에서 하나를 뽑고, 주사위의 번호가 5 이상이면 그릇 Y에서 하나를 뽑습니다. 이러한 과정을 총 N번(N=300) 진행합니다.

[Blueberry:=B / Orange:=O / Bowl X:= X / Bowl Y:= Y]


총 300번 진행한 뒤, 우리는 각 그릇에서 뽑힌 아이템들의 숫자에 대한 통계적 결과를 얻게 됩니다. 이를 아래 그림과 같이 나타낼 수 있습니다. 여기서 s는 아이템이 뽑힌 Bowl을 나타내고, y는 관측가능한 값(orange or blueberry)을 나타냅니다.

그림으로 부터 우리는 다음과 같은 결과를 얻을 수 있습니다.

  • X 그릇에서 블루베리를 148번 뽑았다: n(s=X, y=B) = 148
  • Y 그릇에서 블루베리를 26번 뽑았다: n(s=Y, y=B) = 26
  • X 그릇에서 오렌지를 51번 뽑았다: n(s=X, y=O) = 51
  • Y 그릇에서 오렌지를 75번 뽑았다: n(s=Y, y=O) = 75

위에 있는 통계적 숫자를 이용해서 이제 조금 흥미로운 질문을 해볼 수 있습니다.


What is a probability to pick a random item from bowl X?

위의 질문 p(s=X)에 대한 답을 구하기 위해서는 오직 X에서만 아이템이 뽑힌 횟수를 총 수행한 횟수 300로 나누어야 합니다. 위의 통계 결과에서 보면 X에서 블루베리가 뽑힌 횟수 n(s=X, y=B) = 148 그리고 X에서 오렌지가 뽑힌 횟수 n(s=X, y=O)를 구할 수 있습니다. 따라서 X에서 어떤 아이템이 뽑힐 확률은 다음과 같이 나타낼 수 있습니다.

$$p(s=X) = \frac{n(s=X, y=B) + n(s=X, y=O)}{N}$$

     $$ = \frac{148 + 51}{300} \approx \frac{2}{3}$$


Note: 이러한 확률을 "사전 확률(Prior Probability)"라고 합니다. 


동일하게, p(s=Y)에 대한 확률은 다음과 같습니다.

$$p(s=Y) \approx \frac{1}{3}$$


What is a probability to pick an orange/blueberry?

이번에는 그릇에는 상관없이 orange와 blueberry중 어떤 것이 뽑혔을지에 대한 확률을 구해보겠습니다. 이 확률은 p(y=O), p(y=B)로 나타낼 수 있습니다. 위에서 보인 계산법과 유사하게 계산할 수 있습니다.

$$p(y=O) = \frac{n(s=X, y=O) + n(s=Y, y=O)}{N}

      $$ = \frac{51 + 75}{300} \approx \frac{4}{10}$$

$$p(y=B) \approx \frac{6}{10}$$


What is the probability to pick a blueberry from X?

이제 X로부터 블루베리를 뽑을 likelihood, joint probability p(s=X, y=B)를 계산해 보겠습니다.


Note: Joint probability는 1번 사건과 동시에 2번 사건이 발생할 확률을 뜻 합니다. 위의 경우에서는 그릇 X에서 아이템을 뽑을 확률과 함께 블루베리를 뽑을 확률이 동시에 발생하는 확률을 구해야하기 때문에 joint probability라고 합니다.


위의 확률을 구하기 위해서, X에서 블루베리를 뽑을 확률을 총 시행 횟수로 나눕니다.

$$p(s=X, y=B) = \frac{n(s=X, y=B)}{N}$$

     $$=\frac{148}{300} \approx \frac{1}{2}$$

따라서, Y에서 블루베리를 뽑을 확률은 다음과 같습니다.

$$p(s=ㅛ, y=B) = \frac{n(s=Y, y=B)}{N}$$

     $$=\frac{26}{300} \approx \frac{1}{12}$$

그리고, X에서 오렌지를 뽑을 확률은,

$$p(s=X, y=O) = \frac{n(s=X, y=O)}{N}$$

     $$=\frac{51}{300} \approx \frac{1}{6}$$


Given that we have picked from X, what is the probability that it is a blueberry?

이 조건부 확률은 p(y=B | s=X)로 나타낼 수 있습니다. 조건부 확률을 구하기 위해서 우리는 X에서 블루베리를 뽑은 횟수를 X에서 아이템을 뽑은 총 횟수로 나누어야 합니다.

$$p(y=B |  s=X) = \frac{n(s=X, y=B)}{n(s=X, y=B)+ n(s=X, y=O)}$$

     $$=\frac{148}{200} \approx \frac{3}{4}$$


Product Rule

앞서 구한 확률들을 활용해서 우리는 그릇 X에서 블루베리를 뽑을 확률 p(s=X, y=B)를 구할 수 있다.

$$p(s=X, y=B) = \frac{n(s=X, y=B)}{N} \cdot \frac{n(s=X, y=B) + n(s=X, y=O)}{n(s=X, y=B) + n(s=X, y=O)}$$

     $$=p(y=B | s=X) \cdot p(s=X)$$

     $$\approx \frac{3}{4} \cdot \frac{2}{3} \approx \frac{1}{2}$$

이러한 두 확률간의 관계를 product rule이라고 부른다. 우리는 product rule로 조건부 확률 p(y=B | s=X)와 사전 확률 p(s=X)를 이용해서  joint probability p(s=X, y=B)를 구할 수 있다.


Sum Rule

p(s=X)는 또 다음과 같이 나타낼 수 있다.

$$p(s=X) = \frac{n(s=X, y=B) + n(s=X, y=O}{N}$$

     $$=\frac{n(s=X, y=B)}{N} + \frac{n(s=X, y=O}{N}$$

     $$=p(s=X, y=B) + p(s=X, y=O)$$

     $$=\frac{1}{2} + \frac{1}{6} \approx \frac{2}{3}$$

이러한 두 활률간의 관계를 sum rule이라고 한다. 


The Bayes Rule

product rule에서, p(s,y)와 p(y,s)는 같은 값을 갖습니다.


$$p(s,y) = p(y|s)p(s)$$

$$p(y,s) = p(s|y)p(y)$$

$$-> p(s,y) = p(y,s)$$


여기서 우리는 새로운 Bayes Rule 표현인 p(s|y)를 얻을 수 있습니다.

$$p(s,y) = p(y,s)$$

$$p(y|s)p(s) = p(s|y)p(y)$$

$$-> p(s|y) = \frac{p(y|s)p(s)}{p(y)}$$



Finally: Which bowl was the blueberry taken from?

그렇다면, 이때까지 배운 내용들을 이용해서 블루베리가 어느 그릇에서 뽑혔는지 그 확률을 구해보겠습니다.


Bayes' Theorem이 위의 질문에 대한 답을 구할 수 있는 조건부 확률 p(s|y)를 구할 수 있게 해줍니다.


블루베리를 뽑는 것은 y=B로 표현할 수 있습니다. 무슨 그릇에서 블루베리가 뽑혔는지에 대한 답은 s=X와 s=Y에 대해서 p(s|y=B)를 계산해서 얻을 수 있습니다. s=X일 때 계산해보겠습니다.


$$p(s=X | y=B) = \frac{p(y=B | s=X)p(s=X)}{p(y=B)}$$

     $$=\frac{p(y=B | s=X)p(s=X)}{p(y=B, s=X) + p(y=B, s=Y)}$$

     $$=\frac{\frac{3}{4} \cdot \frac{2}{3}}{\frac{1}{2} + \frac{1}{12}} \approx 86\%$$


직관적으로 설명을 하자면, 

$$p(그릇 X | 블루베리) = \frac{p(블루베리 | 그릇 X)p(그릇 X)}{p(블루베리)}$$

블루베리가 그릇 X에서 뽑혔을 확률은 그릇 X에서 블루베리를 뽑을 확률 곱하기 그릇 X일 확률을 블루베리를 뽑을 확률로 나눈 것으로 구할 수 있다는 말입니다.

말이 어려운데... 설명이 쉽지가 않네요.. 글을 쓰면서도 저도 헷갈리는데 머리에 익을 때까지 반복해서 공부해야할 것 같습니다.


Reference

https://towardsdatascience.com/bayes-theorem-the-holy-grail-of-data-science-55d93315defb

https://darkpgmr.tistory.com/62