베이지안 네트워크 구조 학습을 위한 유연한 탐욕 알고리즘

베이지안 네트워크 구조 학습을 위한 유연한 탐욕 알고리즘

초록

본 논문은 분해 가능한 점수 함수를 이용해 베이지안 네트워크(BN) 구조를 정확히 탐색하는 새로운 휴리스틱 알고리즘을 제안한다. 기존의 동적 프로그래밍(DP)이나 Branch‑and‑Bound 방식과 달리, 탐욕성 정도를 조절할 수 있는 파라미터를 도입해 검색 범위를 크게 축소하면서도 최적점수의 99% 수준을 유지한다. 실험 결과, 제안 알고리즘은 큰 데이터셋에서도 실행 시간이 크게 감소하고, 별도의 외부 툴박스를 사용하지 않아도 검증이 가능함을 보여준다.

상세 분석

베이지안 네트워크 구조 학습은 변수 간의 조건부 독립 관계를 그래프로 표현하는 과정으로, 점수 기반 접근법에서는 각 가능한 DAG(Directed Acyclic Graph)에 대해 BIC, BDeu와 같은 분해 가능한 점수를 계산한다. 이러한 점수는 각 노드의 부모 집합에만 의존하므로, 전체 탐색을 효율적으로 나눌 수 있지만, 가능한 DAG의 수가 n!·2^{n\choose2}에 달해 NP‑hard 문제로 남는다. 기존의 정확한 방법인 동적 프로그래밍(DP)은 O(n·2^n) 메모리와 O(n^2·2^n) 시간 복잡도를 가지며, n이 20~30을 넘어가면 실용성이 급격히 떨어진다. Branch‑and‑Bound는 상한·하한을 이용해 탐색 공간을 가지치기하지만, 상한이 느슨하면 여전히 폭발적인 검색이 발생한다.

본 논문이 제안하는 알고리즘은 “탐욕성 파라미터(γ)”를 도입해 두 단계의 탐색을 결합한다. 첫 단계에서는 각 노드에 대해 가능한 부모 집합을 점수 순으로 정렬하고, γ에 따라 상위 k개(예: γ=0.9이면 상위 90%)만을 후보로 유지한다. 이렇게 하면 부모 집합의 조합 수가 급격히 감소한다. 두 번째 단계에서는 남은 후보 집합을 이용해 순차적인 엣지 추가·삭제·반전 연산을 수행하며, 각 연산 후에 사이클 검사를 효율적인 Union‑Find 기반 알고리즘으로 수행한다. 탐욕성이 높을수록 연산 선택이 현재 점수 향상에만 의존하고, 탐욕성이 낮을수록 후보 집합을 재평가하거나 백트래킹을 수행한다.

핵심적인 기술적 기여는 다음과 같다. 첫째, 점수 분해 특성을 활용해 부모 집합 후보를 사전 정렬하고, γ에 따라 동적으로 제한함으로써 메모리 사용량을 O(n·k) 수준으로 낮춘다. 둘째, 사이클 검사를 전역 DAG가 아닌 로컬 변경에 국한시켜 O(1)~O(log n) 시간으로 구현한다. 셋째, 알고리즘 전체를 파라미터 하나로 조정 가능한 “유연한 탐욕” 프레임워크로 설계해, 사용자는 시간 제한과 정확도 요구에 맞춰 γ를 선택할 수 있다.

실험에서는 공개 데이터셋(예: Alarm, Asia, 그리고 과제에서 제공된 실험용 데이터)과 비교 대상으로 DP와 기존의 Greedy Hill‑Climbing, Tabu Search를 사용하였다. 결과는 γ=0.95일 때 평균 실행 시간이 DP 대비 10배 이상 빨라졌으며, 최종 점수는 최적점수의 99.2%에 머물렀다. 특히 대규모 데이터(변수 수 50~100)에서는 DP가 메모리 초과로 실패하는 반면, 제안 알고리즘은 안정적으로 실행되었다. 또한, 외부 툴박스 없이 순수 파이썬 구현으로도 결과 검증이 가능했으며, 재현성을 위해 코드와 데이터가 공개되었다.

하지만 몇 가지 한계도 존재한다. 첫째, γ를 선택하는 기준이 경험적이며, 데이터 특성에 따라 최적 γ가 크게 달라질 수 있다. 둘째, 부모 집합 후보를 제한함으로써 특정 구조(예: 높은 차수의 노드)가 완전히 배제될 위험이 있다. 셋째, 현재 구현은 점수 함수가 분해 가능하고, 데이터가 완전 관측된 경우에만 적용 가능하므로, 숨겨진 변수나 불완전 데이터에 대한 확장은 추가 연구가 필요하다.

전반적으로 이 논문은 베이지안 네트워크 구조 학습에서 정확도와 효율성 사이의 트레이드오프를 실용적인 파라미터 하나로 제어할 수 있는 새로운 휴리스틱 프레임워크를 제시한다는 점에서 의미가 크다. 특히 대규모 실무 환경에서 빠른 모델 구축이 요구되는 경우, 약간의 점수 손실을 감수하고도 실행 시간을 크게 단축시킬 수 있다는 실용적 가치를 제공한다.