Gaussian Process는 Stochastic Process의 한 종류이다. 일종의 베이지안 비모수적 방법인데, 여기서 비모수적이라는 것은 모수가 무한(infinite)으로 존재한다는 것이다.
즉, GP는 다변량 정규분포를 무한 차원으로 확장시킨 것이다. 따라서 GP는 함수에 대한 분포로 표현할 수 있다. 다변량 정규분포가 mean vector와 covariance matrix로 나타나는 것처럼 GP도 mean function과 covariance function으로 정의된다.
P(X)∼GP(m(t),k(x,x′)
covariance function k(x,x′)을 다음과 같이 정의해보자. 커널함수로 많이 사용되고 Gaussian PDF와 유사한 RBF(Radial Basis Function)이다.
k(x,x′)=σf2exp(−2l2∣∣x−x′∣∣22)
여기서 σf2는 커널이 표현할 수 있는 최대 공분산의 크기이다. x≈x′이면 커널은 최댓값인 σf2에 가까워진다. 두 점이 서로 밀접하게 관련되어 있다는 뜻이다. x와 x′이 서로 멀어질수록 커널 값은 0에 가까워지는데 이는 두 점 사이의 관련성이 떨어진다는 뜻이다. 이 관련성의 정도를 조절할 수 있는 값이 λ2이다. 두 점 사이의 거리가 같더라도 이 값이 클수록 두 점의 관련성이 높아진다. σf2와 λ2을 kernel parameter라고 한다.
다시 말하자면, x와 x′이 유사할수록 f(x)와 f(x′)이 correlation을 가진다고 해석할 수 있다. 이는 함수가 smooth해지고 이웃한 데이터 포인트끼리 유사해지는 관점에서 좋은 의미이다.
일반적으로 데이터는 Noise를 포함하고 있고, Gaussian Noise라고 가정한다면
y=f(x)+ϵϵ∼N(0,σn2)
이를 covariance function에 넣으면 다음과 같다.
k(x,x′)=σf2exp(−2l2∣∣x−x′∣∣22)+σn2δ(x,x′)
여기에서 δ(x,x′)은 Kronecker delta function이다.
GP는 변동성이 큰 비선형 회귀에 편리하게 사용된다.
Gaussian Process Regression
회귀 문제에서는 찾고자 하는 함수가 특정 형태를 가진다고 가정한 후 함수를 OLS 등과 같은 방법으로 추정하여 함수를 찾아낸다. 그러나 Gaussian Process Regression에서는 찾고 싶은 함수가 Gaussian Process를 따른다고 가정한다. 즉, 만들어질 수 있는 모든 함수에 대해 확률을 부여하는 방식이다.
미지의 함수를 GP f(x)로 표현한다는 것은 m개의 관측값 f1:m=[f1f2…fm]T를 어떤 GP의 특정 index x1:m에서 sampling된 값으로 간주하는 것이다. 즉,
f1:m∼N(m(x1:m),K)
이고 여기서
x1:m={x1,x2,…,xm}K=⎣⎢⎢⎡k(x1,x1)⋮k(xm,x1)k(x1,x2)⋮k(xm,x2)⋯⋱⋯k(x1,xm)⋮k(xm,xm)⎦⎥⎥⎤
이다.
GP를 function space view로 이해해보자.
어떤 함수 f를 찾아보자. 이 함수는 확률모형이기 때문에 신뢰구간(confidence interval)을 갖는다.
D=[x,y]
그리고 Gaussian Process는 mean function과 covariance function으로 함수에 대한 분포를한다.
p(f)=f(x)∼GP(m,k)
이는 베이즈 정리에 의해 다음과 같이 정의된다.
p(f∣D)=p(Dp(f)p(D∣f)
Posterior를 구하기 위해서는 Prior와 Likelihood가 필요하다. 여기서 Prior는 Gaussian Process를 따른다고 가정하면 Likelihood만 구하면 된다.
우선 데이터 D는 일반적으로 Noise를 가지고 있다. 따라서 f(x)를 추정하는 것이 아닌 Noise를 포함한 y=f(x)+ϵ를 추정해야 한다.
Noise에 대한 가정은 ϵ∼N(0,σn2) 이라 하자.
f의 Prior는 GP이고, likelihood는 normal distribution이므로 f에 대한 Posterior는 GP가 된다.
mean function을 0으로 가정하고 주어진 데이터로 Marginal likelihood를 구하면 다음과 같다. (사전정보가 없는 경우에는 mean function을 0으로 둔다)
p(y∣x)=∫p(y∣f,x)p(f∣x)df=N(0,K)
따라서 Log marginal likelihood는 아래와 같다.
logp(y∣x,θ)=−21log∣K∣−21yTK−1y−2nlog(2π)
이제 새로운 관측값 x∗가 주어졌을 때, Posterior distribution 다음과 같다.
p(y∗∣x∗,D)=∫p(y∗∣x∗,f,D)p(f∣D)df=N(K∗K−1y,K∗∗−K∗K−1K∗T)
여기에서 평균인 K∗K−1y는 y에 대한 선형결합으로 표현할 수도 있다.
K∗K−1y=i=1∑nαik(xi,x∗)α=K−1y