Conditional Neural Processes 리뷰 – Model – Stochastic process


지난 글에서 (Conditional neural process-Introduction 리뷰) Conditional Neural Processes가 탄생하게 된 배경을 알게되었다. 정리하면 Stochastic process로 regression 하는 방법은 적은 양의 데이터에서 괜찮은 성능을 보인다. 데이터가 많을 때도 좋은 성능을 보일것을 기대하지만 실제론 데이터가 많아지면 계산량이 많아지는 문제가 생긴다. 딥러닝을 이용해 추정시 계산량이 적게드는 Stochastic process를 만들자라는 것이 이 논문의 목적이다. 이 글에서는 Conditional Neural Processes와 Stochastic process의 차이를 보기 위하여 이전에 Stochastic process가 어떤 방법을 사용했는지 살펴보자.

기존 Stochastic process를 이용해 regression 방법

Stochastic process란?

Stochastic process는 랜덤벡터의 일반화된 버전이라고 보면 되겠다. 랜덤벡터 $X = (X_1, X_2,…,X_N)$은 확률변수를 $N$개 모아두고 그 확률변수간의 Joint Distribution을 생각하는 것이라고 보면 된다. Stochastic process는 랜덤벡터가 아닌 랜덤함수라고 보면 되겠다. $\mathcal{X}$를 input space, $\mathcal{Y}$를 output space라 하자. stochastic process $f:\mathcal{X} \to \mathcal{Y}$는 확률변수 $f(x)$들을 모아둔것이라고 보면된다. $\mathcal{X}$이 무한한 원소의 갯수를 갖게된다면 $f$를 분석하기 위해서 무한개의 $f(x), x \in \mathcal{X}$의 joint distribution 을 알아야 할것 같지만 실제로는 유한개의 $x_1,…,x_M \in \mathcal{X}$에 대해서 $(f(x_1),f(x_2),…,f(x_M))$을 알면 충분하다.

Stochastic process regression 방법

regression 을 하는 방법을 알기전에 stochastic process에 대해 미리 알아보았었다. 이제 실제로 regression 을 해보자. stochastic process 는 $\mathcal{X}$ input space, $\mathcal{Y}$는 output space에 대하여 $f:\mathcal{X} \to \mathcal{Y}$인 함수 꼴이고 각각의 $f(x)$는 확률변수 였다는 사실을 다시 기억해두자.  regression 을 하기 위하여 실제로 관찰된 데이터를 $O = \{ (x_i,y_i) | i =0,1,…,n-1\}$라고 하자. 그리고 $T= \{ x_i | i=n,n+1,…,n+m-1\}$에 대하여 $f(x), x\in T$값을 추정하려고 한다. 이미 알고 있는 데이터 $O$를 이용하여 $x \in T$에서의 값 $f$값을 추정하기 위해 Gaussian process regression 등에서는 posterior distribution 을 구하는 방식을 취한다. 무슨말이냐면 stochastic process $f$는 확률변수의 모임이므로 확률분포 $P$를 갖고 이것을 prior라고 한다. 관측결과 $O$라는 데이터를 갖게 되었으므로 $O$라는 결과에 적합한 새로운 확률분포 $P$인 posterior를 정의하고 이를 이용해 $T$에서의 joint distribution 을 알 수 있다. 아래와 같이 말이다.

$$P(f(x_n), f(x_{n+1}), f(x_{n+2}), …, f(x_{m}) | O) $$

posterior를 구한다고 했지만 conditional probability를 구한다고 보면 된다.

Stochastic process regression 방법의 계산량

위와 같이 prior 가 있었다고 가정하고 데이터를 관찰하여 posterior를 구하는 방식으로 regression 을 한다고 가정하면, Gaussian process regression 에서는 $\mathcal{O}((n+m)^3)$의 계산량이 든다.

Conditional Neural process를 사용하는 이유

위에서 Gaussian process regression 을 사용할 경우 posterior 를 구하는 과정에서 $\mathcal{O}((n+m)^3)$개의 계산이 필요하다. Conditional Neural Process를 사용할 경우 계산량이 $\mathcal{O}((n+m))$로 줄어드는 마법을 볼 수 있다. 그리고 계산량도 계산량이지만 gaussian process에서 필요한 kernel 을 찾는 과정도 생략할 수 있다.

관련글

Conditional neural process-Introduction 리뷰

Leave a Comment