원본 링크: Auto-Encoding Variational Bayes
기본적으로 생성모델은 데이터의 분포를 잘 추정하는것을 목표로 합니다. 방법에 따라서 explicit하게 구할거냐 (ex: flow model) implicit하게 구할거냐(GAN)의 차이로 볼 수 있습니다. VAE는 전자의 경우로 볼 수 있습니다.
auto encoder라는 네이밍은 데이터를 표현하는 latent space를 자동적으로(autometically) 찾아주기 때문입니다. latent vector의 각 원소의 역할을 사용자가 지정하지 않아도 encoder가 최적의 latent vector를 찾도록 학습합니다. 그래서 latent vector가 잘 정의되었다. (well defined) 라는 것은 벡터의 각각의 원소의 역할들이 효율적이고 독립적으로 잘 구분되어 있다는 것입니다. 예를들어 latent vector의 원소 값을 조금씩 바꿀경우, 생성되는 이미지의 벡터의 위치에 따라 성별, 인종, 헤어스타일 등등의 sementic한 역할이 구분되어 이미지가 생성되는 경우를 예로 들 수 있습니다.
VAE와 AE의 차이는 Variational inference를 사용하는지의 여부에 따라 달라집니다. Variational inference는 해당 데이터가 특정한 분포를 따른다고 가정하고 학습및 추론을 수행합니다. VAE의 경우 이는 보편적으로 Gaussian distribution으로 가정합니다. code level에서 설명하면 encoder로부터 분포의 파라미터 , 를 추출하고 이것이 Gaussian distribution과의 차이를 줄이도록 Variational inference를 수행합니다.
VAE를 간단히 도식화 하면 다음과 같습니다.

여기서 , 는 각각 , 로 파라미터화 되고, 각각 decoding, encoding 과정을 담당하게 됩니다.
이미지를 생성하려면 학습 목표는 생성된 이미지의 확률( = )를 최대화하는 방향이 되어야 합니다. 여기서 일반적으로 MLE를 사용하면 된다 생각할 수 있으나 문제점이 있습니다.
log 를 구하기위해서는 를

의 marginalization으로 구하거나

chain rule을 이용하여 구해야 합니다. 하지만 의 marginal을 구하는 것은 complex 모델에서 intractable합니다. 또한 encoder의 g.t인 에 접근하는 것도 불가능합니다.
이 문제를 우회하기 위해 VAE에서는 ELBO라는 개념을 도입하였습니다.

여기서 특히 마지막에서 두번째 줄을 해석하면, log는 결국 ELBO term과 , 즉 인코딩된 letent vetor와 true latent vector의 KL diversions의 합으로 나타낼 수 있습니다. 여기서 좌변 log는 에 무관하다는 점을 고려하면 ELBO를 maximize하는것은 KL diversions를 최소화하는 방향으로 최적화가 진행되게 됩니다.
다시말하면 ELBO를 에 대해서 최대화 함으로써 을 최소화 하고 에 대해 최대화 함으로써 log를 최대화 할 수 있습니다. ( term에 대해 상관할 필요가 없게 됩니다. )

ELBO는 reconstruction term과 prior matching term 으로 분리할 수 있는데, 인코딩 관점에서() True prior 과 인코딩된 prior 의 차이를 줄여야 합니다. 일반적으로 True prior는 가우시안 분포로 가정합니다.

여기서 밑첨자 로서 표현된다는 건 네트워크를 통해 파라미터화 할 수 있다는 것이고 최종 목적은
→0, →I 가 되도록 학습해야 합니다.
여기서 문제가 있는데 확률분포를 학습할 때 sampling된 latent vector를 이용하게되면 stochastic한 문제를 풀어야 합니다. 이는 미분 불가능하므로 여기서 reparameterization trick을 이용한다고 합니다. 
, 를 확률적인 노이즈 term과 분리하므로써 미분 가능한 절차로 만들 수 있습니다.
정리하자면,
→VAE는 기존 생성모델의 log 를 최대화 하는 문제를 우회할 필요가 있다.
→log를 ELBO term과 term으로 분리할 수 있다.
→log를 최대화 하는 문제는 ELBO를 최대화 하는 문제로 풀 수 있다.
→ELBO는 reconstruction term(디코딩관점), prior matching term(인코딩관점) 두개로 분리 할 수 있다.
→인코딩 관점에서 True latent space 가우시안으로 가정하고 인코딩된 prior 의 차이를 줄여야 한다.
→이는 미분 불가능한 stochastic한 문제를 풀기 위해 reparameterization으로 풀 수 있다.