[논문] Conditional Neural Process 리뷰 – Model 구조


Conditional neural process에 대해 알아보고 있다. 지난 글에서

(Conditional neural process-Introduction 리뷰)에서는 Conditional neural process로 대량의 데이터에서 작은 계산량을 갖는 stochastic process regression 모델을 만들자라는 것이 논문의 취지임을 알게되었고

(Conditional Neural Processes 리뷰 – Model – Stochastic process)에서는 기존 stochastic process regression 이 어떻게 사용되었는지 관찰하면서 posterior 를 구하는 과정에서 계산량을 줄이는 것이 필요하다는 것을 보았다. 이번 글에서는 딥러닝을 이용하여 posterior 구하는 계산량을 줄여보도록 하자.

Coditional Neural Process 모델 구조

Conditional Neural Process의 구조
Conditional Neural Process의 구조

Conditional Neural Process 모델의 구조는 위와 같다. 그림만 봐서는 못알아보겠는데 천천히 알아보자. Conditional Neural Process의 목적을 다시 한번 생각해보자. input space $\mathcal{X}$와 output space $\mathcal{Y}$의 관계는 stochastic process $f:\mathcal{X} \to \mathcal{Y}$에 의해 결정된다고 하자. $f$는 확률분포 $P$를 따른다고 하자. 그리고 $O = \{ (x_i, y_i) | i =0,1,…,n-1\}$는 관찰된 데이터이다. $T = \{ x_i | i = n,n+1,…,n+m-1\}$에서의 값을 추정하고 싶다. 단순화 하기 위해 $\mathcal{Y}= \mathbb{R}$이라고 하자. 기존 stochastic process regression 문제는 posterior $P( \cdot | O ) $를 구할 때 계산량이 많이 드는 점이 있었다. 딥러닝을 이용하여 posterior를 구할 때 계산량을 줄여보도록 하자.

posterior를 인공신경망으로 어떻게 구할까?

데이터 $O$가 주어질 때 stochastic process는 f는 $Q_\theta(\cdot | O)$를 따른다고 하자. 여기서 $\theta$는 학습으로 얻게될 parameter이다.! 인공신경망을 통해 $Q_\theta(\cdot | O)$를 학습하게 될것이다. stochastic process의 분포를 정의하기 위해서는 Kolmogorov extension theorem의 조건(Kolmogorov Extension theorem의 의미)을 만족해야 한다. $Q$를 다음과 같이 정의함으로써 Kolmogorov extension theorem이 성립하도록 하자.

$$Q_{\theta}(f(x_n),…,f(x_{n+m-1}) | O) = \prod_{j=n}^{n+m-1} Q_{\theta}(f(x_j)|O)$$

이제 모델을 구조를 보도록 하자, 아래에서 $h$와 $g$는 인공신경망을 뜻한다.

$$r_i = h_{\theta}(x_i, y_i), i=0,1,…,n-1$$

$$r = r_1 \bigoplus r_2 \bigoplus r_2 \bigoplus r_3 \bigoplus … \bigoplus r_n $$

$$\phi_i = g_{\theta} (x_i, r), i =n,…,n+m-1$$

위에서 $r$은 그냥 $r_i$의 평균이라 생각하면 될것 같다.

여기서 $\phi_i$가 중요하다. 문제가 regression 문제이면 $\phi_i$를 이용해 $Q_{\theta}(f(x_i) | O) = N(\mu_i, \sigma_i^2)$되도록 표현할 것이다. 문제가 classification 이면 $\phi_i$를 이용해 $Q_{\theta}(f(x_i) |O)$는 probability mass가 된다.

줄어든 계산량

추정을 위해서 $\phi_i$를 구하는 과정이 필요한데, 총계산량을 따져보면 $O(n+m)$정도 걸린다. gaussian process를 이용해 추정시에는 $O((n+m)^3)$이 필요한거에 비하면 적은양이다. 그런데! 이것은 학습이 완료된 후의 계산량이므로 학습시 계산량을 파악하는 것이 중요해 보인다.

정리

Conditional neural process의 모델 구조를 보았다. stochastic process regression 에서 posterior(conditional probability)를 구하는데 계산량이 많이 들었던 문제를 인공신경망을 활용해 계산량을 많이 줄였다. 그런데~ 학습시에는 계산량이 어느정도까지 줄어드는지는 논문을 좀 더 읽어봐야 알것 같다.

출처

Conditional Neural Processes Marta Garnelo, Dan Rosenbaum, Christopher Maddison, Tiago Ramalho, David Saxton, Murray Shanahan, Yee Whye Teh, Danilo Rezende, S. M. Ali Eslami Proceedings of the 35th International Conference on Machine Learning, PMLR 80:1704-1713, 2018.

Leave a Comment