일전에 살펴본 Naive Bayes Classifier는 Bayes Thm에 기반한다. Bayes Thm은 P(Y|X) = P(Y)*P(X|Y) / P(X) 으로 정의된다. 이 때 만약 instance의 feature 갯수가 2개 이상일 경우, P(X1, X2, ..., Xd|Y)에 대한 데이터가 필요하다. 대략 2^d개 만큼의 데이터가 존재해야만 Y가 주어졌을 때 각 feature들의 Y/N을 알 수 있는 것이다. 그런데 이를 naive하게 feature들간의 conditional independence를 가정하여 이들을 곱의 형태로 표현한 것이 NBC다.
이 때 우리는 Y의 발생여부가 X1, X2의 확률에 미치는 영향을 위의 도식처럼 표현할 수 있다. 이 때 X1, X2는 서로 conditional independence의 관계에 놓인다.
Bayesian Network는 이처럼 random variable간의 확률적 관계를 압축적으로 표현하기 위한 이산수학 기법이다.
Bayesian Network는 세 종류의 구조로 구성된다. Common Parent, Cascading, V-structure가 그것이다.
우선 Common parent는 말그대로 동일한 부모 node를 두 자식이 공유하는 것이다. 이 경우 자식 node들은 상호 독립의 관계에 놓인다. 위 예시에선 '알람'이 event로서 부모 node의 역할을 하고, 알람이 울리거나 울리지 않았을 때의 John, Mary의 행동이 자식 node의 역할을 한다. Alarm이 울렸을때 가령 John이 경찰에 신고를 하더라도 John의 신고 자체는 Mary의 행동에 어떠한 영향도 미치지 않는다.
Cascading은 도둑-알람-Mary와 같이 node가 일렬의 관계에 놓인 상황을 뜻한다. 이 때 P(M|A)가 주어졌다면, B에 대한 evidence의 추가여부는 A가 주어진 이상 아무런 정보를 주지 못한다. 즉, given A일 때 M과 B는 conditional independent하다. 가령 충치가 나면 치통이 있을 확률이 50%라고 가정해보자. 근데 사탕을 매일 먹으면 충치가 날 확률이 70%라고 한다. 그런데 given 충치, P(치통)=50%임을 이미 알고 있는데 여기에다 사탕을 매일 먹었는지에 대한 사실이 추가된다더라도 P(치통)에는 아무런 영향을 주지 못한다.
V-structure는 도둑, 지진이 common child node를 갖게 되는 것이다. 이는 P(B,E,A)=P(B)P(E)P(A|B,E)의 관계인데 이 때 A에 대한 정보가 given이면 B와 E가 서로 dependent해진다. 가령 알람이 울렸다는 정보가 없으면 P(도둑)과 P(지진)은 서로 independent한 관계에 놓이지만, 알람이 울렸으면 P(지진)이 P(도둑)에 영향을 미친다.
위 3가지 구조를 기반으로 예시를 살펴보자.
첫째, 날씨 node는 다른 node와의 link가 없다. 따라서 날씨는 다른 node의 발생 여부에 하등 영향을 받지 않는 independent random variable임을 알 수 있다.
둘째, 치통, 구취는 충치를 common parent로 갖는 자식 node다. 이들은 충치라는 사건의 Yes/No가 관측되었을 때 각각의 발생확률이 결정되지만 상호독립의 관계에 놓여있다.
0.1% 확률로 도둑이 들고, 0.2% 확률로 지진이 난다. 이 때 도둑이 들거나 지진이 나면 알람이 울린다고 가정해보자.
알람이 울리면 John과 Mary가 나에게 특정확률로 전화를 한다. 이러한 r.v간 관계가 위처럼 graphically 묘사되어있다.
앞서 말했듯이 Bayesian Network를 활용하는 이유는 r.v의 joint prob distribution을 알기 위해서다. 만약 우리에게 P(J|A)와 P(M|A), 그리고 P(B), P(E), P(A|B,E)가 주어졌다면 우리는 각 r.v의 full joint prob distribution을 알 수 있다.
이는 일전에 살펴본 conditional prob.에 의한 것이다. P(B,E,A,J,M)=P(B)*P(E)*P(A|B,E)*P(J|A)*P(M|A)로 breakdown 할 수 있다.
'기계학습 > ML' 카테고리의 다른 글
[ML개론] (21) Inference prob. based on evidence (0) | 2022.02.26 |
---|---|
[ML개론] (20) Bayes Ball Algorithm & Factorization (0) | 2022.02.26 |
[ML개론] (18) Review on Probability (0) | 2022.02.25 |
[ML개론] (17) F-measure & Regularization (0) | 2022.02.25 |
[ML개론] (16) Occam's Razor & N-fold cross validation (0) | 2022.02.24 |