Gaussian Process의 개념

chchch·2021년 8월 21일
0

GP

목록 보기
1/1
post-thumbnail

Gaussian process(GP)는 금융이나 딥러닝 분야에서 많이 활용되면서 큰 관심을 받는 방법론이다. 하지만 Bishop의 PRML이나 Rasmussen의 GP for ML을 제외하고는 기계학습 관련 책에서는 많이 다루지 않는다. 본 포스팅은 위의 텍스트북과 관련 논문들을 한글로 정리한 자료로서 GP를 공부하고자 하는 분들에게 도움이 되었으면 하는 바람이다. 이 글을 작성하는데 도움을 받은 레퍼런스는 글 하단부에 정리되어있다.

Gaussian process

GP는 일반적인(general) 방법이다. '일반적인'이라는 단어는 다른 말로 '모델이 자유롭다' 혹은 '다른 모델을 포함할 수 있는 큰 모델'라고 할 수 있다. 그 이유에 대해서 베이지안 회귀분석의 예를 들어 설명하겠다. 먼저, GP를 공부하기에 앞서 베이지안 통계학이나 다변량 가우시안 분포에 기초적인 개념이 필요하다. 그 부분은 구글링을 통해 쉽게 찾을 수 있다.


Bayesian regression

선형모형을 생각해보자.

y=f(x)+ϵ,       f(x)=xβy = f({\bf x}) + \epsilon, ~~~~~~~ f({\bf x}) = {\bf x}^\top \beta

여기서 ϵN(0,σ2)\epsilon \sim \mathcal{N}(0, \sigma^2)인 가우시안 노이즈이다.

베이지안 회귀분석에서는 β\beta에 대한 사전분포(prior)를 정의한다. 사전분포 역시 가우시안 분포로 정의하게 되는데 평균은 0이고 공분산행렬은 Σp\Sigma_p를 따른다.

βN(0,Σp)\beta \sim \mathcal{N}({\bf 0}, \Sigma_p)

베이지안 추론은 추정하고자 하는 모수의 사전분포를 가능도(likelihood) 함수를 통해 사후분포(posterior)를 계산하여 업데이트하는 것이다. 가능도함수는 데이터를 반영하고 있기 때문에 사후분포는 데이터에 기반하여 사전분포가 업데이트 되었다고 해석할 수 있다. 그리고 yβ,Xy|\beta, {\bf X}의 분포는 β\beta가 주어진 경우에는 확률변수는 ϵ\epsilon뿐이며 따라서 N(xβ,σ2)\mathcal{N}({\bf x}^\top \beta, \sigma^2) 분포를 따른게 된다. 먼저 가능도함수(f(yβ,X)f(y|\beta, {\bf X}))부터 구해보자.

f(yβ,X)=Πi=1np(yiβ,xi)=Πi=1n12πσexp((yixiβ)22σ2)N(Xβ,σ2I)\begin{aligned} f(y|\beta, {\bf X}) &= \Pi_{i=1}^n p(y_i|\beta, {\bf x_i}) \\ &= \Pi_{i=1}^n \frac{1}{\sqrt{2\pi}\sigma}\exp{\left(-\frac{(y_i - {\bf x}_i^\top \beta)^2}{2\sigma^2}\right)} \\ & \sim \mathcal{N}({\bf X}^\top \beta, \sigma^2I) \end{aligned}

독립적인 단변량 가우시안 분포의 가능도함수는 다변량 가우시안 분포의 형태로 나왔다. 이제 사후분포(p(βX,y))(p(\beta | {\bf X}, {\bf y}))를 구해보자.

p(βX,y)p(yβ,X)p(β)exp(12σ2(yXβ)(yXβ))×exp(12βΣp1β),exp(12(ββˉ)(1σ2(XX+Σp1))(ββˉ)),N(βˉ,A1),\begin{aligned} p(\beta|{\bf X}, {\bf y}) &\propto p({\bf y}|\beta, {\bf X}) p(\beta) \\ &\propto \exp{\left(-\frac{1}{2\sigma^2}({\bf y} - {\bf X}^\top \beta)^\top ({\bf y}- {\bf X}^\top \beta)\right)} \times \exp{\left(-\frac{1}{2} \beta^\top \Sigma_p^{-1}\beta \right)},\\ &\propto \exp{\left(-\frac{1}{2}(\beta - \bar{\beta})\left(\frac{1}{\sigma^2}({\bf X}{\bf X}^\top + \Sigma_p^{-1})\right)(\beta - \bar{\beta}) \right)}, \\ &\sim \mathcal{N}(\bar{\beta}, A^{-1}), \end{aligned}

여기서,

βˉ=σ2A1XyA=σ2XX+Σp1\begin{aligned} \bar{\beta} &= \sigma^{-2}A^{-1}{\bf Xy}\\ A &= \sigma^{-2} {\bf X}{\bf X}^\top +\Sigma_p^{-1} \end{aligned}

따라서, 주어진 데이터가 반영된 β\beta의 사후분포도 다변량 가우시안 분포를 따르게 된다. 사후분포를 최대가 되게 하는 값은 가우시안 분포에서는 평균이다. 따라서 β\beta의 추정치로 βˉ\bar{\beta}를 쓸 수 있다. 이를 베이지안 추론에서는 최대사후추정치(maximum a posteriori, MAP)라고 한다.

이제 위의 베이지안 회귀분석을 GP로 생각해보겠다. 먼저, GP의 정의부터 살펴보자.

Definition

Definition 1\textbf{Definition 1}
Gaussian process is a collection of random variables, any finite number of which have joint Gaussian distribution.

Definition 2\textbf{Definition 2}
p(f)p(f) is Gaussian process if for any finite subset {x1,x2,,xn}X\{x_1, x_2, \dots, x_n\} \subset \mathcal{X}, the marginal distribution over finite subset p(f)p({\bf f}) has a multivariate Gaussian distribution.

위의 두개의 정의는 같은 의미이므로 이해하거나 기억하기 쉬운 것으로 선택하면 된다. 정의에서 중요한 단어는 'finite'라고 생각되는데 우리는 모든 데이터 공간 혹은 input 공간 X\mathcal{X}은 무한하므로 고려할 수 없을 것이다. 따라서, X\mathcal{X}의 부분집합인 우리가 관측한 데이터 {x1,x2,,xn}\{x_1, x_2, \dots, x_n\}처럼 유한한 갯수만 고려하겠다는 의미로 이해했다. 또한, GP는 함수(function)에 대한 확률과정이다. 따라서, 무한한 함수 공간을 고려해야하 하는가에 대한 의문이 생길 수 있다. 하지만 앞에서 말했듯이 {x1,x2,,xn}\{x_1, x_2, \dots, x_n\}처럼 이산 집합에 대해서 함수를 다룰 것이다. 이 설명은 Bishop책의 GP 섹션 앞부분을 인용했다.

Gaussian distribution는 random variable or vector를 다루고 GP는 random variable의 function을 다룬다.

GP의 정의를 알았다면 GP를 수식으로 표현해보자. 함수 f(x)f(x)가 GP를 따른다고 하면 다음과 같이 쓸 수 있다.

f(x)GP(m(x),K(x,x))f(x) \sim \mathcal{GP}(m(x), K(x, x'))

여기서, m(x)m(x)는 mean function, K(x,x)K(x,x')는 covariance function이다. 관습적으로 m(x)=0m(x)={\bf 0}으로 설정했을 경우에 편리하므로

f(x)GP(0,K(x,x))f(x) \sim \mathcal{GP}({\bf 0}, K(x, x'))

으로 쓰기도 한다.

위에서 m(x)=0m(x)={\bf 0}으로 설정해도 되는 이유에 대해서 설명해보면 뒤에서 다루겠지만 GP\mathcal{GP}는 추론에서 사전분포로 이용된다. 베이지안 회귀에서 β\beta의 사전분포를 정의할 때 평균을 0\bf 0으로 둔 것과 같은 논리이다. 사전분포일뿐 사후분포를 구하기 위해 쓰이고 추론은 사후분포를 통해 이루어진다. 해당 내용과 관련해서 stack exchange의 답변이다.

GP for Bayesian regression

이제 베이지안 회귀분석을 GP로 이해해보자. 매우 간단하다. 베이지안 회귀에서 f(x)=xβf({\bf x}) = {\bf x}^\top \beta을 그대로 사용해보자. 위와 같이 β\beta의 사전분포는 N(0,Σp)\mathcal{N}({\bf 0}, \Sigma_p)이다.

E(f(x))=E(xβ)=xE(β)=0V(f(x))=E(f(x)f(x))=xE(ββ)x=xΣpx\begin{aligned} \mathbb{E}(f({\bf x})) &= \mathbb{E}({\bf x}^\top \beta) = {\bf x}^\top \mathbb{E}(\beta) = {\bf 0} \\ \mathbb{V}(f({\bf x})) &= \mathbb{E}(f({\bf x})f({\bf x}')^\top) = {\bf x}^\top \mathbb{E}(\beta\beta^\top){\bf x}' = {\bf x}^\top \Sigma_p{\bf x}' \end{aligned}

따라서,

f(x)GP(0,xΣpx)f({\bf x}) \sim \mathcal{GP}({\bf 0}, {\bf x}^\top \Sigma_p{\bf x}')

이다. 선형모형의 사전분포를 GP를 통해서 모델링한것이다.

GP는 f(x)=xβf(x) = x^\top \beta와 같은 정확한 모델의 구조를 생각할 필요 없다. 이전 방법과 연관성으로 이해시키기 위해 베이지안 회귀분석을 예로 든 것이지 실제로는 GP는 f(x)f(x)의 사전분포를 바로 모델링해버린다. f(x)GP(0,K(x,x))f(x) \sim \mathcal{GP}({\bf 0},K(x,x'))라고 그냥 정해버린다는 것이다. 모델의 (비선형)형태를 결정하는 것은 K(x,x)K(x,x')에 따라 달라진다. 자세한 내용은 다음 포스팅에서 다루겠다.

다음 포스팅에서는 GP에서 중요한 covariance function의 역할과 GP의 두 단계 예측(prediction)과 추정(estimation)에 대해서 다루어 보겠다.

참고자료

profile
머신러닝과 통계학을 공부하는 사람

0개의 댓글