서론

근 몇일간 내가 찾던게 이거인 것 같다.

VAE에서 보면 중간에 평균과 표준편차를 만들어내는데… 한번은 이걸로 단순한 일차함수를 근사해보려고 했다.

진짜 단순하게 생각해서, 신경망을 만들고, 이 출력으로 평균과 표준편차를 내개 했다.

신경망 단 하나.

그리고는 이 신경망의 평균이 그래프 모양을 그리고, 표준편차가 얼마나 확신을 하는지를 보여주기를 바랬다.

뭐, 문제가 이렇게 쉽게 풀렸으면 Neural Process같은 것도 없었을 것이다.

거의 당연하다시피 망했다.

Neural Process는 이 문제의 이라고 볼 수 있겠다.

Neural Process - VAE에서

원래 NP가 VAE에서 나온 것은 아니지만…

이 글에서 Neural Process를 설명하기 위해 VAE를 가져왔다.

마침 나도 VAE에서 아이디어를 얻어 온 참이다. 꽤 도움이 될 것이다.

아무튼, VAE의 기본 아이디어를 다시 한번 살펴보자.

img

VAE는 - Variational Auto Encoder의 줄임말인데 - 이미지를 인코더에 집어넣어서 평균과 표준편차 값을 계산하고,

그 값으로 잠재변수 Z를 만든 다음, Z를 디코더에 집어넣어서 원본 이미지를 복원시킨다.

예전에 내가 했던 것처럼 함수로 비슷한 것을 하고 싶다고 치자.

VAE는 벡터를 -> 잠재 벡터로 변환하고 -> 다시 원본 벡터를 복원한다.

그렇다면 함수를 -> 벡터로 만들어 -> 이를 잠재 벡터로 변환한다면 어떨까

이 잠재 벡터 (Z)는 함수를 나타낸다. 거기에 적당한 입력값과 같이 디코더에 넣으면 원본 함수를 복원시킨 효과를 기대할 수 있을 것이다.

img

이렇게 보면 함수판 Autoencoder다.

다음 시간

한번 직접 구현해보자.