본문 바로가기
Research/Machine Learning

Bayesian Network

by 곽동현 IMCOMKING 2015. 3. 10.

베이지안 네트워크 (Bayesian Network)

베이지안 네트워크는 Naive Bayes 모델의 빈약한 인과관계 구조(1 depth)를 훨씬 복잡하게 표현할 수 있는 조건부 확률 기반의 Probabilistic Graphical Model(PGM) 이다.

베이지안 네트워크의 핵심은 다음과 같다.

1. 조건부 확률을 사용한 인과관계 모델링
2. 인과관계 모델(=structure)은 사람이 만든다.
3. 그 모델의 조건부 확률 값을 데이터로부터 학습한다.

예를 들어 어떠한 일련의 사건과 관련이 있다고 생각되는 Binary(True/False) variable이 5가지라고 생각해보자. 그런데 이 변수들이 서로 복잡한 구조의  인과성을 가질 수 있다. 아주 유명한 아래의 그림을 예시로 들 수 있다.

Conditional probability of two conditional independent events in ...

만약 단순히 5가지 변수들이 가진 모든 경우의 수를 고려한다면 우리는 5가지 확률 번수의 joint probability, P(J, M, A, B, E)를 총 32가지의 경우의 수에 대해 분석을 하면 된다. 그러나 만약 변수가 30가지라면? 2^30은 10억이 경우의 수가 존재한다. 이러한 거대한 계산을 하는 것은  너무나 비효율적일 수 밖에 없다.

그런데 만약 우리가 위와 같이 생긴 인과관계 모델(PGM)을 갖고 있다면 계산해야하는 경우의 수를 훨씬 더 줄일 수가 있다. 그러면 위에서의 5가지 변수에 대한 joint probability를 조건부 확률을 이용해 훨씬 간단하게 표현할 수 있다.

P(J, M, A, B, E) = P(J|A)*P(M|A)*P(A|B)*P(A|E)*P(B)*P(E)

이러한 과정을 markovian factorization을 이용한 d-seperation이라고 하며, 32가지의 경우의 수를 22가지로 줄일 수 있게 된다. 그것이 가능한 이유는 P(J|M) 과 같은 케이스에 대해서 고려할 필요가 없어졌기 때문이다.
(이때 BN에는 체인, 포트, 콜리더 세가지 유형만이 존재함)


* 번외로 조건부확률의 경우 두가지 확률변수간에 인과관계 즉, 방향성이 존재한다. 그러나 Markov Random Field(MRF)의 경우 이러한 방향성을 가정하지 않으므로 조건부확률이 아니라 확률 변수간의 종속/독립을 사용한다는 점에서 큰 차이가 있다. 따라서 BN은 directed PGM에 해당하고 MRF는 undirected PGM에 해당한다. 

* BN의 장점은 PGM을 잘 설계하고, 많은 데이터로 학습 시켜서 좋은 모델을 만들었다면, 등장한 모든 변수들에 대해 확률을 계산하는 inference가 매우 강력하다는 점이다. 즉 Mary가 전화했을 때 지진이 났을 확률? 같은 것을 구하는 것이 매우 쉽다.(보통 시험에 나온다.)


- Structure Learning: 베이지안 네트워크에서 각 변수들간의 조건부 확률을 모델링하는 구조를 말한다. 기본적으로 BN의 PGM모델은 사람이 정의하는 것이나, 이러한 structure조차도 ML로 학습하려는 시도라고 볼 수 있다. 그러나 매우 학습이 어렵고 잘되지 않는다. 만약 structure를 사람이 설계한다면 이는 rule-based system으로 PGM을 만들고, 그 확률은 ML로 구한 것이 된다.

- Naive Bayes: 이러한 베이지안 네트워크에서 오직 class label에 대항하는 확률 변수 하나만을 condition으로 나머지 모든 변수들이 조건부확률을 가진 매우 간단한 구조를 갖고 있다. 즉 나이브 베이즈 역시 아주 단순한 구조를 가진 BN이라고 말할 수 있다.

- Estimator베이지안 네트워크의 구조가 결정되고나면 각 변수들의 확률을 데이터로부터 계산하여, 그 확률 테이블을 채워야 하는데 이를 채워주는 알고리즘을 의미한다. 이 확률을 estimator에 prior를 이용할 경우 MAP estimation을 할 수 있고, 이는 데이터가 부족한 사건에 대한 regularization으로 볼 수 있다. 이를 smoothing이라고 표현한다.

- 베이지안 네트워크에서 확률 테이블의 합이 1이 아닌 이유
공부할 때 한가지 헷갈리는 점은 이 확률테이블을 세로로 다 더하면 1이 되어야하지 않는가?라는 생각이다. 확률테이블은 여러가지 조건의 조합에서 해당 변수가 true가 되는 확률을 의미한다. 즉 true인 확률들만이 확률테이블에 기록되므로 세로로의 합은 의미가 없다. 반대로 가로로(보통 그림에는 생략되어 있지만), false일 확률과 true일 확률의 합이 1인 것이다. 즉 estimator를 통해 결정된 획률은 오직 해당 변수가 true일 확률이며, false는 당연히 true가 결정되는 순간 1-p로 바로 정해지므로 표에 생략한 것이다.


- 공부자료

3-bayesian_networks.pdf

이 pdf의 64page를 보면 smoothing이라는 것이 나온다. 이 때 smoothing이란 prior를 적용하여 확률들의 초기값을 정해준 것을 의미한다. Multinomial인 경우(변수가 가질 수 있는 값이 3가지 이상), dirichlet 분포를 prior로 적용한다. 이것은 아주 쉽게 확률을 계산하는 식의 분자 분모에 일정한 수 '알파'를 더해서 초기값을 지정해주는 방식으로 구현된다.


Bayesian_Networks.pdf

problem.pptx

Bayesian_Networks.ppt





# 정리되지 않은 노트


디세퍼레이트 - 다이렉트 세퍼릿 즉 따라라면 막힌다. 두변수간에 조건부독립을 알아내는걸말함

체인과 포크는 똑같은방식으로 해석가능.
두 변수가 연결될수있는 길목 중간의 변수하나가 고정=기븐, 이면 두변수는독립임.
두변수간의 가능한 길목이 전부 기븐이어야함.

콜라이더는 역방향이 기븐으로 주어지지않고 위쪽만 기븐이어야 독립임.
역방향이주어지면 확률에영향을미치나봄

역방향 즉 디센던트가 주어지면 독립인 녀석들의 길이 열림. 즉 디펜던시가 생김

학률분포란 그냥 연속확률변수의 확률을 히스토그램처럼 함수로그린것
확률변수가 가질수있는 각경우의 확률


베이지안넷은 사람이 직접모델링을 한다음 각 확률을 지정해서 추론이가능. 또는 각확률을 데이터기반으로 정할수있음. 또는 모델을 데이터기반으로 정힐수있음.

그다음 주어진상황에서의 추론이가능
두변수간의 인과관계를 알수도있음
코릴레이션 즉 상관관계는 알아내기쉬운데 코잘리티 즉 인과관계를 알아내는건매우어려움.
날이덥다. 아이스크림이잘팔린다. 싸움이많아진다. 셋다상관관계는있으나 화살표의 방향을 알아내려면 매우어려움. 싸워서 아이스크림을많이산다?! ㄴㄴ임 공통된원인에서 인과가와야함

메인 교재: 어 튜토리얼 온 러닝 위드 베이지안네트워크 바이 헤커맨
실험 툴:genie
-

인공지능은 룰베이스랑 머신러닝 두가지가있음
룰베이스=전문가시스템,널리지엔리즈닝

러닝이란 컴터 스스로 룰을 알아내는것

디비구조도 뭔가 러닝형식으로바뀌어야할듯..



-
베이지안 네트워크의 러닝은 구조를 학습하는 건 방법이 있긴있지만 잘 러닝이 안됨. 그래서 보통 모델을 사람이 정하면 그 변수의 확률분포를 데이터 카운트기반으로 학습함

-

3개의 노드로 이룰수있는구조는
테일투테일-포크-산모양
헤드투테일- 체인- 직선모양
--이 두개는 가운데가 기븐이어야 양쪽이독립
헤드투헤드-콜리더 - 역 산모양
--이건 가운데가 기븐이 아니어야 양쪽이독립

이런방식의 확률전달을 빌리프 프로퍼게이션이라함. 메시지패싱이라고도함. 동의어

메스즈패싱중
이그젝트 인퍼런스
섬프로덕트/맥스프로덕트/정션트리 알고리즘

어프록시메이트 인퍼런스=실제문제용은 분포가 복잡해서 근사를해야햄
루피 빌리프프로퍼게이션.몬테칼로메세드, 베리에이셔널 메서드

몬테칼로메서드는 다음두가지
시퀀셜 몬테칼로/마코프체인 몬테칼로


디 세페레이션 : 두노드가 독립이려면 두노드로 연결되는 길이 위의 세가지 경우에 전부 막혀있여함. 그러면 서로독립이다.

마코프블랭킷은 이 3가지를 다막아서 즉,기븐으로줘서 가운데있는 변수가 나머지모든변수와 독립이되는 케이스

베이지안네트워크는 각변수에 확률분포를 가정함. 이항이면 베르누이,바이노미얼분포 다항이면 드리슐레분포

-콘저게이트 프라이어
확률분포가 베르누이 또는 이항분포이면 프라이어로 베타분포를 주어야 포스테리어가 같은모양을 유지함.
즉, b 시리즈는 베타분포가 콘저게이트

위의예는 이산 확률변수들임

연속확률변수이면 컨저게이트가 정규분포*정규분포, 스튜던드 티분포

---
이거강의자료를올려놔야할듯.상우형꺼도같이

컨저게이트=켤레

-
러닝은 파라미터러닝/스트럭쳐러닝 두가지가있음

스트럭쳐러닝이 먼저돼야 파라미터러닝이 가능

베이지안네트워크에서 스트럭쳐는 익스포넨셜의 익스포넨셜 개수가있음. 슈퍼익스포넨셜

구조에 스코어를 매기는 방식 / 비슷한구조끼리 머어케한다고??

-프리퀀티스트어프로치
파라미터러닝은 각변수의 모든 경우-기븐을고려 에대한 조건부확률표를 채우면끝남.
걍 관측한데이터를 카운트해서 채움. 렐러티브 프리퀀서라함.
이방법은 라이클리후드관점에서 매우정확하고엄밀한방법임

-베이지안어프로치
확률분포를 써서러닝하려면 표를보고 이항분포나 드리슐레분포를 프라이어로도입
렐러티브프리퀀시,사전지식을 둘다고려

즉 예를들어 이항분포라면 동전은 반반씩나올거라는 지식을고려해서
슈도카운트를 추가해서 레귤러라이즈 효과를 줌.

아 그래서 레귤러라이즈가 베이지안어프로치와 동일하구나..

베타분포는 딱 a b계수에따라 좌우로 모양이 확쏠리는게 이항문제에 적합해보임

프라이어는 사람이정해주거나 걍 유니폼으로 줌. 프라이어도 데이터로 학습하기도함

이게 다항이어도그냥 각각 이항씩 계산해서 넣어도 된다고함.90년대중반에 증명됨
렐레티브카운트의 분자에+a 변수해서 계산

테이블이 중간에비어있으면 이엠이나 깁스샘플링으로 먼저채운다음 한다고함.

프마이어를 다르게해석하면 스무딩임. 주사위를 6번던졌는데 6이 한번도안나옴. 그렇다고 0이라보면안됨. 그래서 유니폼하게 확률을 조금씩 다 주어서 하는게 라플라스 스무딩

나이브 베이즈는 독립이매우많다고 가정? 전부독립이라가정?


-
베이지안네트워크의 다른이름은 빌리프네트워크임. DBN. 신경망으로해석

-
AI에는 러닝/리즈닝/플래닝/전문가
리즈닝:인퍼런스
-
베이지안네트워크의 사용예
미싱벨류 채우기
코절리티 찾기
코절리티+확률의미해석
오버피팅을 피하는 좋은방법
-

15.Prior probability
   Prior확률이란, 파라미터의 확률 분포를 의미한다. 데이터 x는 파라미터 즉, 모델을 통해 나타내어 지는데 이 때 파라미터에사전 지식을 반영한 것이 prior이다.
16.Likelihood
  Likelihood란, P(x|θ) 로데이터 x를 파라미터 θ를 통하여 나타내는 걸 의미한다. 이값은 파라미터 즉 모델이 예측한 데이터 x의 각 확률을 전부 곱하여 구한다. 감독학습에서의 Likelihood 는 P(y|x; θ) 이며, 이는모델에 x라는 input을 넣었을 때 예측 되는 y 확률들을 전부 곱한 값을 의미한다.







'Research > Machine Learning' 카테고리의 다른 글

Unbiased Estimation, Biased Estimation  (1) 2015.03.23
Kalman Filter  (0) 2015.03.11
Bayesian Network  (1) 2015.03.10
Ada boost  (1) 2014.12.16
평균과 분산 통계적 검정, T 검정, 카이스퀘어 검정  (0) 2014.12.15
Digital Signal Processing, Parallelization  (0) 2014.11.17

댓글1