Bayesian Network
BAYESIAN NETWORK
I. A Brief Introduction
아래 내용은 A Brief Introduction to Graphical Models and Bayesian Networks 에서 발췌 및 번역하고 그리고 제가 알고 쉽게 중간에서 각색한 부분도 없지 않고, 특히 Gurugail.com 게시판에 등록되어 있는 내용을 마음대로 수정한 것입니다. 참고 URL
Bayesian Network(이하 BN)는 쉽게 말하면 "확률 이론과 그래픽 이론의 결합으로 이루어진 그래픽 모델(Graphical Models)"이라고 짧게 표현될 수 있다. 확률 이론은 제목에서 알 수 있듯이 Bayesian 확률 이론이 기본이 되며, 그래픽 모델은 상호 확률적인 연관 관계를 구조적으로(그래프) 연결시킨다는 의미이다. 결국 Bayesian 이론을 그래프적으로 표현한 방법론이긴 하지만 내부적으로 들어가면 상당히 복잡하다. 여기서는 복잡한 이론보다는 기본 개념에 대한 이해를 돕고자 한다.
II. BN의 그래픽 표기법(Representation)
그래픽을 구성하는 데 있어 노드간 연결이 방향성(Directed or Undirected)을 가질수도 있고, 또 노드간 연결 구조가 순환성(Cyclic or nonCyclic)이 될 수도 있듯이 여러 가지가 가능하다. Baysian Network은 DAG (Directed Acyclic Graph) 구조를 지닌다. 즉 노드간 연결이 방향성이 있으며 비 순환적인 구조가 기본로 이루어진 셈이다. BN의 그래프 예제를 살펴보자. 아래와 같이 생긴 구조로 무척이나 간단한 구조처럼 보이기도 하지만 BN으로 구성된 것이다.

위 그래픽 모델에서, 각 노드는 랜덤 변수(Random Variables)를 나타내며, 호는 노드들간의 관계성을 나타낸다. 즉, 노드간 관계에 따른 (조건부) 확률이다. 중요한 사실은 위와 같은 그래픽 표현만으로 각 노드에 대한 완전 확률 분포도?(Fully Joint Probabilty Distribution)의 구성 표현이 가능하다라는 것이다. 이와 같이 간결한 그래프 표현만으로 모든 노드들의 결합 확률 분포들이 표현 가능한 이유는 그래프로 이미 확률 노드들 간의 조건(dependency)들이 표현되었기 때문이다. BN에서의 각 노드마다의 테이블 확률 표시는 바로 조건부 확률을 나타내며, 위 예에서 "날씨가 흐릴 때 비가 올 확률", 즉 P(R=T|C=T) = 0.8 (우측 테이블에서 바로 확인 가능)이다.
만약 어떤 상황을 BN으로 구성한 다면 어떻게 해야 할까? 보통 아래와 같은 생각의 순서를 따른다고 한다.
- 시스템을 표현할 수 있는 노드 구성
- 노드와의 연결성 구성 (Arc 구성)
- 확률 테이블(CPT) 구성 - 노드간의 조건부 확률 구성
하면 모든 것이 끝난다. 단, 중요한 사실은 노드간의 조건부 독립(Conditional Indendence)의 특성을 부여하면서 구성해야 된다는 사실이다. 생뚱맞게 조건부 독립이라는 말은 무슨 말인가? 그래프를 구성하기 위한 최소한의 조건으로 생각하자. 조건부 독립을 확인하기 위한 D-seperation 알고리즘?도 있고 하니 자세한 설명은 확률책을 찾아서 보거나 위키 설명 조건부 독립을 참고하자. 위의 예에서는 스프린쿨러(S)가 동작할 경우와 비가 올 경우는 흐린날(C)이라는 조건에서 서로 조건부 독립이다. 확률적인 독립과 유사하다. 확률적인 독립이 두 개의 확률이 독립적이어 서로 두 경우 확률이 영향을 받지 않는다는 것이다. 조건부 독립은 바로 조건이 주어질 경우 조건에 따른 확률들이 서로 독립인 것 뿐이다.
위와 같은 BN이 구성되면, "잔디가 젖었을 때(W), 스프린쿨러(S)가 동작하였을 확률"을 아래 식처럼 직접 계산할 수 있다. 확률 테이블(CPT)에 직접 표현이 되지 않았지만, BN의 기능 중 추론이라는 용어를 사용한다. (결국 확률 계산인 셈이다.)

II. 추론(Inference)
BN에서 추론이란 무엇일까, 어떤 의미를 추론이라고 할까? BN에서 추론이란 "알고 있는 확률변수를 이용해서 원하는(알고자 하는) 확률값을 구하는 과정"이라 할 수 있다. 위의 과정이 바로 추론과정이다. 위 그림의 BN에서는 Casuality(원인 -> 결과)에 따른 확률값은 표현이 되어 있고(CPT), 위 수식과 같이 "잔디가 젖었을 때(W), 스프린쿨러(S)가 동작하였을 확률"은 CPT를 이용해 바로 구할 수는 없다. 그럼으로 계산이나 Approximation 방법 등을 이용한 추론을 해야 한다. 물론 어떻게 보면 확률 계산에 불과하지만, 그러한 계산이 노드에 따라서 기하 급수적으로 증가하기 때문에 여러 가지 추론 알고리즘이 있다. (Variable Elimination, Dynamic Programming, Approximation Algorithms, etc)
여기에서 Variable Elimination을 간단히 살펴보면 추론을 하는 방법 중의 가장 기본적인 방식 중 하나이다. 기본 생각은 추론을 원하고자 하는 식을 CPT의 Factored Representation으로 표현하는 것이다. 그것은 관계 없는 변수에 대한 경우의 합계 표현으로 가능하다. 고등학교 때 배운 확률을 잘 생각해보자. Joint Probability에서 랜던 변수 X, Y가 있고, Y는 Boolean Variable이라고 가정하면 P(X=i) = P(X=i, Y=false) + P(X=i, Y=true) 인 것이 생각이 나는지... 아무튼 이와 같은 원리와 그리고 Bayes 이론을 사용해서 확률값을 구하는 방법론이 Variable Elimination 이다.
(추후 계속 ^^;...)
Recent Comments