<Causal Inference> 베이지안 네트워크 모델 <2. 확률 추정>
Bayesian Network Model
0. 정의
1. 구조 학습(Structure Learning)
2. 확률 추정(Parameter Estimate)
3. 구조 학습 문제점 및 해결(NOTEARS algorithm)
2. 확률 추정(Parameter Estimate)
베이지안 네트워크 모델에서 구조 학습이 완료되면,
각 노드 별 구체적인 조건부 확률분포(CDP)를 추정하는데, 이를 매개변수 추정이라고 한다.
이 때 조건부 확률은 부모 노드가 주어졌을 때의 각 노드에서 값이 발생하는 확률이다.
일반적인 확률 추정 방식으로는 최대우도 추정(MLE)과 베이지안 추정(Bayesian Estimation)을 사용한다.
최대우도 추정(Maximum Likelihood Estimation, MLE)
이 방법은 모든 노드의 조건부 확률을 결합해서 전체 네트워크의 최대우도를 찾는 방법이다.
각 노드 \(X_i\)에 대해, 그 부모 노드 집합 \(Pa(X_i)\)가 주어졌을 때의 조건부 확률 분포 \(P(X_i | Pa(X_i))\)를 추정하게되며,
이때 \(X_i\)가 이산형 변수일 경우와 연속형 변수일 경우로 구분해서 연산한다.
추정 순서는 A. 이산형 데이터 또는 B. 연속형 데이터 조건부 확률 계산 \( \rightarrow\) C. 최대우도 계산 순이다.
A. 이산형 데이터의 조건부 확률
- 1. 데이터 카운팅:
• \(N(x_i, pa_i)\): \(X_i = x_i\)이고 \(Pa(X_i) = pa_i\)인 데이터 포인트의 수.
• \(N(pa_i)\): \(Pa(X_i) = pa_i\)인 데이터 포인트의 수. - 2. 조건부 확률 계산:
\(P(X_i = x_i | Pa(X_i) = pa_i) = \frac{N(x_i, pa_i)}{N(pa_i)}\)
# 예시
노드 \(X_i\)가 이산형 변수이고, 가능한 값이 {0, 1}이며,
부모 노드 \(Pa(X_i)\)가 두 가지 값 {0, 1}을 가질 수 있다고 가정
데이터셋에서 다음과 같은 카운트를 얻었다고 가정
• \(N(X_i = 0, Pa(X_i) = 0) = 30\)
• \(N(X_i = 1, Pa(X_i) = 0) = 20\)
• \(N(X_i = 0, Pa(X_i) = 1) = 10\)
• \(N(X_i = 1, Pa(X_i) = 1) = 40\)
따라서 조건부 확률은:
• \(P(X_i = 0 | Pa(X_i) = 0) = \frac{30}{50} = 0.6\)
• \(P(X_i = 1 | Pa(X_i) = 0) = \frac{20}{50} = 0.4\)
• \(P(X_i = 0 | Pa(X_i) = 1) = \frac{10}{50} = 0.2\)
• \(P(X_i = 1 | Pa(X_i) = 1) = \frac{40}{50} = 0.8\)
B. 연속형 데이터의 조건부 확률
연속형 데이터의 경우 가우시안 분포(정규 분포)를 가정하는 것이 일반적이다.
-
- 1. 평균과 분산 계산:
• 평균 \(\mu_{x_i | pa_i}: Pa(X_i) = pa_i\)인 경우의 \(X_i\) 값들의 평균.
• 분산 \(\sigma^2_{x_i | pa_i}: Pa(X_i) = pa_i\)인 경우의 \(X_i\) 값들의 분산. - 2. 가우시안 조건부 확률 분포:
\(P(X_i | Pa(X_i) = pa_i = \mathcal{N}(X_i; \mu_{x_i | pa_i}, \sigma^2_{x_i | pa_i})\)
- 1. 평균과 분산 계산:
# 예시
노드 \(X_i\)가 연속형 변수이고, 부모 노드 \(Pa(X_i)\)가 하나의 값을 가질 수 있다고 가정
데이터셋에서 \(Pa(X_i) = pa_i\)인 경우의 \(X_i\) 값이 {2.1, 2.5, 2.8, 3.0, 3.2}라고 가정
• 평균 \(\mu_{x_i | pa_i} = \frac{2.1 + 2.5 + 2.8 + 3.0 + 3.2}{5} = 2.72\)
• 분산 \(\sigma^2_{x_i | pa_i} = \frac{(2.1 - 2.72)^2 + (2.5 - 2.72)^2 + (2.8 - 2.72)^2 + (3.0 - 2.72)^2 + (3.2 - 2.72)^2}{5} = 0.174\)
따라서 조건부 확률 분포는:
\(P(X_i | Pa(X_i) = pa_i) = \mathcal{N}(X_i; 2.72, 0.174)\)
C. 최대우도 계산
각 노드의 조건부 확률을 결합해서 전체 네트워크의 우도를 계산하며,
이 때 우도를 최대화 하는 파라미터 \( \theta\) 를 찾는 것이다.
\( L(D | \theta, G) = \prod_{i=1}^n \prod_{j=1}^m P(x_{ij} | pa_{ij})\)
여기서 \(x_{ij}\)는 데이터셋 \(D\)의 \(j\)-번째 샘플에서 \(i\)-번째 노드의 값, \(pa_{ij}\)는 그 부모 노드의 값이다.
베이지안 추정(Bayesian Estimation)
MLE 대신 사용할 수 있는 확률 추정 방법으로,
사전 확률을 도입해서 small 데이터이거나 신뢰성이 낮은 경우 안정적인 추정을 가능하게 해준다.
베이지안 추정에서는 사전 확률분포와 각 노드의 부모노드 조건부 데이터 카운팅을 이용해 사후 확률분포를 계산하고,
사후 확률분포로부터 최종 조건부 확률을 추정한다.
베이지안 추정의 순서는 A. 사전 확률분포 \( \rightarrow \) B. 사후 확률분포 \( \rightarrow \) C. 조건부 확률 추정 순이다.
A. 사전 확률분포 \( \rightarrow \) B. 사후 확률분포
이산형 데이터에서는 일반적으로 디리클레 분포(Dirichlet distribution)을,
연속형 데이터에서는 정규-정규 위계 모델(Normal-Normal Hierachical Model) 을 사전 확률분포로 사용한다.
사후 확률분포는 사전 확률분포와 동일한 분포를 갖는다.
- 디리클레 분포:
- 사전:
- \(\text{Dir}(\alpha_1, \alpha_2, \ldots, \alpha_k) \), \( \alpha_i \)는 사전 매개변수
- 사후:
- 사전 분포가 \(\text{Dir}(\alpha_0, \alpha_1)\), 데이터로부터 카운트 \(N(x_i, pa_i)\)을 얻음을 가정
\( P(X_i = x_i | Pa(X_i) = pa_i, D) \propto \text{Dir}(\alpha_0 + N(X_i = 0, Pa(X_i) = pa_i), \alpha_1 + N(X_i = 1, Pa(X_i) = pa_i)) \)
- 사전 분포가 \(\text{Dir}(\alpha_0, \alpha_1)\), 데이터로부터 카운트 \(N(x_i, pa_i)\)을 얻음을 가정
- 사전:
- 정규-정규 위계모델:
- 사전:
- \( \mu \sim \mathcal{N}(\mu_0, \sigma_0^2) \)
- \( \sigma^2 \sim \text{Inverse-Gamma}(\alpha_0, \beta_0) \)
- 사후:
- \( \mu | D \sim \mathcal{N}\left(\frac{\mu_0 / \sigma_0^2 + \sum x_i / \sigma^2}{1 / \sigma_0^2 + n / \sigma^2}, \frac{1}{1 / \sigma_0^2 + n / \sigma^2}\right) \)
- \( \sigma^2 | D \sim \text{Inverse-Gamma}\left(\alpha_0 + \frac{n}{2}, \beta_0 + \frac{1}{2} \sum (x_i - \bar{x})^2\right) \)
- 사전:
C. 조건부 확률 추정
사후 확률분포 하에서 조건부 확률은 아래 계산식으로 구한다.
\( P(X_i = x_i | Pa(X_i) = pa_i, D) = \frac{\alpha_{x_i} + N(X_i = x_i, Pa(X_i) = pa_i)}{\sum_{k} (\alpha_{k} + N(X_i = k, Pa(X_i) = pa_i))} \)