본문 바로가기
기계학습/카이스트 강의

(카이스트 강의) Bayesian Network

by tryotto 2019. 8. 17.

1. Conditional Independence  vs.  Marginal Independence


- Conditional Independence ( 조건부 독립 ) : 

-> P(a | b, c ) = P(a | c) 만족하나, P( a | b) != P( a)

-> marginal independence는 만족하지 않는 상태임


- Marginal Independence ( 일반적인 독립 ) :

-> P( a | b) = P( a)

-> 가장 일반적인 독립 형태



2. Naive Bayes

      - Bayes 정리 : 특정 확률값을 구하기 위해서, 다른 확률값을 이용해서 구함

ex) P(A|B) = {P(B|A) * P(A)} /P(B)

** 단, 위의 조건을 이용하기 위해선 반드시 A와 B가 "독립"


      - Naive Bayes 정리 : A와 B가 독립이라는 조건이 주어져있지 않아도, 독립이라고 가정하고

        문제를 해결하는 방식


- 장점 : 

  1) 그룹이 여러개 있을때, 분류를  쉽고 빠르게 가능

  2) 실제로 독립일경우, logistic regression보다 결과도 좋고, 학습 데이터도 적게 필요

  3) 수치형 데이터 < 범주형 데이터(categorization)  유리함


- 단점 : 

  1) 학습데이터에 없고, 검사데이터에만 있는 category의 경우 확률 = 0

-> 오류 발생 (zero frequency)

-> 문제 해결 방안 : Smoothing technique + Laplace 추정

  2) 실제 상황에선 완전 독립인 상황이 많지 않음


- 활용 분야 : 스팸 메일 분류, 질병 예측, categorization에 활용


3. Typical Local Structures - 기본 용어 정리

1) Common parent : 공통 조상

- 특징 : A가 부모, B, C가 자식일때,

           P(B, C | A) = P(B | A) * P(C | A)

-> 조상 A 의 값을 알면, B와 C가 independent 하게 변한다


2) Cascading : 연쇄 관계를 가질때  (ex. A->B->C)

- 특징 : P( C | A,B) = P( C | B)

-> 중간 노드 B의 값을 알면, A와 C의 관계는 independent 하게 변한다


3) V-structure : A,B가 부모노드인데, 두 노드가 자식노드 C를 공유하고 있는 모양

- 특징 : 

-> 자식노드 C의 값을 알면, A와 B는 dependent 하게 변한다



4. Bayes Ball Algorithm

        - 목적 : A독B | C 를 만족하는가? (A와 B가 독립)

        - 방법 :

1) 주어진 노드를 색칠함

2) 맨 왼쪽의 노드를 굴려봤을때,

      - 이동이 불가능한 경우 : independent 한 상황 (양쪽 끝의 두 노드가)

      - 이동이 가능한 경우 : dependent 한 상황 (양쪽 끝의 두 노드가)


** 주의 ! V-structure의 경우, 정 반대 원리로 실행됨



5. Markov Blanket  &  D-Seperation


6. Bayesian Network

- 정의 : 여러 변수들의 joint 확률들을, 팩토리얼 계산하듯이 여러 개의 확률들의 

           곱으로 표현하는 방식

         -> 이때, bayesian network 방식을 이용한다면, parameter를 줄일 수 있어서

       조금 더 간단한 식이 나온다

- Plate Notation : 식을 조금 더 간단하게 표현할 수 있게 해줌


- 응용 (1) : Conditional Probability

      - 의의 : 변수 X에 대한 evidence set이 주어졌다고 했을때, hidden variables에

    대한 conditional probability는 무엇인가?

      - 용어 정리 : 

- hidden variable : evidence가 주어지지 않은 variable (=evidence set의 여집합)


      - 공식 사용 흐름 : 최대한, 확률 값들 안에 모든 변수들이 들어갈 수 있도록

     식을 변형해줘야 한다


- 응용 (2) : Most Probable Assignment

      - 의의 : evidence들이 주어졌을때, 가장 probable 한 assignment는 무엇인가?


      - 방식 : posteriori(=사후 확률) 응용 

-> 어떤 사건의 값을 구하고싶다면, 이전에 일어난 사건들을 확인해서 구해내자!


** B,E가 posteriori 사건이고, 이로 인한 결과 사건이 A라고 할때

-> 1) prediction : B,E -> A

- 계산 방법 : P( A | B, E )

- B,E값이 given일때, A일 확률은 무엇인가?

    2) diagnosis : A->B,E

- 계산 방법 : P( B, E | A)

- A값이 given일때, B,E일 확률은 무엇인가?


7. Marginalization and Elimination

- 전체적인 문제 해결 방식 : 

     1) Full Joint로 문제를 끌고 나간다

     2) hidden variable 에 대해 marginalize 한다

     3) Bayesian Network를 이용해서 Factorization을 한다

     4) 관측된 value들을 Factorized된 함수 식에 넣어서 전체 값을 구한다

** 단, 4번 과정에서, 좀 더 간단하게 식을 정리할 수 있으면 한다

   상수값에 대한 시그마를 계산해야 하는 경우, 시그마 바깥으로 상수값을

   뺄 수 있음을 응용한다


- Variable Elimination 방식

     1) 4번 단계에서 Factorized 된 확률 식을 끌어오자

     2) 식을 topological sort 하듯, 순서를 바꿔준다

     3) 맨 오른쪽(뒤쪽) 부터 시작해서 두개씩 짝지어서 식을 정리해준다

-> 차례대로 variable들을 줄일 수 있게 됨

 

8. Potential Function

- 문제 상황 : P( A, B, C, D )를 계산하고 싶다. 그러나, 주어진 확률값은 conditional한

                 값밖에 없다.


- 해결 방식 : Clique와 Seperator로 구분해서 확률을 구하는 방식을 활용하자 -> Potential Function


- Belief Propagation : Absortion Rule을 활용하자

      - 기본 아이디어 : 

1) 틀이 되는 베이지안 네트워크를 Potential Function으로 변형해준다

2) 해당 틀이 만들어진 상황에서, 만약에 중간에 어떤 사실을 알게됐을 경우

   (값이 관찰됐을 경우) 연쇄적으로 다음 노드의 확률이 바뀌는 것을 확인한ㄷ나

3) 이러한 성질들을 계속 이용해서, 마지막까지 구한다

-> Belief (구하게 된 확률 값) 가 전파됨 (propagate) 을 이용해서 

    구하고 있는 모습이다