컨텐츠 바로가기

베이지안 확률(Bayesian Probability)

http://aistory.egloos.com/4493798

  Machine Learning에서 확률추론이 차지하는 비중은 굉장히 크다. 그런데 확률추론에서 반드시 짚고 넘어가야 할 것이 바로 베이지안 확률이다. 사실 책마다 너무 오버스럽게 강조되는 경향이 있는 것 같기도 하다. (물론 그만큼 중요하니까 그렇겠지^^) 어쨌든 먼저 다들 확통시간에 배운 바 있는 베이지안 이론을 보자.

P(w|D)= \frac{P(D|w)P(w)}{P(D)} 

이건 조건부 확률 공식  P(A|B) = P(A,B)/P(B)로 쉽게 유도되는 공식이고, 나도 대학교때 확통 배우면서 "아, 그렇구나" 하고 대충 지나갔던 공식중에 하나일 뿐이었다. 하지만 베이지안 확률은 이 공식만이 전부가 아니고, 개념적으로 좀 더 중요한 것을 내포하고 있다.

 

  확률에 대해 우리가 통상적으로 알고 있는 개념을 Classical 혹은 Frequentist interpretation 이라고 한다. 간단한 예로, 항아리에 검은 공과 하얀공이 들어있고, 여기서 공을 하나씩 꺼내어 확인하는 과정을 생각해보자. N번 시행했을 때, 하얀공이 X번 나왔다고 하면, 우리는 하얀공이 나올 확률값 P를 X/N으로 추정해볼 수 있을 것이다. 물론 정확한 확률값을 알아내기 위해서는 N이 무한대로 커야 하고, 즉,

P=\lim_{N \to \infty} \frac{X}{N} 

 이라고 할 수 있을 것이다.

  하지만 이러한 해석에는 몇가지 문제점이 존재한다.

  첫째, 무한번 시행을 해야만 정확한 값을 알 수 있다는 것이다. 시행 횟수가 굉장히 적은 경우, 그 결과를 가지고 얘기할 수 있는 것은 거의 없다. 위의 예에서 한번 시행해서 하얀공이 나왔다고 해보자. 그러면 P=1 이라고 해야하는가? (사실은 그래서 시행 횟수가 적은 경우, 확률값이 어느 범위에 존재할 확률을 생각하여 해결하긴 한다.)

  둘째, 반복시행 자체를 할 수 없는 경우에도 우리는 일상적으로 확률의 개념을 사용하는데, 이를 Frequentist interpretation에서는 다룰 수 없다. 예를 들어 "다음 대선에 박근혜가 당선될 확률"을 생각해보자. "다음 대선"이라는 것은 역사상 딱 한번만 일어나는 일인데다가 이 확률을 우리는 그 이전에 계산해내고 싶은 것이다. 하지만 우리는 이 경우에도 여러가지 관련된 사실을 이용하여 (여론조사 등을 이용해서) 이 확률을 생각해볼 수 있다.

  셋째, 완벽히 조건이 같은 독립적인 반복 시행은 원칙적으로 존재하지 않는다. 처음에 하얀공만 10번 나왔다가 그 후로 검은공만 나온다고 해보자. 10번 시행했을 때 우리는 P=1이라고 추정하지만 실제로는 P=0에 가깝다고 할 수 있겠다. 그럼 10번 시행했을때의 추정값 P=1을 어떻게 믿고 사용하겠는가? 물론 실제로 이런 일은 자주 벌어지지 않는다. 왜냐하면, 각각의 시행이 같은 조건에 이루어지며 서로 독립적이라는 가정이 보통의 상황에서는 성립하기 때문이다. 하지만, 엄밀히 말해서 각각의 시행은 시간 순서대로 일어나고, 나중의 시행의 결과는 전 시행의 결과를 안 이후의 조건부 결과이기때문에 원칙적으로는 독립이 아니다.

 

  베이지안 확률은 이런 문제점을 해결하기 위해 확률의 개념을 좀 더 확장한다. 반복 시행을 할 수 없는 명제나 상황이라 해도, 이것의 "불확실한 정도" 혹은 "믿음의 정도"를 확률로 할당하는 것이다. 즉, 확률을 불확실한 상황에서의 (Boolean) 진리값의 (이산 변수에서 연속 변수으로의) 확장으로 간주하는 것이다. (즉, 어떤 명제가 얼마나 진리에 가까운 것인지) 그런데 이렇게 객관적이지 않아 보이는 양을 어떻게 계산할 수 있을까? 바로 이 때 베이지안 이론이 필요하다.

 \overbrace{P(w|D)}^{posterior}= \frac{ \overbrace{P(D|w)}^{likelihood} \overbrace{P(w)}^{prior}}{P(D)}

  먼저, 베이지안 확률에서는 해당 명제를 판단할 증거(공꺼내기 예에서는 공을 꺼낸 결과)가 나타나기 이전에도 확률(믿음의 정도)이 존재하고, 이를 Prior Probability라고 한다. 전혀 아무런 지식이 없는 경우에도 이는 존재하지만(non-informative prior), 보통은 과거의 증거들을 종합한 결과가 될 것이다. 자 이제, 증거 D가 관찰된다. 이는 명제와 관련된 어떠한 관찰결과라도 상관없다. 해당 명제가 성립한다고 했을 때, 그 증거가 관찰될 확률 P(D|w) - likelihood만 알면 된다. 그리하여 우리는 여기서 증거를 관찰한 이후 그 명제의 확률(믿음의 정도)이 어떻게 변하는지를 알아낼 수 있다. 이를 Posterior Probability라고 한다. P(D)는 별로 중요한 양은 아니고, Posterior의 Normalization constant정도로 생각하면 된다.

  예를 들어 "암 검사 양성 판정 시 암에 걸렸을 확률"에 대해서 생각해보자. 보통 사람의 경우 암에 걸릴 확률은 0.8%이다. 즉, 아무런 검사를 하지 않았을 때 암에 걸릴 Prior Prob.은 0.008 이라고 할 수 있다. (0.5가 절대 아니다!) 그런데, 암에 걸렸다고 했을 때 암 검사가 양성으로 나올 확률, 즉, likelihood는 0.98이라고 한다. 또, 암에 걸리지 않았는데도 양성이 나올 확률은 0.03이라고 한다. 그렇다면,

P(양성 판정|암)*P(암) = 0.98*0.008 = 0.0078

P(양성 판정|암 아닐때)*P(암 아닐때) = 0.03*0.992 = 0.0298

이고, 둘을 더 하면 P(양성 판정) = 0.0376 이 되고, 즉, P(암|양성 판정) = P(양성 판정|암)*P(암)/P(양성 판정) = 0.0078/0.0376 = 0.207 이 되어 암에 걸렸다고 믿을 수 있는 정도는 20%로 높아지게 된다고 할 수 있다. 하지만 검사의 정확도가 98%인 것을 본다면, 이런 결과는 좀 놀랍다. 양성 판정이 난다고 해서 꼭 암이라는 법은 없다는 것이다. 이처럼 베이지안 확률은 반복 시행을 하지 않아도 계산이 가능하며, 올바른 prior를 사용함으로써 좀 더 타당한 결론을 내릴 수 있게 해준다.

 

  그럼 공꺼내기 예를 베이지안 관점에서 분석해보면 어떨게 될까? 일단 우리가 정확히 알고 싶은 값은 항아리 안의 (하얀공의 갯수)/(전체 공의 갯수) 일 것이다. 이것을 y라고 하면 이는 0~1사이의 값을 가지는데, 이것 자체는 이미 결정되어 있는 양이므로 "믿음의 정도"라고 할 수 없다. 우리가 설정해야 하는 "믿음의 정도"는 y가 0~1사이의 특정값을 가질 확률이어야 하고, 이는 정의역이 0~1인 확률분포함수가 될 것이다. 이제는 항아리에서 공을 하나씩 꺼내가면서 (즉, 증거를 수집해가면서) 이 확률분포함수(y가 어떠한 값을 가질 것인가에 대한 믿음의 정도)가 어떻게 변해가는지를 알아보아야 할 것이다.

 

b1.png

<시행을 하기 전>

시행을 하기 전에는 y값에 대한 아무런 지식이 없으므로, 평평한 확률분포를 가져야 할 것이다.

이것을 flat prior라고 하는데 (non-informative prior가 꼭 flat일 필요는 없다. 상황에 따라 적절한 분포를 찾는 것도 중요하다.) 이 때는 y가 가져야 할 값들이 모두 동등하게 취급된다.

 

 

 

 

b2(1).png <첫번째 시행 : 하얀 공>

 하얀 공이 나왔으므로, likelihood P(white|y) = y이다.

 P(y|white)= \frac{P(white|y)P(y)}{\int_0^1 P(white|y)P(y) \, dy }} = \frac{y \cdot 1}{\int_0^1 y \cdot 1 \, dy }} = \frac{1}{2} y

 분명한 것은 하얀 공이 일단 관측이 되었으므로, y=0 이 될 확률이 0 이어야 한다는 것이다.

 물론 검은 공이 나온 적이 없으므로, y=1이 될 확률도 존재하게 된다.

 

 

b3(1).png

<두번째 시행 : 검은 공>

 하얀 공에 이어 검은 공이 나왔다. likelihood P(black|y) = 1-y이고, prior는 위에서 구한 y/2가 된다.

 P(y|black) = \frac{P(black|y)P(y)}{\int_0^1 P(black|y)P(y) \, dy }} = \frac{(1-y) \cdot y/2}{\int_0^1 (1-y) \cdot y/2 \, dy }} = 6y(1-y)

하얀 공, 검은 공이 하나씩 나왔으므로, y=0.5가 될 가능성이 제일 클 것이라는 것을 확인할 수 있다.

그리고 하얀 공, 검은 공 둘다 관측이 되었으므로, y=0 혹은 y=1 이 될 가능성은 없다는 것을 확인 할 수 있다.

 

 b4(1).png

<세번째 시행 : 하얀 공>

 하얀 공이 또 나왔으므로, 당연히 분포는 1쪽으로 좀 더 치우칠 것이고, 2/3에서 최대값을 가져야 할 것이다.

 P(y|white) = \frac{P(white|y)P(y)}{\int_0^1 P(white|y)P(y) \, dy }} = \frac{y \cdot 6y(1-y)}{\int_0^1 y \cdot 6y(1-y) \, dy }} = 12y^2 (1-y)

 

  위에서 보듯이 관찰되는 증거에 따라 믿음의 정도가 (꽤 타당한 방향으로) 업데이트 되어가는 것을 알 수가 있다.

 

  이런 베이지안 관점을 취함으로서 얻는 이득은 고전적인 확률의 개념을 확장하는 것 이상이다.

  먼저, 사전 지식(Prior knowledge)을 자연스럽게 고려하게 된다는 것이다. 사전지식을 고려하지 않은 판단이 매우 위험하다는 것은 "암 검사 양성 판정 시 암에 걸렸을 확률"의 예에서 이미 알아본 바가 있다. 또한 prior에 대한 고려없이, likelihood가 가장 큰 파라메터를 선택하여 추론에 이용하는 것은 올바르지 않을 수도 있는데, 예를들어 위의 공꺼내기의 예에서 첫번째 시행에서 하얀 공이 나왔다고 해서, likelihood가 가장 큰 y=1을 취하여 추론하는 것은 분명히 문제가 있다. 즉, 베이지안 관점은 확률을 다루는 좀 더 조심스러운 방법이라고 할 수 있겠다.

이 글은 스프링노트에서 작성되었습니다.


트랙백

덧글|덧글 쓰기|신고