Conditional neural process에 대해 쭉 리뷰를 하고 있다.
(Conditional neural process-Introduction 리뷰) 에서는 가우시안 프로세스등의 stochastic process regression 방법은 장점이 있긴 있으나 학습과 추정시 많은 계산량이 든다는 단점이 있어서 그것을 딥러닝을 이용해서 s 계산량을 줄어보겠다는 얘기를 했고
(Conditional Neural Processes 리뷰 – Model – Stochastic process) 기존의 stochastic process regression 방법에 대해 살펴보았고
([논문] Conditional Neural Process 리뷰 – Model 구조) 에서는 stochastic process regression 에서 기존에 사용하였던 conditional distribution 을 구하는 방법이 아닌 딥러닝을 이용해서 conditional distribution 을 구하는 모델 구조를 보았다. 지금까지는 나름 납득이 가는데! 과연 학습은 어떻게 해야 할까? 그 훈련방법을 살펴보자.
Conditional neural process 학습방법
Stochastic process $f$가 확률분포 $P$를 따른다고 하자. 우리의 목표는 관찰치 $O = \{ (x_i,y_i) | i = 0,1,…,n-1\}$를 기반으로 새로운 probability distribution 인 $Q_{\theta}(\cdot | O ) $를 만드는 것이다. 딥러닝을 학습한다는 것은 Loss를 줄이는 방향으로 학습을 한다는 것인데~ loss는 어떻게 정의할 까? $N$을 1,2,3,…,n 값을 갖는 균등분포라고 하자. $O_N = \{ (x_i,y_i) | i=0,1,2,3,…,N-1\}$이라 하자. Loss함수는 아래와 같이 정의한다.
$$L ( \theta) = – E_{f \sim P} E_N [ Q_\theta ( f(x_0),f(x_1),f(x_2),…,f(x_{n-1}) | O_N, \{ x_i \}_{i=0}^{n-1} )]$$
관찰치 $O$에서 몇개는 관찰하고 몇개를 추정하는 식으로 학습을 하겠단 얘기이다.
위에 정의한 loss는 cross entropy 꼴이다. $P$를 $Q$로 바꿨을 때 생기는 정보의 손실이라고 보면되겠다.
위의 Loss를 미분해서 $\theta$를 계속해서 업데이트를 하는데 expectation 이 있어 distribution 을 알아야 된다고 생각하지만 monte carlo 방법을 사용하면 계산을 할 수 있다.
monte carlo 방법을 이용함으로써 expectation 계산을 위한 pdf 계산량이 줄어드는데 장점이 있는것 같다.
Conditional neural process의 장점
지금까지 학습방법에 대해 살펴보았는데 conditional neural process의 장점은 아래와 같다.
1. Conditional neural process는 f의 분포 $P$에서 업데이트 된 조건부 분포를 구하는 과정이다.
2. $Q$는 consitency와 exchangable을 만족한다. 즉 Q는 세상에 존재할만한 분포라는 얘기이고
3. 계산량이 $O(n+m)$으로 줄어든다.
Conditional neural process에서 주목할 점
1. 학습모델( [논문] Conditional Neural Process 리뷰 – Model 구조)에서 봤던 $h$는 입력 데이터가 무엇이냐에 따라 달라질 수 있다. 입력데이터의 차원이 낮으면 $MLP$를 사용하고 차원이 높으면 CNN등을 사용한다.
2. $Q$를 어떻게 정의했는지 살펴보면([논문] Conditional Neural Process 리뷰 – Model 구조)), conditional independent 한 구조이다. 즉 $Q$에 의해서 $x_1,x_2,…,x_n$에서 값들은 독립이 된다. $x_1,..,x_n$간의 상관관계가 없다는 가정이다. 이 변수들이 상관관계 있을 때 어떻게 학습을 하는지는 이 논문의 다른섹션에서 다룬다고 한다.
지금까지 conditional neural process의 학습 방법까지 살펴보았고 다음에는 관련연구와 실험결과를 보도록 하겠다.
Conditional neural process-Introduction 리뷰
Conditional Neural Processes 리뷰 – Model – Stochastic process
[논문] Conditional Neural Process 리뷰 – Model 구조