Gaussian process(GP)는 금융이나 딥러닝 분야에서 많이 활용되면서 큰 관심을 받는 방법론이다. 하지만 Bishop의 PRML이나 Rasmussen의 GP for ML을 제외하고는 기계학습 관련 책에서는 많이 다루지 않는다. 본 포스팅은 위의 텍스트북과 관련 논문들을 한글로 정리한 자료로서 GP를 공부하고자 하는 분들에게 도움이 되었으면 하는 바람이다. 이 글을 작성하는데 도움을 받은 레퍼런스는 글 하단부에 정리되어있다.
Gaussian process
GP는 일반적인(general) 방법이다. '일반적인'이라는 단어는 다른 말로 '모델이 자유롭다' 혹은 '다른 모델을 포함할 수 있는 큰 모델'라고 할 수 있다. 그 이유에 대해서 베이지안 회귀분석의 예를 들어 설명하겠다. 먼저, GP를 공부하기에 앞서 베이지안 통계학이나 다변량 가우시안 분포에 기초적인 개념이 필요하다. 그 부분은 구글링을 통해 쉽게 찾을 수 있다.
Bayesian regression
선형모형을 생각해보자.
y=f(x)+ϵ,f(x)=x⊤β
여기서 ϵ∼N(0,σ2)인 가우시안 노이즈이다.
베이지안 회귀분석에서는 β에 대한 사전분포(prior)를 정의한다. 사전분포 역시 가우시안 분포로 정의하게 되는데 평균은 0이고 공분산행렬은 Σp를 따른다.
β∼N(0,Σp)
베이지안 추론은 추정하고자 하는 모수의 사전분포를 가능도(likelihood) 함수를 통해 사후분포(posterior)를 계산하여 업데이트하는 것이다. 가능도함수는 데이터를 반영하고 있기 때문에 사후분포는 데이터에 기반하여 사전분포가 업데이트 되었다고 해석할 수 있다. 그리고 y∣β,X의 분포는 β가 주어진 경우에는 확률변수는 ϵ뿐이며 따라서 N(x⊤β,σ2) 분포를 따른게 된다. 먼저 가능도함수(f(y∣β,X))부터 구해보자.
따라서, 주어진 데이터가 반영된 β의 사후분포도 다변량 가우시안 분포를 따르게 된다. 사후분포를 최대가 되게 하는 값은 가우시안 분포에서는 평균이다. 따라서 β의 추정치로 βˉ를 쓸 수 있다. 이를 베이지안 추론에서는 최대사후추정치(maximum a posteriori, MAP)라고 한다.
이제 위의 베이지안 회귀분석을 GP로 생각해보겠다. 먼저, GP의 정의부터 살펴보자.
Definition
Definition 1
Gaussian process is a collection of random variables, any finite number of which have joint Gaussian distribution.
Definition 2 p(f) is Gaussian process if for any finite subset {x1,x2,…,xn}⊂X, the marginal distribution over finite subset p(f) has a multivariate Gaussian distribution.
위의 두개의 정의는 같은 의미이므로 이해하거나 기억하기 쉬운 것으로 선택하면 된다. 정의에서 중요한 단어는 'finite'라고 생각되는데 우리는 모든 데이터 공간 혹은 input 공간 X은 무한하므로 고려할 수 없을 것이다. 따라서, X의 부분집합인 우리가 관측한 데이터 {x1,x2,…,xn}처럼 유한한 갯수만 고려하겠다는 의미로 이해했다. 또한, GP는 함수(function)에 대한 확률과정이다. 따라서, 무한한 함수 공간을 고려해야하 하는가에 대한 의문이 생길 수 있다. 하지만 앞에서 말했듯이 {x1,x2,…,xn}처럼 이산 집합에 대해서 함수를 다룰 것이다. 이 설명은 Bishop책의 GP 섹션 앞부분을 인용했다.
Gaussian distribution는 random variable or vector를 다루고 GP는 random variable의 function을 다룬다.
GP의 정의를 알았다면 GP를 수식으로 표현해보자. 함수 f(x)가 GP를 따른다고 하면 다음과 같이 쓸 수 있다.
f(x)∼GP(m(x),K(x,x′))
여기서, m(x)는 mean function, K(x,x′)는 covariance function이다. 관습적으로 m(x)=0으로 설정했을 경우에 편리하므로
f(x)∼GP(0,K(x,x′))
으로 쓰기도 한다.
위에서 m(x)=0으로 설정해도 되는 이유에 대해서 설명해보면 뒤에서 다루겠지만 GP는 추론에서 사전분포로 이용된다. 베이지안 회귀에서 β의 사전분포를 정의할 때 평균을 0으로 둔 것과 같은 논리이다. 사전분포일뿐 사후분포를 구하기 위해 쓰이고 추론은 사후분포를 통해 이루어진다. 해당 내용과 관련해서 stack exchange의 답변이다.
GP for Bayesian regression
이제 베이지안 회귀분석을 GP로 이해해보자. 매우 간단하다. 베이지안 회귀에서 f(x)=x⊤β을 그대로 사용해보자. 위와 같이 β의 사전분포는 N(0,Σp)이다.
GP는 f(x)=x⊤β와 같은 정확한 모델의 구조를 생각할 필요 없다. 이전 방법과 연관성으로 이해시키기 위해 베이지안 회귀분석을 예로 든 것이지 실제로는 GP는 f(x)의 사전분포를 바로 모델링해버린다. f(x)∼GP(0,K(x,x′))라고 그냥 정해버린다는 것이다. 모델의 (비선형)형태를 결정하는 것은 K(x,x′)에 따라 달라진다. 자세한 내용은 다음 포스팅에서 다루겠다.
다음 포스팅에서는 GP에서 중요한 covariance function의 역할과 GP의 두 단계 예측(prediction)과 추정(estimation)에 대해서 다루어 보겠다.