Graph theory

Machine Learning

Graphical Models & D-separation

AI - June 20, 2023

Causal graph

Causal graph는 random variable 간의 인과관계(causality)를 나타낸 그래프로써, 무언가 종속성이 있는 시스템을 표현하기 적합하다. 흔히 DAG(Directed Acyclic Graph) 로 나타낸다.

Example

예를 들어, 확률변수 x1,x2,x3x_1, x_2, x_3와 noise εi∼N(0,σi2)\varepsilon_i \sim {\cal N}(0, \sigma_i^2) 에 대하여 다음과 같은 system이 주어졌다고 하자.

x1=4+2ε1x2=3x1+4ε2x3=2x2+ε3\begin{align*} x_1 &= 4 + 2\varepsilon_1 \\ x_2 &= 3x_1 + 4\varepsilon_2 \\ x_3 &= 2x_2 + \varepsilon_3 \end{align*}

그러면, 이러한 상황을 간단히 다음과 같은 그래프로 표현할 수 있다.

x1→x2→x3↑↑↑ε1 ε2 ε3\begin{CD} x_1 @>>> x_2 @>>> x_3 \\ @AAA @AAA @AAA \\ \varepsilon_1 @. \varepsilon_2 @. \varepsilon_3 \end{CD}

Decomposition

간단히, 다음과 같은 그래프에서 joint probability p(x1,x2)p(x_1, x_2) 는 다음과 같이 분해(decomposition)될 수 있다.

x1→x2\begin{CD} x_1 @>>> x_2 \end{CD} p(x1,x2)=p(x1)p(x2∣x1)p(x_1, x_2) = p(x_1) p(x_2 | x_1)

즉, 상위 node의 probability와, 상위 node가 given일 때 하위 node의 conditional probability를 곱한 것이다. Bayesian rule을 생각하면 당연한 결과이다.

그럼, 보다 복잡한 예시를 보자.

x1→x3↓↓x2→x5↓x4\begin{equation} \begin{CD} x_1 @>>> x_3 \\ @VVV @VVV \\ x_2 @>>> x_5 \\ @VVV \\ x_4 \end{CD} \end{equation}

위와 같은 grapical model에서 joint probability p(x1,x2,x3,x4,x5)p(x_1, x_2, x_3, x_4, x_5)이는 다음과 같이 decompose 될 수 있다.

p(x1,x2,x3,x4,x5)=p(x1)p(x2∣x1)p(x3∣x1)∣p(x4∣x2)p(x5∣x2,x3)p(x_1, x_2, x_3, x_4, x_5) = p(x_1)p(x_2 | x_1) p(x_3 | x_1) | p(x_4 | x_2) p(x_5 | x_2, x_3)

이러한 분해는 DAG가 주어지면 random variable의 independence와 무관하게 항상 수행할 수 있다는 점을 꼭 기억하자.

Conditional independence

두 확률변수 A,BA, B 에 대하여 둘이 독립(Marginally independent)이라는 것은 다음이 성립함을 의미한다.

p(A∣B)=p(A)⟺p(A,B)=p(A)p(B)\begin{align*} & p(A | B) = p(A) \\ \Longleftrightarrow \quad& p(A,B) = p(A) p(B) \end{align*}

A,BA, B가 독립이면 A⊥ ⁣ ⁣ ⁣⊥BA \indep B 라고 쓴다.

두 확률변수 A,BA, B가 주어진 확률변수 CC에 대하여 조건부 독립(Conditionally independent)이라는 것은 다음이 성립함을 의미한다.

p(A∣B,C)=p(A∣C)⟺p(A,B∣C)=p(A∣C)p(B∣C)\begin{align*} & p(A | B, C) = p(A | C) \\ \Longleftrightarrow \quad& p(A,B | C) = p(A|C) p(B|C) \end{align*}

A,BA, B가 given CC에 대하여 conditionally independent이면 A⊥ ⁣ ⁣ ⁣⊥B ∣ CA \indep B ~|~ C 라고 쓴다.

D-Separation

이러한 conditional independency를 확인하기 위해서는 앞서 소개한 decomposition rule을 적용하여 실제로 수식적으로 보이는 방법이 있지만, 매번 그렇게 긴 계산을 하는 것은 너무 복잡하다.

따라서, 이러한 수고를 조금이나마 덜어줄 수 있는 '규칙'이 있다. 이를 D-separation이라고 한다.

d-separationd-separation

여기서 파랗게 색칠한 node는 given node 이다. 즉, 각 given node가 주어졌을 때, 나머지 node 간의 independency를 나타낸 그림이다.

(a) - Causal Chains

다음과 같은 chain에서 가운데 node가 given이면 나머지 node는 independent 하다.

x1→x2→x3\begin{CD} x_1 @>>> {\color{crimson}{x_2}} @>>> x_3 \end{CD}

(proof)

joint probability가

p(x1,x2,x3)=p(x1)p(x2∣x1)p(x3∣x2) \begin{align*} p(x_1, x_2, x_3) = p(x_1) p(x_2 | x_1) p(x_3 | x_2) \end{align*}

이므로, x2x_2가 given일 때 conditional probability는

p(x1,x3∣x2)=p(x1,x2,x3)p(x2)=p(x1)p(x2∣x1)p(x3∣x2)p(x2)=p(x1)p(x2∣x1)p(x2)p(x3∣x2)=p(x1,x2)p(x2)p(x3∣x2)=p(x1∣x2)p(x3∣x2)\begin{align*} p(x_1, x_3 | x_2) &= \frac{p(x_1, x_2, x_3)}{p(x_2)} \\ &= \frac{p(x_1) p(x_2 | x_1) p(x_3 | x_2)}{p(x_2)} \\ &= \frac{p(x_1) p(x_2 | x_1)}{p(x_2)} p(x_3 | x_2) \\ &= \frac{p(x_1, x_2)}{p(x_2)} p(x_3 | x_2) \\ &= p(x_1 | x_2) p(x_3 | x_2) \end{align*}

따라서 x1⊥ ⁣ ⁣ ⁣⊥x3 ∣ x2x_1 \indep x_3 ~|~ x_2

(b) - Common Cause

다음과 같은 graph에서 같은 원인(cause)를 공유하면, 그 결과는 독립이다.

x1→x3↓x2\begin{CD} {\color{crimson}{x_1}} @>>> x_3 \\ @VVV \\ x_2 \end{CD}

(proof)

p(x2,x3∣x1)=p(x1,x2,x3)p(x1)=p(x1)p(x2∣x1)p(x3∣x2)p(x1)=p(x2∣x1)p(x3∣x1)\begin{align*} p(x_2, x_3 | x_1) &= \frac{p(x_1, x_2, x_3)}{p(x_1)} \\ &= \frac{p(x_1) p(x_2 | x_1) p(x_3 | x_2)}{p(x_1)} \\ &= p(x_2 | x_1) p(x_3 | x_1) \end{align*}

따라서 x2⊥ ⁣ ⁣ ⁣⊥x3 ∣ x1x_2 \indep x_3 ~|~ x_1

(c) - Common Effect

아마도 셋 중 가장 특이한 녀석일 것이다. 다음과 같은 그래프가 있다.

x2 ↓x1→x3\begin{CD} @. x_2 \\ @. @VVV \\ x_1 @>>> {\color{crimson}{x_3}} \end{CD}

여기서, x3x_3이 주어지지 않으면 x1⊥ ⁣ ⁣ ⁣⊥x2x_1 \indep x_2 이다. 하지만, x3x_3이 주어지면 독립이 아니게 된다.

이는 예시로 이해하는 것이 쉽고 빠르다.

예를 들어 불이 나거나(x1x_1) 도둑이 들면(x2x_2) 경보기가 울린다(x3x_3)고 하자. 평상시에는 불이 나는것과 도둑이 드는 것은 독립적이다. 하지만, 어느날 자다가 경보가 울려서 잠이 깼다. (x3x_3가 관측됨) 그러면 여전히 불이 나는것과 도둑이 드는 것이 독립적일까? 아니다.

만일 불이 나는 것을 확인했다면 도둑이 들었을 확률은 매우 낮아진다. 즉, 불과 도둑 간의 relation이 생긴다1↗는 것이다.

이들을 적절히 이용하면 빠르게 causal graph를 해석할 수 있다.

Footnotes

  1. 여기서는 음의 상관관계 ↩↗