Neural process
서론
근 몇일간 내가 찾던게 이거인 것 같다.
VAE에서 보면 중간에 평균과 표준편차를 만들어내는데… 한번은 이걸로 단순한 일차함수를 근사해보려고 했다.
진짜 단순하게 생각해서, 신경망을 만들고, 이 출력으로 평균과 표준편차를 내개 했다.
신경망 단 하나.
그리고는 이 신경망의 평균이 그래프 모양을 그리고, 표준편차가 얼마나 확신을 하는지를 보여주기를 바랬다.
뭐, 문제가 이렇게 쉽게 풀렸으면 Neural Process같은 것도 없었을 것이다.
거의 당연하다시피 망했다.
Neural Process는 이 문제의 답이라고 볼 수 있겠다.
Neural Process - VAE에서
원래 NP가 VAE에서 나온 것은 아니지만…
이 글에서 Neural Process를 설명하기 위해 VAE를 가져왔다.
마침 나도 VAE에서 아이디어를 얻어 온 참이다. 꽤 도움이 될 것이다.
아무튼, VAE의 기본 아이디어를 다시 한번 살펴보자.
VAE는 - Variational Auto Encoder의 줄임말인데 - 이미지를 인코더에 집어넣어서 평균과 표준편차 값을 계산하고,
그 값으로 잠재변수 Z를 만든 다음, Z를 디코더에 집어넣어서 원본 이미지를 복원시킨다.
예전에 내가 했던 것처럼 함수로 비슷한 것을 하고 싶다고 치자.
VAE는 벡터를 -> 잠재 벡터로 변환하고 -> 다시 원본 벡터를 복원한다.
그렇다면 함수를 -> 벡터로 만들어 -> 이를 잠재 벡터로 변환한다면 어떨까
이 잠재 벡터 (Z)는 함수를 나타낸다. 거기에 적당한 입력값과 같이 디코더에 넣으면 원본 함수를 복원시킨 효과를 기대할 수 있을 것이다.
이렇게 보면 함수판 Autoencoder다.
다음 시간
한번 직접 구현해보자.