728x90

 Bayesian network는 변수들 간의 독립 관계를 directed acyclic graph 형태로 표현한 확률 그래프 모델을 말한다. 그리고 Bayes ball 알고리즘은 공을 굴리는 것에 비유하여 Bayeisan network를 통해 변수들이 서로 조건부 독립인지 아닌지를 판단하는 알고리즘이다. 이번 글에서는 Bayesian network가 무엇인지와 함께, 이들의 local structure, 그리고 Bayes ball 알고리즘을 통해 어떻게 변수들의 조건부 독립 여부를 판단할 수 있는지에 대해 알아보겠다.

Bayesian network

 Bayeisan network는 위에서 언급한 것처럼 변수들 간의 독립 관계를 directed acyclic graph 형태로 표현한 확률 그래프 모델을 말한다. 여기서 directed acyclic graph는 방향성이 있고, cycle이 없는 그래프를 말한다. 예시와 함께 Bayeisan network가 무엇인지에 대해 구체적으로 알아보겠다.

Bayesian network의 예시

 Bayeian network에서 각 노드는 하나의 변수 (random variable), 각 엣지는 변수들 간의 연결 관계를 의미한다. 예를 들어, 위 예시 그래프에서는 비가 오는지의 여부를 뜻하는 변수인 rain (R), 스프링클러를 켤지의 여부를 뜻하는 변수인 sprinkler (S), 풀이 젖는지의 여부를 뜻하는 grass wet (G)이라는 세 가지의 변수가 있다. 그리고 비가 오거나 스프링클러를 켜면 풀이 젖고, 비가 오면 스프링클러를 켜지 않기 때문에 각각이 영향을 주는 방향으로 변수가 연결되어 있음을 알 수 있다.

 또한 Bayeisan network를 활용하여 모든 변수들의 joint distribution을 다음과 같이 정의할 수 있다.

joint distribution의 식

 위 식에서 $V$는 모든 노드, $pa(v)$는 $v$라는 노드의 부모 노드를 말한다. 예를 들어, 우리의 예시 Bayeisan network에 포함되어 있는 세 개의 변수 G, S, R의 joint distribution은 다음과 같이 표현할 수 있다.

예시 Bayesian network의 joint distribution

Local structures

 Bayesian network의 local structure에는 공통의 부모를 가지고 있는 common parent, sequential하게 연결되어 있는 cascading, v 형태의 v structure의 3가지 종류가 있다. 이들 각각이 무엇인지에 대해 알아보겠다.

Common parent

 Common parent는 말 그대로 두 변수가 같은 부모를 가지고 있는 구조를 말한다. 이를 예시 그림으로 나타내면 다음과 같다.

예시 common parent structure

  위 예시에서는 학식 메뉴가 치킨마요이면 승준도 학식을 먹고 재훈도 학식을 먹는다. 즉, 부모 노드가 공통으로 자식 노드에 영향을 미치는 것이다. 이러한 구조를 우리는 common parent라고 부른다. 두 변수 A, B가 common parent C를 가지고 있으면 다음과 같은 조건부 독립이 성립한다. 즉, C가 주어지면 A와 B는 독립인 것이다.

Common parent의 조건부독립

Cascading

 Cascading은 세 변수가 sequential한 구조를 가지고 있는 것을 말한다. 이를 예시 그림으로 나타내면 다음과 같다.

예시 cascading structure

 위 예시에서는 재훈이 배고프면 재훈이 매점을 가는데, 재훈이 매점을 가면 승준이 (배가 안 고픈데도 의리로) 매점에 가는 것이다. 즉, 각 노드들이 sequential하게 연결되어 있는 구조를 우리는 cascading이라고 부른다. 세 변수 A, B, C가 A->B->C 형태로 연결되어 있으면 다음과 같은 조건부 독립이  성립한다. 즉, B가 주어지면 A와 C는 독립인 것이다.

Cascading의 조건부 독립

V-structure

 V-structure는 세 변수가 v 형태로 연결되어 있는 것을 말한다. 이를 예시 그림으로 나타내면 다음과 같다. 

예시 V-structure

 위 예시에서는 재훈이 바닥을 조립하고, 승준이 가구를 조립하면 윤희의 집이 완성되는 것이다. 윤희는 염치가 없다고 할 수 있다. 이것처럼 각 노드들이 v 형태로 연결되어 있는 구조를 우리는 V-structure라고 부른다. 세 변수 A, B, C가 C가 아래에 있는 V-structure 형태로 연결되어 있으면 다음과 같이 조건부 독립이 성립하지 않는다. 즉, C가 주어지면 A와 B는 독립이 아닌 것이다.

V-structure의 조건부 독립

Bayes ball 알고리즘

 이제 위 local structure들을 활용해서 각 변수가 서로 조건부 독립인지 아닌지를 판별하는 Bayes ball 알고리즘에 대해 알아보겠다. Bayes ball 알고리즘에서는 두 변수 A, B가 서로 독립인지를 알아보기 위해서 주어진 (given) 변수들은 막혀 있는 상황일 때 A로부터 B까지 공을 굴릴 수 있는지를 판단함으로써 조건부 독립 여부를 결정한다.

 이 때, 공을 굴릴 수 있는지의 여부는 간단하다. cascading 구조일 때는 가운데 노드가 given이면 공을 더이상 굴릴 수 없고, common parents 구조일 때에도 부모 노드가 given이면 공을 더이상 굴릴 수 없다. 이와 반대로 V-structure에서는 가운데 노드가 given이어야 공을 굴릴 수 있다. 말로 설명하면 어려우니, 예시와 함께 살펴보겠다. 다음과 같은 Bayesian network가 있다고 하자.

예시 Bayesian network

 하나의 예시로 우리는 A와 D가 B가 주어졌을 때 독립인지 ($A \indep D | B$)를 알고 싶다. 이를 위해서는 B가 막혀 있을 때 A로부터 D로 공을 굴릴 수 있는지를 살펴보면 될 것이다. 아쉽게도, A가 열심히 공을 굴려도 F로까지밖에 갈 수 없다. 그렇기 때문에 A와 D는 B가 주어졌을 때 독립이다.

B가 given일 때의 Bayesian network

 다른 하나의 예시로 우리는 B와 C가 A, F가 주어졌을 때 독립인지 ($B \indep C | A, F$)를 알고 싶다. 이를 위해서는 위에서 한 것과 똑같이 A, F가 주어졌을 때 B로부터 C까지 공을 굴릴 수 있는지를 알아보면 될 것이다. B는 공을 굴려 F까지 도달할 수 있고, C도 공을 굴려 E를 거쳐 F까지 도달할 수 있다. 이들은 V-structure의 가운데 노드인 F가 given이기 때문에 여기까지 공을 굴릴 수 있고, 서로 공이 만나게 되어 B와 C는 서로 독립이 아니게 된다.

A, F가 given일 때의 Bayesian network

 

 이번 글에서 우리는 Bayeisan network와 이의 local structure, 그리고 Bayesian network를 활용하여 변수 간의 조건부 독립 여부를 판단하는 Bayes ball 알고리즘에 대해 알아보았다. Bayeisan network를 활용해서 아주 다양한 딥러닝 모델들을 모델링할 수 있기 때문에, 이것의 구조에 대해 이해하는 것은 많은 도움이 될 것이다.

300x250
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기