Gaussian process에서는 보통의 regression 모델과는 다르게 예측값을 확률적으로 추정할 수 있다. 예를 들어 일반적인 regression model은 $x=3$일 때 $y=1$이라는 한 가지 값만을 추정하지만, GP를 이용한 regression (Gaussian process regression, GPR)에서는 $x=3$일 때 $y$가 0에서 2 사이일 확률이 80%라는 식으로 추정할 수 있다. 어떤 방식으로 이렇게 확률 추정을 하는지 먼저 간단한 예시를 통해 살펴보자.
그전에 Gaussian distribution에 대해 간단히 리뷰하고 넘어가자. 변수 $y$가 1차원 Gaussian distribution을 따른다고 하면 그 분포는 다음과 같이 정의된다.
$$y\sim N(\mu, \sigma^2)$$
이를 2차원으로 확장하면, 즉 변수 $y_1$, $y_2$가 2차원 Gaussian distribution을 따르는 경우는 다음과 같이 정의된다.
$$\begin{bmatrix}
y_1 \\ y_2
\end{bmatrix}\sim N(\mathbf{\mu}, \mathbf{\Sigma})=N\left(\begin{bmatrix} \mu_1 \\ \mu_2 \end{bmatrix}, \begin{bmatrix}
\Sigma_{11} & \Sigma_{12} \\
\Sigma_{21}& \Sigma_{22} \\
\end{bmatrix}\right )$$
한편, $y_1$을 알고 있을 때 $y_2$를 추정하는 regression 문제를 생각하자. 이때, $y_1$과 $y_2$가 위와 같은 2변수 Gaussian distribution을 따른다고 가정해보자. 그리고 그 평균과 공분산 역시 어떻게든 알고 있다고 가정하자. 사실 $y_2$에 대해 아무것도 모르기 때문에 어떻게 이런 가정이 성립될 수 있는가 싶지만, 일단 할 수 있다고 치자. 그러면, 예를 들어 $y_2$는 다음과 같은 확률분포를 가짐을 알 수 있다.
저 파란색으로 나타난 확률분포는 $y_1$를 알고 있을 때 $y_2$의 확률분포, 즉 조건부 확률 $p(y_2|y_1)$이다. $y_1$, $y_2$이 2변수 Gaussian distribution $N(\mathbf{\mu}, \mathbf{\Sigma})$을 따를 때 $p(y_2|y_1)$는 역시 Gaussian이며, 다음과 같이 표현된다.
이 식이 어떻게 유도되었는지는 모르더라도, 여기서 눈여겨볼 점은 (사실 당연하게도) 2변수 Gaussian distribution의 평균과 공분산을 알고 있으면 거기서 유래되는 어떤 조건부 확률이라도 구할 수 있다는 것이다. 이 논의를 확장해서, 무한개의 entire variable 중 유한한 개수 $n$개의 known variable과 모르는 variable ($y_*$)이 있을 때, 그들이 다음과 같은 Gaussian distribution을 따른다고 가정해보자.
만약 이 확률분포의 평균과 공분산을 알고 있다면, 또는 어떻게든 가정한다면, 조건부 확률 $p(y_*|\mathbf{y})$, 즉 known variable로부터 추정한 unknown variable의 확률분포 역시 구할 수 있을 것이다. 그렇다면 저 평균과 공분산을 어떻게 가정할까?
평균은 보통 0으로 둔다고 한다. 이는 대부분의 경우에 target 값들을 표준화시켜서 평균이 0이 되게끔 만들 수 있기 때문이다. 그리고 평균은 실제로 GPR를 할 때 크게 의미는 없다고 한다. 더 중요한 건 공분산을 어떻게 정의하느냐인데, 그 방법 중에는 다음과 같은 것이 있다.
이때 $k(x_i, x_j)$를 kernel function이라고도 한다. 이 식을 잘 보면 $x$가 가까울수록 kernel function의 값이 1에 가까워진다는 것을 알 수 있다. 즉 $x$ 사이의 관계에 대한 정보를 kernel function이 담고 있다고 할 수 있다. 사실 그런 역할을 할 수 있는 함수라면 어떤 것이든 원칙적으로는 kernel function으로 사용될 수 있다 (positive semi-definite이라는 조건이 더 있긴 하다).
어찌됐든 저렇게 평균과 공분산을 정의했으면, 이제 다음 조건부 확률을 구함으로써 regression을 할 수 있다.
이제는 조건부 확률의 조건 term에 $x_*$도 들어가 있는 것을 볼 수 있다. 그리고 평균이 0인 것만 빼면 위에서 본 2변수 Gaussian distribution의 조건부 확률 식과 동일하다. 이렇게 얻은 저 조건부 확률을 plot하면 다음과 같은 그림이 나오는 것이다.
그림에 표시된 저 파란색 분포가 곧 조건부 확률 $p(y_*|x_*, \mathbf{x}, \mathbf{y})$이 된다.
한편 Gaussian process를 위키피디아 등에서 찾아보면 나오는 정의를 살펴보자.
Gaussian process is a stochastic process such that every finite collection of random variables has a multivariate normal distribution.
즉 무한 개의 variable 중에서 finite collection (즉 유한 개의 known variable 또는 unknown variable)을 아무렇게나 가져와도 그것들이 모두 다변수 정규분포를 따른다고 가정함으로써 Gaussian process가 성립된다.
'머신러닝' 카테고리의 다른 글
GPT-4를 이용한 재료 및 화학 분야 적용 연구 (0) | 2023.12.05 |
---|---|
Variational Autoencoder (0) | 2022.05.10 |
Graph Neural Network (0) | 2022.04.26 |
Feature Selection (0) | 2022.04.24 |
Principal Component Analysis (PCA) (0) | 2022.04.24 |