[빅데이터] 6. Bayesian Belief Networks

|

Bayesian Belief Networks


 Naïve Bayesian classifier에서는 속성간에 독립적이라는 가정으로 분류를 했었다. 하지만 속성간에 서로 영향을 주는

 경우에는 나이브 베이즈 분류기를 사용하지 못 한다. Bayesian Belief Networks는 속성간에 의존을 허용한다.



1.      기본 개념 및 메커니즘.


n  Naïve Bayesian classifier는 클래스 조건 독립(class conditional independence)를 가정해서 분류를 했다

   만약 이 가정이 맞다면 다른 모든 분류기 보다 가장 정확하다. 하지만 실제적으로는 그렇지 않다

   변수들간에 종속성이 존재하게 된다.


n  Bayesian Belief Networks는 다른 말로 belief networks, bayesian networks, probalilistic networks라고도 하는데 여기서는 간단히 belief networks라고 한다.


n  Belief Networks(신뢰 네트워크) 2가지의 요소(component)로 구성이 된다. 하나는 directed acyclic graphconditional probability tables(CPT)이다.


n         


n  유도된 비순환 그래프(directed acyclic graph)의 각 노드 들은 랜덤변수를 나타낸다

   변수는 이산 또는 연속성을 갖는 값일 수가 있다.


n  노드들은 실제 속성일 수도 있지만 숨겨진 변수(hidden values)도 있다. 예를 들어서 메디컬 데이터에서 증후군(syndrome)은 많은 증상(symptoms)들을 나타낸다.


n  각각의 선들은 확률적인 의존성을 나타낸다. 만약 선이 Y에서  Z  그려졌다면, Y는 부모 또는 직전의 전임자(immediate predecessor)라고 부르고 Z Y의 자손(descendant)이라고 부른다.


n  각각의 변수는 부모가 주어졌을 때 변수의 자손이 아닌 것에는 조건 독립(conditionally independent)이다.


n  (a)의 그림에서 폐암(LungCancer)는 가족력과 흡연하는지에 따라서 영항을 받게 된다. 주의 할점은 만약 환자가 폐암이란 것이 주어졌을 때(알때) PositiveXRay는 가족력과 흡연 변수에 독립적이게 된다. 즉 이미 폐암이라는 것을 알 때 가족력과 흡연은 추가적인 정보를 제공해주지 않기 때문에 독립적이다. 폐암은 부모가 주어졌을 때 폐기종(Emphysema)와 독립적이다.


n  신뢰 네크워크는 각각의 변수에 대해서  하나의 conditional probability table(CPT)을 갖는다. (b)는 폐암에 대한 CPT를 보여주는데 좌측상단과 우측하단은 각각 다음 식으로 표현이 된다.



n  각각의 변수(variable)은 부모가 주어졌을 때 그것의 자손이 아닌 것에 대해서는 조건적으로 독립적이므로 아래의 식처럼 각각의 확률을 구해서 곱하면 확률을 구할 수가 있다.



여기에서     X의 변수들의 특정한 조합의 확률을 나타내고,   

는 각각의 변수Y에 대한 CPT에 해당하는 항목들이다.


n  신뢰 네트워크는 많은 잘 알려진 문제점에 대한 모델로 사용되어 왔다. 하나의 예로 유전자 연관 분석(genetic linkage analysis)가 있다(예를 들어서 유전자를 염색체에 매핑하는것)


n  또한 컴퓨터 비전(Computer vision)(예를 들어서, 이미지 복구나 스테레오 비전)에서도 Belief Networks를 사용해서 많은 혜택을 보았다. 이외에도 문서와 텍스트 분석, 의사 지원 시스템 민감도 분석등에서 사용되어지고 있다.



2.      Training Belief Networks.


n  신뢰 네크워크를 Training하는 데에는 많은 방법이 있다. Network topology( layout of nodes and arcs)는 사람에 의해서 만들어 지거나 아니면 자료로부터 추론되어서 구성되어질 수 있다. 


n  만약에 network topology를 알고 있고 변수가 명확하다면 network를 훈련하는 것은 쉽다. 하지만 변수가 명확하지 않고 숨겨져 있을 때는 변수를 찾는데는 다양한 방법이 존재한다. 여기에서는 gradient descent(경사도 하강법)를 설명한다. –이것을 계산해주는 패키지 소프트웨어가 있다.


n  경사도 하강법 greedy hill-climbing을 사용한다. 반복할 때마다 가장 가파른 경사도를 선택해서 값을 업데이트 해주고 다시 수행을 반복해서 최적의 값으로 수렴하게 한다.


n  Gradient descent 방법


-초기   는 임의의 값으로 설정이 된다.


     Compute the gradients



데이터 튜플에서 각각의 변수에 대해서 부모의 확률을 구해서    로 나눈 값들을 모두 합해서 구해준다.


     Take a small step in the direction of the gradient



  learning late를 의미하며 수렴속도를 조절한다. 이 값은 작은 상수이다.

1번에서 구한 값을 기존의    에 더해서 새로운 가중치를 생성한다.

이렇게 해서 극대점(확률이 가장 높아지는 지점)을 찾는다.


     Renormalize the weights

가중치가 확률이기 때문에 0에서 1범위 안에 들어야 한다. 따라서 이 범위를 벗어날 수 있으므로 

재정규화를 해준다.



참고문헌:Data Mining Concepts and Techniques, 3rd Edition, Jiawei Han & Micheline Kamber

저작권 문제가 발생시 삭제될 수 있습니다.

And