간단히 설명하자면, 새로운 데이터를 생성하기 좋은 특성들을 갖는 latent space를 보장하도록 학습 중에 인코딩 분포를 정규화(regularized)하는 오토인코더(autoencoder)의 일종
variational(변화의)이라는 용어는 정규화(regularization)와 통계학의 변분추론(variational inference) 사이에 긴밀한 연관관계가 있기 때문
Dimensionality Reduction (차원 축소)
머신러닝에서 차원축소란, 데이터를 묘사하는 피처(특징)의 개수를 줄이는 과정
예전 feature representation으로부터 새로운 feature representation을 만드는 과정을 수행하는 부분을 인코더, 반대의 과정을 수행하는 부분을 디코더라고 부를 수 있음
차원축소는 인코더가 데이터를 압축하는 과정(즉, encoded space = latent space로 압축)으로 이해 가능
차원축소의 주요한 목표는 인코딩 시에 정보를 최대한으로 보존하고, 디코딩 시에 재건 오류(reconstruction error)를 최소화
Principal Components Analysis (PCA)
차원축소의 한 방법
예전 피처들의 선형결합인 새로운 독립적인 피처들을 만들어, 새로운 피처들로 정의된 projections of the data on the subspace가 처음의 데이터들과 가능한 한 가깝도록 (euclidean distance)
다시 말해, PCA는 초기 space의 best linear subspace를 찾아 오차값이 가능한 작도록 만드는 방법
eigenvalue / eigenvector problem
Autoencoder
인코더와 디코더를 신경망(neural network)으로 만들고 반복적인 최적화 과정을 통해 최적의 인코딩-디코딩 스킴을 학습
만약 인코더, 디코더 아키텍처가 비선형성 없이 오직 하나의 층(layer)을 갖고 있다면, 우리가 gradient descent로 구할 수 있는 여러 최적의 해 중 하나가 PCA로 얻을 수 있는 해라고 이해할 수 있음 (link between linear autoencoder and PCA)
인코더와 디코더가 deep and non-linear라면, 아키텍처가 복잡할수록 reconstruction loss를 낮게 유지하면서도 더 높은 차원축소를 진행할 수 있음
단, 이럴 경우 latent space의 해석가능 구조 결여(lack of regularity)가 발생할 수 있다는 점과 차원축소의 최종 목표는 축소된 representation에 주요한 정보를 유지해야 한다는 점을 염두에 두어야
Autoencoder는 latent space가 얼마나 잘 조직화(organized)되었는지와 관계없이 최소한의 loss를 갖는 방향으로 인코딩과 디코딩을 할 수 있도록 학습되었음
때문에 새로운 컨텐츠를 생성해내기 어려움
Variational Autoencoder
오토인코더가 생성의 목표를 달성하기 위해서는 latent space가 충분히 regular해야 함
이를 위해 학습과정에서 explicit regularization을 적용할 수 있음
a variational autoencoder can be defined as being an autoencoder whose training is regularised to avoid overfitting and ensure that the latent space has good properties that enable generative process
regularization을 적용하기 위해 input을 하나의 점으로 인코딩하는 대신 latent space 상의 분포(distribution)로 인코딩