Bayes Rule (베이즈 룰)


Bayes Rule은 Bayesian Deep Learning에서 가장 기본이 되는 개념입니다. 어떤 값을 예측하기 위한 수단으로서 딥러닝 이전부터 굉장히 많이 쓰여 왔던 방식이기 때문에 Bayesian Deep Learning이 아니더라도 알아두면 굉장히 유용한 정리이기 때문에 머신러닝이나 통계학을 공부하신 분들이라면 대부분 들어보셨을 만한 유명한 정리입니다. 이번 포스트에서는 이 Bayes Rule에 대해 간단히 살펴보고, 수식의 Notation들이 각각 무엇을 의미하는지 알아보도록 하겠습니다.

  • 이 포스트가 속한 시리즈: Bayesian Deep Learning
  • 선수 지식: 이 포스트를 이해하기 위해서는 고등학교 수준의 확률 지식이 필요합니다.

☕ 대학원생의 커피 한 잔을 위한 광고 ☕
🙂 봐주셔서 감사합니다 🙂

농어 vs 연어

Sea Bass vs Salmon
농어(a)와 연어(b)

많은 Pattern Recognition 수업에서는 Bayes Rule을 설명하기 위해 농어(Sea Bass)연어(Salmon)를 구분하는 문제를 예로 많이 든다. 그래서 이 글에서도 같은 예시를 들어보려고 한다. 우리가 할 일은 간단하다. 낚시를 통해 건져 올린 물고기를 보고 농어인지 연어인지 맞추기만 하면 되는 것이다. 이 때 우리가 물고기를 분류하는 기준은 피부의 밝기이다. 즉 우리가 물고기의 피부 밝기 정보를 이용해서 그 물고기가 농어인지 연어인지 맞추는 Task를 진행한다고 가정하자.




수식적 표현

우리는 물고기의 피부 밝기 정보가 주어졌을 때 그 물고기가 농어인지 연어인지 맞추기 위해서 이 문제를 수학적으로 모델링 할 것이다. 먼저 우리에게 주어진 물고기의 피부 색의 밝기를 $x$라고 하자. 물고기의 종류를 $w$라고 하고, 그 물고기가 농어일 사건을 $w = w_1$, 그리고 연어일 사건을 $w = w_2$라고 하자. 즉 물고기의 피부 밝기가 0.5일 때 그 물고기가 농어일 확률은 다음과 같은 조건부 확률로 표현할 수 있다.

$$P(w=w_1|x=0.5) = P(w_1|x=0.5)$$

만약 우리에게 만약 모든 $x$에 대해서 $P(w_1|x)$와 $P(w_2|x)$의 값이 주어진다면, 어떤 $x$가 주어지더라도 다음과 같은 방법을 통해서 농어인지 연어인지를 구분할 수 있다.

  • $P(w_1|x)>P(w_2|x)$라면 농어로 분류한다.
  • $P(w_2|x)>P(w_1|x)$라면 연어로 분류한다.

어찌 보면 당연한 판단이다. 단순히 물고기가 농어일 확률이 높으면 농어, 연어일 확률이 높으면 연어로 분류하자는 전략이기 때문이다. 그렇다면 물고기 분류 문제는 $P(w_i|x)$, 즉 피부 밝기 $x$가 주어졌을 때 그 물고기가 class $w_i$에 속할 확률만 구하면 풀 수 있다. 그리고 여기서 우리가 구해야 하는 확률 $P(w_i|x)$를 우리는 Posterior(사후확률)라고 부른다.




관찰하기

그렇다면 우리는 Posterior, 즉 $P(w_i|x)$를 어떻게 구할 수 있을까? 직접 구할 방법은 아직은 없어 보인다. 하지만 $P(x|w_i)$는 구할 수 있다. $P(x|w_i)$는 물고기의 종류가 $w_i$일 경우 피부 밝기가 $x$일 확률이라고 해석할 수 있는데, $x$는 continuous 하기 때문에 확률보다는 확률밀도가 맞는 표현이다. 즉 $P(x|w_1)$는 농어의 피부 밝기 분포이고, $P(x|w_2)$는 연어의 피부 밝기 분포라고 할 수 있다. 그렇다면 $P(x|w_i)$를 도대체 어떻게 구할 수 있다는 것인가? 바로 관찰이다. 농어를 충분히 많이 잡아서 어떤 피부 밝기를 가진 농어들이 많은지에 대한 분포를 구하는 것이다. 물론 연어도 마찬가지다. 이렇게 관찰을 통해 얻은 확률분포 $P(x|w_i)$를 Likelihood(가능도)라고 부른다. 열심히 물고기들을 관찰하고 피부 밝기를 측정한 결과, 다음과 같은 분포를 얻었다고 가정하자.

Likelihood
농어와 연어의 피부 밝기 분포

분포를 해석해보면, 농어의 피부 밝기가 전체적으로 연어에 비해 밝다는 사실을 알 수 있다. 이렇게 우리는 Likelihood를 얻었다. 그리고 Likelihood의 그래프를 보고 이런 생각이 들 수 있다. 그냥 지금 가지고 있는 Likelihood 분포에서 두 곡선이 만나는 지점의 $x$ 기준으로 $x$가 그 값보다 작으면 연어, 크면 농어로 분류하면 되지 않을까? 즉 Posterior까지 구할 필요 없이 Likelihood만 가지고도 분류할 수 있지 않을까? 그렇지 않다. 왜냐면 Likelihood에는 애초에 연어와 농어가 잡힐 확률이 반영돼 있지 않기 때문이다. 즉 Likelihood만으로 분류를 하기 위해서는 농어와 연어가 똑같은 비율로 바다에 살고 있다는 가정이 있어야 한다. 예를 들어 $x=5$가 나왔다고 하자. 그래프 대로라면 우리는 이 물고기를 농어로 분류해야 한다. 그런데 만약 농어가 많이 희귀해서 농어가 잡힐 확률 자체가 1%도 안된다면, 아무리 $x=5$라고 해도 그 물고기가 농어일 확률은 현저히 낮다.




Prior

지금까지 알아본 사실들을 간단히 정리해보자. 물고기의 피부 밝기 $x$가 주어졌을 때 그 물고기가 농어인지 연어인지 구분하기 위해서는 Posterior($P(w_i|x)$)를 알아야 한다. 그리고 이 Posterior를 바로 알 수 없기 때문에 우리는 관찰을 통해서 Likelihood($P(x|w_i)$)를 먼저 구한다. 하지만 Likelihood 만으로는 Posterior를 알 수 없다. 바로 바다에 살고 있는 농어와 연어의 비율이 반영되지 않았기 때문이다. 아무리 특정 $x$에 대해 연어의 Likelihood가 농어의 Likelihood보다 크다 하더라도 애초에 연어가 매우 희귀하다면 우리는 이 물고기가 농어일 가능성도 생각해 볼 필요가 있다.

결론은, $x$와 관계 없이 애초에 농어가 잡힐 확률($P(w_1)$)연어가 잡힐 확률($P(w_2)$)을 알아야 한다. 이 값을 우리는 Prior(사전확률)라고 하며, 이름 그대로 우리가 이미 갖고 있는 사전 지식에 해당한다. 농어와 연어 문제에서는 물고기를 많이 잡아서 농어와 연어의 비율을 추정할 수 있지만, 보통은 주어지거나 우리가 정해줘야 하는 경우가 많다. 예를 들어 농어와 연어의 실제 비율을 모를 경우, 우리는 편의상 농어와 연어의 비율이 같다고 가정할 수도 있다. 이렇게 Prior는 보통 우리가 사전 지식을 이용해서 정해주는 값에 해당한다. 이 문제에서는 편의상 $P(w_1) = 0.7$, $P(w_2) = 0.3$이라고 하자. 즉 연어가 농어에 비해 희귀하다고 가정하는 것이다.




Bayes’ Rule

지금까지 우리는 세 가지 종류의 확률을 알아봤다. 정리해보도록 하자.

  • Posterior($P(w_i|x)$): 피부 밝기($x$)가 주어졌을 때 그 물고기가 농어일 확률 또는 연어일 확률. 즉 단서가 주어졌을 때, 대상이 특정 클래스에 속할 확률. 우리가 최종적으로 구해야 하는 값이다.
  • Likelihood($P(x|w_i)$): 농어 또는 연어의 피부 밝기($x$)가 어느 정도로 분포되어 있는지의 정보. 즉 각 클래스에서 우리가 활용할 단서가 어떤 형태로 분포 돼 있는지를 알려준다. Posterior를 구하는 데 있어서 매우 중요한 단서가 된다.
  • Prior($P(w_i)$): 피부 밝기($x$)에 관계 없이 농어와 연어의 비율이 얼마나 되는지의 값. 보통 사전 정보로 주어지거나, 주어지지 않는다면 연구자의 사전 지식을 통해 정해줘야 하는 값이다.


우리의 목적은 Posterior($P(w_i|x)$)를 구하는 것이며, 이 값은 Likelihood($P(x|w_i)$)Prior($P(w_i)$)를 이용하면 구할 수 있다. 고등학교 때 배운 조건부 확률의 정의를 떠올려보자.

$$P(A,B)=P(A|B)P(B)=P(B|A)P(A)$$

그리고 이를 살짝 변형하면 다음과 같은 식을 얻을 수 있다.

$$P(A|B) = \frac {P(B|A)P(A)}{P(B)} = \frac {P(B|A)P(A)}{\sum_ {A} {P(B|A)P(A)}}$$

그리고 $A$대신 $w$, $B$ 대신 $x$를 넣으면 다음과 같이 된다.

$$P(w_ i|x) = \frac {P(x|w_ i)P(w_ i)}{\sum_ {j} {P(x|w_ j)P(w_ j)}}$$

좌변은 우리가 구하고자 하는 Posterior이고, 우변의 분자는 LikelihoodPrior의 곱이며, 우변의 분모는 Evidence라고 보통 부르는데, 이 또한 LikelihoodPrior들을 통해 구할 수 있다. 즉 우리는 이 식을 이용하면 Posterior를 구할 수 있고, 이 식을 우리는 Bayes’ Rule또는 Bayesian Equation 등으로 부른다.

Posterior
피부 밝기에 따른, 농어일 확률과 연어일 확률. 즉 Posterior

위 그래프는 방금 알아 본 Bayes’ Rule에 따라 농어와 연어의 Posterior를 구한 결과이다. 이제 우리는 $x$가 주어지면 Posterior가 큰 쪽을 고르면 된다. 농어와 연어를 구분하는 $x$의 전환점을 살펴보면 알겠지만, Likelihood 그래프에서는 전환점이 $x=4.5$ 부근에 형성되지만 Posterior 그래프에서는 $x=3$ 부근에 형성된다. 연어가 더 희귀하다는 사전 정보(Prior)가 반영되었기 때문이다.

[top]