Causal graph는 random variable 간의 인과관계 (causality)를 나타낸 그래프로써, 무언가 종속성이 있는 시스템을 표현하기 적합하다.
흔히 DAG(Directed Acyclic Graph) 로 나타낸다.
예를 들어, 확률변수 x 1 , x 2 , x 3 x_1, x_2, x_3 x 1 , x 2 , x 3 와 noise ε i ∼ N ( 0 , σ i 2 ) \varepsilon_i \sim {\cal N}(0, \sigma_i^2) ε i ∼ N ( 0 , σ i 2 ) 에 대하여 다음과 같은 system이 주어졌다고 하자.
x 1 = 4 + 2 ε 1 x 2 = 3 x 1 + 4 ε 2 x 3 = 2 x 2 + ε 3 \begin{align*}
x_1 &= 4 + 2\varepsilon_1 \\
x_2 &= 3x_1 + 4\varepsilon_2 \\
x_3 &= 2x_2 + \varepsilon_3
\end{align*} x 1 x 2 x 3 = 4 + 2 ε 1 = 3 x 1 + 4 ε 2 = 2 x 2 + ε 3
그러면, 이러한 상황을 간단히 다음과 같은 그래프로 표현할 수 있다.
x 1 → x 2 → x 3 ↑ ↑ ↑ ε 1 ε 2 ε 3 \begin{CD}
x_1 @>>> x_2 @>>> x_3 \\
@AAA @AAA @AAA \\
\varepsilon_1 @. \varepsilon_2 @. \varepsilon_3
\end{CD} x 1 ⏐ ↑ ε 1 x 2 ⏐ ↑ ε 2 x 3 ⏐ ↑ ε 3
간단히, 다음과 같은 그래프에서 joint probability p ( x 1 , x 2 ) p(x_1, x_2) p ( x 1 , x 2 ) 는 다음과 같이 분해 (decomposition)될 수 있다.
x 1 → x 2 \begin{CD}
x_1 @>>> x_2
\end{CD} x 1 x 2
p ( x 1 , x 2 ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p(x_1, x_2) = p(x_1) p(x_2 | x_1) p ( x 1 , x 2 ) = p ( x 1 ) p ( x 2 ∣ x 1 )
즉, 상위 node의 probability와, 상위 node가 given일 때 하위 node의 conditional probability를 곱한 것이다.
Bayesian rule을 생각하면 당연한 결과이다.
그럼, 보다 복잡한 예시를 보자.
x 1 → x 3 ↓ ↓ x 2 → x 5 ↓ x 4 \begin{equation}
\begin{CD}
x_1 @>>> x_3 \\
@VVV @VVV \\
x_2 @>>> x_5 \\
@VVV \\
x_4
\end{CD}
\end{equation} x 1 ↓ ⏐ x 2 ↓ ⏐ x 4 x 3 ↓ ⏐ x 5
위와 같은 grapical model에서 joint probability p ( x 1 , x 2 , x 3 , x 4 , x 5 ) p(x_1, x_2, x_3, x_4, x_5) p ( x 1 , x 2 , x 3 , x 4 , x 5 ) 이는 다음과 같이 decompose 될 수 있다.
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 ) 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) 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 , B A, B A , 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*} ⟺ p ( A ∣ B ) = p ( A ) p ( A , B ) = p ( A ) p ( B )
A , B A, B A , B 가 독립이면 A ⊥ ⊥ B A \indep B A ⊥ ⊥ B 라고 쓴다.
두 확률변수 A , B A, B A , B 가 주어진 확률변수 C C C 에 대하여
조건부 독립 (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*} ⟺ p ( A ∣ B , C ) = p ( A ∣ C ) p ( A , B ∣ C ) = p ( A ∣ C ) p ( B ∣ C )
A , B A, B A , B 가 given C C C 에 대하여 conditionally independent이면 A ⊥ ⊥ B ∣ C A \indep B ~|~ C A ⊥ ⊥ B ∣ C 라고 쓴다.
이러한 conditional independency를 확인하기 위해서는
앞서 소개한 decomposition rule을 적용하여 실제로 수식적으로 보이는 방법이 있지만, 매번 그렇게 긴 계산을 하는 것은 너무 복잡하다.
따라서, 이러한 수고를 조금이나마 덜어줄 수 있는 '규칙 '이 있다. 이를 D-separation이라고 한다.
d-separation
여기서 파랗게 색칠한 node는 given node 이다. 즉, 각 given node가 주어졌을 때, 나머지 node 간의 independency를 나타낸 그림이다.
다음과 같은 chain에서 가운데 node가 given이면 나머지 node는 independent 하다.
x 1 → x 2 → x 3 \begin{CD}
x_1 @>>> {\color{crimson}{x_2}} @>>> x_3
\end{CD} x 1 x 2 x 3
(proof)
joint probability가
p ( x 1 , x 2 , x 3 ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 ) \begin{align*}
p(x_1, x_2, x_3) = p(x_1) p(x_2 | x_1) p(x_3 | x_2)
\end{align*} p ( x 1 , x 2 , x 3 ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 )
이므로, x 2 x_2 x 2 가 given일 때 conditional probability는
p ( x 1 , x 3 ∣ x 2 ) = p ( x 1 , x 2 , x 3 ) p ( x 2 ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 ) p ( x 2 ) = p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 2 ) p ( x 3 ∣ x 2 ) = p ( x 1 , x 2 ) p ( x 2 ) p ( x 3 ∣ x 2 ) = p ( x 1 ∣ x 2 ) p ( x 3 ∣ x 2 ) \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*} p ( x 1 , x 3 ∣ x 2 ) = p ( x 2 ) p ( x 1 , x 2 , x 3 ) = p ( x 2 ) p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 ) = p ( x 2 ) p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 ) = p ( x 2 ) p ( x 1 , x 2 ) p ( x 3 ∣ x 2 ) = p ( x 1 ∣ x 2 ) p ( x 3 ∣ x 2 )
따라서 x 1 ⊥ ⊥ x 3 ∣ x 2 x_1 \indep x_3 ~|~ x_2 x 1 ⊥ ⊥ x 3 ∣ x 2
다음과 같은 graph에서 같은 원인(cause)를 공유하면, 그 결과는 독립이다.
x 1 → x 3 ↓ x 2 \begin{CD}
{\color{crimson}{x_1}} @>>> x_3 \\
@VVV \\
x_2
\end{CD} x 1 ↓ ⏐ x 2 x 3
(proof)
p ( x 2 , x 3 ∣ x 1 ) = p ( x 1 , x 2 , x 3 ) p ( x 1 ) = 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 ) \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*} p ( x 2 , x 3 ∣ x 1 ) = p ( x 1 ) p ( x 1 , x 2 , x 3 ) = p ( x 1 ) p ( x 1 ) p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 2 ) = p ( x 2 ∣ x 1 ) p ( x 3 ∣ x 1 )
따라서 x 2 ⊥ ⊥ x 3 ∣ x 1 x_2 \indep x_3 ~|~ x_1 x 2 ⊥ ⊥ x 3 ∣ x 1
아마도 셋 중 가장 특이한 녀석일 것이다. 다음과 같은 그래프가 있다.
x 2 ↓ x 1 → x 3 \begin{CD}
@. x_2 \\
@. @VVV \\
x_1 @>>> {\color{crimson}{x_3}}
\end{CD} x 1 x 2 ↓ ⏐ x 3
여기서, x 3 x_3 x 3 이 주어지지 않으면 x 1 ⊥ ⊥ x 2 x_1 \indep x_2 x 1 ⊥ ⊥ x 2 이다. 하지만, x 3 x_3 x 3 이 주어지면 독립이 아니게 된다.
이는 예시로 이해하는 것이 쉽고 빠르다.
예를 들어 불이 나거나(x 1 x_1 x 1 ) 도둑이 들면(x 2 x_2 x 2 ) 경보기가 울린다(x 3 x_3 x 3 )고 하자.
평상시에는 불이 나는것과 도둑이 드는 것은 독립적이다. 하지만, 어느날 자다가 경보가 울려서 잠이 깼다. (x 3 x_3 x 3 가 관측됨)
그러면 여전히 불이 나는것과 도둑이 드는 것이 독립적일까? 아니다.
만일 불이 나는 것을 확인했다면 도둑이 들었을 확률은 매우 낮아진다. 즉, 불과 도둑 간의 relation이 생긴다1↗ 는 것이다.
이들을 적절히 이용하면 빠르게 causal graph를 해석할 수 있다.