그래프 모델
그래프 모델(graphc models) 또는 확률 그래프 모델(probablustuc graphical model)은 확률 모델을 설명하기 위해서 그래프 이론을 기반으로 계산과 수학적인 도구를 이용한다. 그래프 모델에서 사용하는 그래프들은 기본적인 알고리즘 강의에서 배운것 이며, 노드들과 이들을 연결하는 방향성이 있는 링크 또는 없는 링크들로 이뤄진다. 방향성이 있을 경우에는 화살표로 표현된다. 그래프들은 컴파일러 제작에서부터 컴퓨터네트워크 관리 까지 컴퓨터 사이언의 굉장히 다양한 부분에서 사용된다. 이런 이유로, 최단거리 찾기(플로이드와 다익스트라 알고리즘), 사이클이 있는지를 살펴보는 문제 등 활용가능한 알고리즘이 많다.
이번 장에서 그래프를 이용해 확률 분포를 표현하기 위해서는 노드들과 링크들이 무엇인지를 이러한 맥락에서 살펴볼 필요가 있다. 노드들의 경우에는 매우 명확하게 각각의 확률 변수에 대해서 정의하고, 이에 대해서 라벨을 작성하게 된다. 이 책에서는 불연속 변수에 대해서만 다뤄서 확률변수가 유한개의 가능한 값을 택하도록 한다. 연속변수는 불연속변수로 만들어서 유한개의 집한만을 선택하도록 만든다. 이것은 비록 정보를 잃게 만들지만, 풀어야 할 문제를 매우 간단하게 만든다. 대안으로 변수를 확률 밀도 함수로 정의할 수 있지만, 이는 전체문제를 이해하기 어렵게 만든다.
그렇다면 링크는 무엇을 표현하는가? 먼저, 두 개의 노드가 링크로 연결되어 있지 않다면 무슨 의미 인지 알아보자. 이 경우에는 두 변수 사이에는 어떤 관계도 없고 독립적임을 의미한다. 하지만 두 개의 노드가 다른 노드를 통해 간접적으로 연결될 수 있으므로 간단하지는 않다.
문제를 정확하게 명시하기 위해 각 변수에 대한 조건부 확률 테이블이 필요하다. 테이블의 값들은 부모 노드 중 어떤 노드들이 일어났을 때 각각의 노드가 일어날 조건부 확률을 뜻한다. 확률 P(a, b)를 알기 위해서는 P(a)와 P(b|a)에 대한 테이블이 필요하다. 노드들은 직접 값을 알수 있는 관찰 노드(Observed Nodes)들과 숨겨져 있어 유추해 내야 하는 은닉 노드(hidden or latent)들로 나뉜다.
그래프 모델의 기본적인 개념은 매우 간단하며, 더 놀라운 것은 머신러닝 알고리즘을 이해하는데, 만드는데 있어 강력한 도구가 된다는 것이다. 가장 일반적인 베이지안 신뢰 네트워크(Bayesian Belief Network) 또는 베이지언 네트워크(Bayesian Network)를 살펴보고, 어떻게 표현되는지와 모델들을 만드는 데 어려움은 무엇인지 살펴본다. 이러한 어려움이 어떻게 극복될 지 살펴보고, 이를 통해 매우 다양한 과제를 풀 수 있는 알고리즘을 살펴본다. 특히, 마르코프 랜덤 필드, 은늑 마르코프 모델(HMM, hidden markov models), 칼만 필터, 파티클 필터를 살펴보겠다.
16.1 베이지언 네트워크
이번 장에서 논할 베이지언 네트워킄 방향성 그래프이며, 그래프 안에 순환(cycle)이 없다고 가정한다. 이런 그래프들은 DAGs(Directed Acyclic Graphs)라고 부른다. 그래프 모델에서 조건부 확률 테이블과 사용될 때 이를 베이지언 네트워크라고 부른다. 이런 네트워크를 통해서 무엇을 할 수 있는지 예제를 통해 살펴보겠다.
16.1.1 예제 : 시험에 대한 두려움
그래프 모델의 놀라운 점은 조건부 확률을 그래프로부터 읽어 낼 수 있다는 점인데 그래프에 직접 링크가 존재하지 않으면 변수들은 미이 포함된 모드들이 주어진 상태에서 조건부 독립이므로 이 변수들은 필요하지 않게 된다.