[지능시스템/Intelligent System] 6장. Probability-based learning, Baye's Rule

2019. 11. 30. 15:28학교공부/지능시스템

교재 : Fundamentals of machine learning for predictive data analytics
-Written by John D. Kelleher, Brian Mac Namee, and Aoife DªArcy
-published by The MIT press

 

 

When my information changes, I alter my conclusions. What do you do, sir? —John Maynard Keynes 

 

이 챕터에 다룰 probability-based prediction은 heavily based on Baye's Theorem이다.

 

Big Idea

카드게임을 플레이한다고 가정하자. 세개의 카드를 왼쪽, 중간, 오른쪽에 놓는다고 할 때, Queen이 어디에 있을지는 처음에는 알 수 없다. 세가지의 가능성이 모두 동일하다.

하지만 딜러가 30게임을 play했을 때, Queen을 오른쪽에 19번, 왼쪽에 3번, 가운데에 8번 놓았다고 하자. 이 정보를 바탕으로, queen이 오른쪽에 놓일 확률이 높다고 판단하고, 확률을 위 그림의 (d)처럼 update한다.

바람이 불어서 오른쪽 카드가 reveal되었다고 치자. 그렇다면 queen이 중간 혹은 왼쪽에 있을 확률은 (b)와같이 업데이트 된다. 이 가정으로, 당신은 queen이 center에 있을것이라 예측할 것이다.

 

이 예제로부터, 우리는 most likely prediction을 estimate할 수 있고, 이러한 예측들은 collected data로부터 extra evidence가 존재할 경우 수정될 수 있다는것을 보여준다.

 

EX1) 

위 표는 Meningtis(뇌수막염)진단 여부와 뇌수막염의 symptoms들에 대한 descriptive feature을 나타낸 것이다(Headache, fever, vomiting).

Probability point of view에서,

 - dataset에서 각각의 feature(headache, fever, vomiting)은 random variable이다.

 - sample space for the domain은 가능한 모든 combination of assignments of values to feature이다.

 - dataset의 행은 experiment를 표현한다. 

 - assignment of a set of descriptive features with values는 event라 한다.

즉 위 Table의 각각의 행은 experiment와 assignment of the descriptive features to the values를 나타내는 것이다. 또한 각각의 행은 distinct event이다.

 

1 ) 확률 함수(Probability function) P()는 event가 발생될 확률을 리턴한다. 예를들어, P(Fever=true)는 Fever이란 값이 true를 리턴할 확률을 말한다. P(fever=true)는 0.4이다. 

 * categorial features에 대한 probability function은 probability mass functions이라고 일컫는다.

 * continuous features에 대한 probability function은 probability density functions라고 한다.

2) Joint probability란 여러 이벤트가 동시에 발생하는 확률이다. 예를들어, P(MENINGTIS = true, HEADACHE = true) = 0.2이다.

3) 조건부 확률(Conditional Probability)는 하나의 feature가 다른 feature에 대한 특정한 값이 주어졌을 때 event가 발생할 확률을 말한다. 예를들어, P(MENINGTIS = true | HEADACHE  = true) = 0.2857이다. 두통이 true일때에 대해 결과가 true일 확률이 0.2857이라는 말이다.

4) 확률 분포(Probability Distribution)은 feature가 가질 수 있는 possible value들에 대한 확률 분포에 대한 data 구조이다. 에를들어, P(MENINGTIS)는 false가 7개, true가 3개이므로 P(MENINGTIS) = <0.3,0.7>이다. probability distribution의 합은 반드시 1.0과 같아야 한다.

5)  Joint probability distribution이란 하나 이상의 feature assignment에 대한 확률 분포이다. 예를 들어, (HEADACHE, FEVER, VOMITING, MENINGTIS)에 대한 joint probability distribution은 다음 그림과 같다.

joint probability distribution이 주어지면, 우리는 어떤 event든지 그것이 true일 확률을 위 값들에 대한 sum을 통해 계산할 수 있다. 예를 들어, P(h)를 구하려고 한다면 단순히 h를 포함하는 모든 cell들을 더하면 된다. 즉 첫번째 column을 다 더하면 된다. 이러한 계산 방법을 summing out이라 한다. 조건부확률도 다음과 같은 방식으로 구하면 되는데, 예를 들어 P(h|f)를 구하기 위해서는 h와 f가 들어간 값들을 모두 더하면 된다. 즉 첫번째 column의 위에서 네번째까지를 더한다.

 

** Baye's Theorem **

: a set of evidence가 주어졌을 때 event가 발생할 확률은 event로 인해 evidence가 발생할 확률과 event가 발생할 확률 그 자체를 곱한 값과 같다.

즉, P(evidence가 주어졌을 때의 event) = P(event가 주어졌을 때 evidence) * P(event)

Baye's Theorem에 대한 formal definition 은 다음과 같다.

$$ P(X|Y) = \frac{P(Y|X)P(X)}{P(Y)}$$

Baye's Theorem은 event X가 evidence Y가 주어졌을때의 조건부 확률을 정의한다. 또한 위 수식의 P(X)는 이전의 event X가 발생할 확률을 의미한다.

이 이론이 유용한 이유는 evidence로부터 events를 추론하는 일(inverse reasoning)보다 event가 주어졌을 때 evidence를 추론하는 일(forward reasoning)이 훨씬 쉽기 때문이다.

예를 하나 들어보자

의사에게 건강검진을 받았다고 하자. 의사가 환자에게 좋은 소식과 나쁜 소식이 있다는걸 알린다. 나쁜 소식은 환자의 검사결과가 심각한 질병에 대해 양성을 띠었다는 것이고, 의사가 사용한 test방식은 99% 정확하다고 하자.(즉, 환자가 양성일 때 검진 결과가 양성일 확률이 99%이다.) 좋은 소식은, 이 질병은 매우 희귀해서 만명 중에 한명만 걸리는 병이라고 한다. 이 때

 ** 환자가 그 질병에 걸렸을 확률이 얼마일까? 

 ** 왜 그 질병이 희귀하다는것이 환자에게는 좋은 소식일까?

해답을 찾아보자.

환자가 질병을 가질 확률 P(d) = 0.0001이고, 질병을 가지지 않았을 확률 P(~d) = 0.9999이다.

The accuracy of test는 P(t|d) = 0.99(환자가 질병이 있을 때 양성으로 판정될 확률)이고, P(t|~d) = 0.01이다.

이제 Baye's Theorem을 쓸 것이다.

$$P(d|t) = \frac{P(t|d)P(d)}{P(t)}$$

그 전에, Theorem of Total Probability를 사용해서 P(t)를 구하자.

$$P(t) = P(t|d)P(d) + P(t|~d)P(~d)$$

$$ = (0.99 * 0.0001) + (0.01 * 0.9999) $$

$$ = 0.0101 $$

따라서,

$$P(d|t) = \frac{0.99 * 0.0001}{0.0101} = 0.0098 $$

환자가 질병에 걸렸을 확률이 0.98%밖에 안되는 것이다.

이번에는 Baye's Theorem을 유도해보도록 하자. Baye's Theorem은 product rule로부터 간단하게 유도된다. 

$$ P(Y|X)P(X) = P(X|Y)P(Y) $$

확률끼리의 곱셈은 로직 연산에서 AND를 의미한다. 즉, P(Y|X)P(X)는 x가 발생했고, 그로부터의 Y의 확률을 의미하고, P(X|Y)P(Y)는 Y가 발생했고, 그로부터의 X의 확률을 의미한다.

위 식에서 P(Y)를 나누어준다.

$$ \frac{P(Y|X)P(X)}{P(Y)} = \frac{P(X|Y)P(Y)}{P(Y)}$$

오른쪽 trem에서 P(Y)는 약분된다. 그러면

$$P(X|Y) = \frac{P(Y|X)P(X)}{P(Y)}$$

위 식에서 두가지의 중요한 관찰 결과가 있다. denominator P(Y).

1) 이 division은 normalization mechanism으로 동작한다. 또한, 0 <= P(X|Y) <= 1을 만족시킨다.

prior probability of the evidence, P(Y)는 X와 관계가 없기 때문에 모든 Xi의 경우에 대해서 constant하다.

2) Baye's theorem의 오른쪽 term을 P(Y)로 나눠주기 위해 우리는 P(Y)를 두가지의 다른 방식으로 계산할 수 있다. P(Y)를 단순히

$$P(Y) =\frac{rows \ where \ Y \ is \ the \ case}{rows \ in \  the \ dataset}$$

로 구하는 방법과, Thorem of total Probability로 구하는 방법이 있다.

 

예를 들기 위해 위 Table을 다시 가져와보자.

 

P(MENINGTIS = true)를 찾아보자.

먼저, 단순한 게산 방식으로 MENINGTIS = true인 데이터의 수는 3, 총 데이터의 수 10, 따라서 0.3으로 계산하는 방법이 있다.

두번째로, Theorem of total probability를 사용하면,0.7*0.2587 +0.3* 0.3333 = 0.3이고,

0.4 * 0.25 + 0.6 * 0.3333= 0.3이다.