본문 바로가기
AI 딥러닝/ML

[GP-1] 가우시안 프로세스 (Gaussian Process)의 개념

by 세인트 워터멜론 2022. 6. 26.

랜덤변수(random variable)는 확률 실험의 결과에 실숫값을 대응시키는 함수로 정의된다. 또한 랜덤 프로세스(random process)는 어떤 파라미터로 인덱스(index)된 무한개의 랜덤변수의 집합으로 정의된다.

 

 

즉 랜덤 프로세스는 확률 실험 결과와 인덱스 파라미터 등 두 개의 변수로 구성된 함수로 생각할 수 있다. 보통 인덱스로 시간 파라미터가 많이 사용되지만 공간 파라미터도 인덱스가 될 수 있다. 여기서는 인덱스를 공간 파라미터인 \(\mathbf{x}\) 로, 랜덤 프로세스를 \(f\) 로 표기하겠다. 그러면 랜덤 프로세스를 다음과 같이 함수 형태로 쓸 수 있다.

 

\[ f(e,\mathbf{x}) \]

 

여기서 \(e\) 는 확률 실험을 나타낸다. 하지만 일반적으로 확률 실험을 명시적으로 나타내지 않고 인덱스만을 표시한 \(f(\mathbf{x})\) 로 표기한다.

인덱스 파라미터를 고정시킨다면 랜덤 프로세스는 랜덤변수가 된다. 또한 확률 실험 결과를 고정시킨다면 랜덤 프로세스는 확정적 함수가 된다. 이 함수를 샘플함수(sample function)라고 한다.

 

 

가우시안 프로세스(GP, Gaussian process)는 프로세스 집합 내에 있는 랜덤변수들의 임의의 조합이 모두 결합(joint) 가우시안 분포를 갖는 랜덤 프로세스로 정의된다.

예를 들어서 인덱스 \(\mathbf{x}_1, \mathbf{x}_2, ... , \mathbf{x}_m\) 에 해당하는 랜덤변수가 \(f_i=f(\mathbf{x}_i )\) 일 때, 이로부터 가능한 모든 부분 집합 \( \{f_1\}, \{f_2, f_3 \}, ... , \{f_1, f_2, f_m \} \) 이 모두 결합 가우시안 분포를 갖는 프로세스이다. 달리 설명하자면, \(f_i\) 을 성분으로 하는 벡터 \(\mathbf{f}_{1:m}= \begin{bmatrix} f_1 & f_2 & ... & f_m \end{bmatrix}^T\) 가 가우시안 랜덤벡터인 프로세스이다. 여기서 \(m\) 은 프로세스에서 임의로 선정한 인덱스의 갯수이므로, 가우시안 랜덤벡터는 무한 차원을 가질 수 있다. 즉 가우시안 프로세스는 가우시안 랜덤벡터를 무한 차원으로 확장한 것으로 설명할 수도 있겠다.

가우시안 랜덤벡터의 특성을 평균과 공분산으로 표현하듯이 가우시안 프로세스도 평균함수 \(\mu(\mathbf{x})\) 와 공분산 \(k(\mathbf{x}, \mathbf{x}^\prime )\) 로 특징지울 수 있다.

 

\[ f(\mathbf{x}) \sim \mathcal{GP} \left( \mu (\mathbf{x}), k(\mathbf{x}, \mathbf{x}^\prime ) \right) \]

 

여기서 공분산 \(k(\mathbf{x}, \mathbf{x}' )\) 는 다음과 같다.

 

\[ k(\mathbf{x}, \mathbf{x}' ) = \mathbb{E} \left[ (f(\mathbf{x})- \mu (\mathbf{x}))(f(\mathbf{x'})- \mu (\mathbf{x'})) \right] \]

 

공분산은 프로세스 내에서 서로 다른 두 점 \(\mathbf{x}\) 와 \(\mathbf{x}'\) 의 상호 연관성을 나타낸다. 가우시안 프로세스에서는 공분산 \(k(\mathbf{x}, \mathbf{x}' )\) 을 커널함수(kernel function)라고 한다. 다음 그림은 \(\mu (x)=0, \ k(x, x' ) = \exp \left( -\frac{1}{2} (x-x' )^2 \right)\) 일 때의 가우시안 프로세스의 샘플함수10개를 그린 것이다.

 

 

여기까지가 가우시안 프로세스의 일반적인 설명이다. 이제 기계학습에서 사용되는 가우시안 프로세스에 대해서 알아보기로 하자.

 

 

가우시안 프로세스는 회귀(regression) 문제, 분류(classification) 문제, 차원축소(dimensionality reduction) 문제 등에 적용할 수 있다. 이 중에서 가우시안 프로세스 회귀(GP regression) 문제를 먼저 다루어 보기로 하자.

다음 그림과 같이 \(m\) 개의 데이터셋 \(\mathcal{D}= \{ (\mathbf{x}_1, f_1 ), (\mathbf{x}_2, f_2 ), ... , (\mathbf{x}_m, f_m ) \}\) 이 주어졌다고 하자.

 

 

회귀 문제는 데이터셋에 없는 독립변수의 특정 값 \(\mathbf{x}_*\) 에 대응하는 종속변수 값 \(f_*\) 을 추정하는 문제다. 일반적으로 생각할 수 있는 방법은 함수 피팅(fitting)이다. 데이터의 추세에 따라서 미지의 목표 함수(target function) \(g(\mathbf{x})\) 를 1차, 2차 함수 등의 다항식 또는 비다항식 함수로 가정하고, 선정된 함수 모델의 파라미터를 최소제곱법 등을 이용하여 추정한다. 그리고 그 추정된 함수를 이용하여 \(f_*=g(\mathbf{x}_*)\) 를 계산한다.

 

 

반면에 GP 회귀 문제에서는 이와 다른 접근 방법을 사용한다. 목표 함수가 특정 형태를 갖는다고 가정하는 대신에 가우시안 프로세스 \(f(\mathbf{x})\) 로 간주한다. 구현 가능한 모든 함수에 대해 확률을 부여하는 접근 방법이라고 볼 수 있겠다. 미지의 함수를 가우시안 프로세스 \(f(\mathbf{x})\) 로 표현한다는 것은 데이터셋에서 \(m\) 개의 관측값 \(\mathbf{f}_{1:m} = \begin{bmatrix} f_1 & f_2 & ... & f_m \end{bmatrix}^T\) 을 어떤 가우시안 프로세스의 특정 인덱스 \(\mathbf{x}_{1:m}\) 에서 샘플링된 값으로 간주하는 것이다. 즉,

 

\[ \mathbf{f}_{1:m} \sim \mathcal{N} \left( \mu (\mathbf{x}_{1:m} ), K \right) \]

 

여기서

 

\[ \begin{align} & \mathbf{x}_{1:m} = \{ \mathbf{x}_1, \mathbf{x}_2, ... , \mathbf{x}_m \} \\ \\ & K = \begin{bmatrix} k(\mathbf{x}_1, \mathbf{x}_1) & k(\mathbf{x}_1, \mathbf{x}_2) & \cdots & k(\mathbf{x}_1, \mathbf{x}_m) \\ k(\mathbf{x}_2, \mathbf{x}_1) & k(\mathbf{x}_2, \mathbf{x}_2) & \cdots & k(\mathbf{x}_2, \mathbf{x}_m) \\ \vdots & \vdots & \ddots & \vdots \\ k(\mathbf{x}_m, \mathbf{x}_1) & k(\mathbf{x}_m, \mathbf{x}_2) & \cdots & k(\mathbf{x}_m, \mathbf{x}_m ) \end{bmatrix} \end{align} \]

 

이다.

 

 

GP 회귀 문제에서는 인덱스 파라미터 \( \mathbf{x}\) 를 입력이라고 한다. 그림의 예와는 다르게 일반적으로 입력은 많은 입력 변수가 있기 때문에 벡터로 표시한다. 관측값 또는 출력 \(f_i\) 는 연속값(continuous value)을 갖는다. 참고로 GP 분류 문제에서는 관측값이 이산값(discrete value)이다. 평균함수 \(\mu (\mathbf{x})\) 는 관측값의 전반적인 추세를 나타내고 커널함수 \(k(\mathbf{x}, \mathbf{x}' )\) 는 두 관측값의 사이의 기하학적인 유사도를 나타낸다.

미지의 목표함수에 대한 사전 정보가 없는 경우에는 평균함수는 \(\mu( \mathbf{x})=0\) 으로 놓는다. 커널함수로 많이 사용되는 함수는 다음과 같이 가우시안 확률밀도함수와 유사한 RBF (radial basis function) 이다.

 

\[ k(\mathbf{x}, \mathbf{x}' ) = \sigma_f^2 \exp \left( - \frac{ ‖ \mathbf{x}- \mathbf{x}' ‖_2^2 }{2 \lambda^2 } \right) \]

 

여기서 \(\sigma_f^2\) 는 커널이 표현할 수 있는 최대 공분산의 크기를 나타낸다. \(\mathbf{x} \approx \mathbf{x}'\) 이면 커널은 최대값 \(\sigma_f^2\) 에 가까워진다. 두 점이 서로 밀접하게 관련되어 있다는 뜻이다. \(\mathbf{x}\) 와 \(\mathbf{x}'\) 가 서로 멀리 떨어질 수록 커널값은 \(0\) 에 가까워지는데 이는 두 점 사이의 관련성이 떨어진다는 뜻이다. 이 관련성의 정도를 조절할 수 있는 값이 \(\lambda^2\) 이다. 두 점 사이의 거리가 같더라도 이 값이 클수록 두 점의 관련성이 높아진다. \(\sigma_f^2\) 와 \(\lambda^2\) 를 커널 파라미터라고 한다.

GP 회귀 문제는 \(m\) 개의 데이터셋 \(\mathcal{D}= \{ (\mathbf{x}_i, f_i ), \ i= 1, ... ,m \}\) 이 주어졌을 때, \(p\) 개의 입력 \(\{\mathbf{x}_{m+1}, ... , \mathbf{x}_{m+p} \}\) 에 대응하는 출력 \(\mathbf{f}_* = \begin{bmatrix} f_{m+1} & ... & f_{m+p} \end{bmatrix}^T\) 를 추정하는 문제로서 가우시안 프로세스 틀에서 다음과 같이 정식화 할 수 있다.

즉, 다음과 같이 가우시안 분포가 주어졌을 때,

 

\[ \begin{bmatrix} \mathbf{f}_{1:m} \\ \mathbf{f}_* \end{bmatrix} \sim \mathcal{N} \left( \begin{bmatrix} \mu (\mathbf{x}_{1:m}) \\ \mu (\mathbf{x}_{m+1:m+p}) \end{bmatrix}, \begin{bmatrix} K & K_* \\ K_*^T & K_{**} \end{bmatrix} \right) \]

 

\(\mathbf{f}_*\) 의 조건부 확률밀도함수 \(p ( \mathbf{f}_* \vert \mathbf{x}_{1:m}, \mathbf{x}_{m+1:m+p}, \mathbf{f}_{1:m} )\) 를 구하는 문제다. 여기서

 

\[ \begin{align} & K_* = \begin{bmatrix} k(\mathbf{x}_1, \mathbf{x}_{m+1}) & \cdots & k(\mathbf{x}_1, \mathbf{x}_{m+p}) \\ \vdots & \ddots & \vdots \\ k(\mathbf{x}_m, \mathbf{x}_{m+1}) & \cdots & k(\mathbf{x}_m, \mathbf{x}_{m+p}) \end{bmatrix} \\ \\ & K_{**} = \begin{bmatrix} k(\mathbf{x}_{m+1}, \mathbf{x}_{m+1}) & \cdots & k(\mathbf{x}_{m+1}, \mathbf{x}_{m+p}) \\ \vdots & \ddots & \vdots \\ k(\mathbf{x}_{m+p}, \mathbf{x}_{m+1}) & \cdots & k(\mathbf{x}_{m+p}, \mathbf{x}_{m+p}) \end{bmatrix} \end{align} \]

 

이다.

다음 포스팅에서는 조건부 확률밀도함수를 계산하는 방법, 주어진 데이터셋을 이용하여 커널 파라미터를 학습하는 방법, 미지의 목표함수를 효과적으로 추정하기 위한 입력 \(\mathbf{x}\) 의 선정 방법, GP 회귀 문제의 응용 등에 대해서 차례로 알아보기로 한다.

 

 

 

'AI 딥러닝 > ML' 카테고리의 다른 글

[GP-4] 베이지안 최적화 (Bayesian Optimization)  (0) 2022.07.09
[GP-3] GP 커널 학습  (0) 2022.07.05
[GP-2] GP 회귀 (GP Regression)  (0) 2022.06.30

댓글