<Causal Inference> 베이지안 네트워크 모델 <1. 구조 학습>
Bayesian Network Model
0. 정의
1. 구조 학습(Structure Learning)
2. 확률 추정(Parameter Estimate)
3. 구조 학습 문제점 및 해결(NOTEARS algorithm)
1. 구조 학습(Structure Learning)
베이지안 네트워크 모델링을 할 때 가장 먼저 하는 일은 구조를 학습하는 것이다.
즉, 모든 변수를 대상으로 변수 간 관계를 연결한 후 모든 조합에 대해 특정 계산을 적용해 최적의 조합을 찾는다.
이 때 계산식은 제약기반접근법(Constraint-based Approach) 또는 점수기반접근법(Score-based Approach)를 사용한다.
제약기반접근법(Constraint-based Approach)
이 방법은 각 변수의 독립성 조건을 이용해 구조를 학습하는 방법이다.
학습 순서는 A.독립성 테스트 \( \rightarrow \) B.미완성 그래프 구성 \( \rightarrow \) C.방향성 부여 순이며,
이 순서의 알고리즘을 PC 알고리즘(Spirtes, Glymour, Scheines, 1993) 이라 한다.
A. 독립성 테스트
독립성 테스트는 두 변수 X와 Y가 독립인지, 아니면 제3의 변수 Z를 조건으로 할 때 조건부 독립인지 결정하는 것이다.
즉, \(X \perp Y \) 또는 \(X \perp Y | Z \)와 같은 형태로 독립성 조건을 테스트하며,
독립성 테스트 방법은 카이제곱 테스트와 같은 통계적 검정을 이용한다.
B. 미완성 그래프 구성
초기에는 모든 변수들이 완전히 연결된 그래프를 가정하고, 독립성 테스트 결과를 바탕으로
독립성이 확인된 변수들 사이의 간선을 제거한다.
예를 들어, 초기에 변수 A와 B가 연결되었던 그래프에서 두 변수가 독립임이 확인되면,
A와 B 사이의 간선을 제거하는 것이다.
초기 완전 그래프:
A -- B -- C -- D
독립성 테스트 결과 (예: A와 C가 독립):
A -- B C -- D
C. 방향성 부여
간선을 제거한 후에는 남은 간선들에 방향성을 부여하여 방향성 비순환 그래프(DAG)를 구성한다.
방향성 부여 과정은 일반적으로 다음의 두 가지 규칙을 따르게 된다.
- v-구조(v-structure) 규칙
- 만약 A - B - C와 같은 구조가 있고 A와 C가 독립이며 B를 조건으로 할 때 종속이라면,
이는 \( A \rightarrow B \leftarrow C \) 와 같은 v-구조로 변환됩니다.
- 만약 A - B - C와 같은 구조가 있고 A와 C가 독립이며 B를 조건으로 할 때 종속이라면,
- 비순환성 유지
- 방향성을 부여할 때, 기존의 방향성을 유지하면서 그래프가 순환하지 않도록 하는 규칙이다.
점수기반접근법(Score-based Approach)
이 방법은 모든 후보 구조들에 점수를 할당하고, 탐색 알고리즘을 통해 가장 높은 점수를 가진 구조를 선택하는 방식이다.
학습 순서는 A. 점수함수 정의 및 산정 \( \rightarrow \) B. 탐색 알고리즘을 이용한 최적 구조 선택 이다.
A. 점수함수 정의 및 산정
주어진 데이터에 대해 베이지안 네트워크 구조를 평가하는 점수 함수를 정의해야한다.
일반적으로는 BIC(Bayesian Information Criterion) 또는 AIC(Akaike Information Criterion)를 사용하는데,
이 함수들은 데이터 적합도와 모델 복잡도를 동시에 고려하므로, 가장 적절한 모델 구조를 선택하게 되는 것이다.
\( \quad \text{BIC}(G) = \log P(D | G) - \frac{|\theta|}{2} \log N \)
\( \quad \text{AIC}(G) = \log P(D | G) - |\theta| \)
\(\quad\)\( \log P(D | G) \)는 구조 \( G \)가 주어졌을 때 데이터 \( D \)의 로그 우도,
\(\quad\)\( |\theta| \)는 모델 파라미터의 수, \( N \)은 데이터 샘플의 수이다.
\(\quad\)이 점수는 특정 구조 \(G\)에서 주어진 데이터 \(D\)가 얼마나 잘 설명되는지를 평가하는 것이다.
이외에, 도메인 지식을 반영한 점수 평가를 위해 BDe(Bayesian Dirichlet Equivalent)를 사용할 수도 있다.
B. 탐색 알고리즘을 이용한 최적 구조 선택
변수가 많을수록 BIC 또는 AIC를 확인해야하는 구조의 수가 Exponential 형태로 급격히 증가한다.
단순반복 루프를 통해 모든 점수를 확인하는 것은 제약이 존재하기때문에, 효율적인 탐색 알고리즘을 통해 탐색한다.
일반적으로 아래 2개의 알고리즘을 사용한다.
- 힐 클라이밍(Hill Climbing): 현재 구조에서 주변 이웃 구조의 점수를 계산하고, 가장 점수가 높은 방향으로 이동시킨다.
- 1. 초기 네트워크 설정
- 2. 주변 모든 이웃 구조에 대한 점수 계산
- 3. 점수가 가장 높은 이웃 구조로 이동
- 4. 더 이상 점수가 개선되지 않을 때까지 2, 3번 반복
- 유전자 알고리즘(Genetic Algorithm): 높은 점수의 후보구조들 사이에서 새로운 후보구조를 생성하며 비교 탐색한다.
- 1. 초기 후보 구조집합 생성 후 점수를 할당
- 2. 점수가 높은 후보 구조들 선택
- 3. 선택된 구조들을 교차 혹은 돌연변이를 생성 후 점수 할당
- 4. 점수 개선이 없을 때까지 2,3번 반복