VAE를 공부하면서 깊이 알고 있지 않는다 생각하여
Top-down으로 내려갔다가 Bottom-up으로 다시 올라오는 식으로 정리해보고자 한다.
원래는 노션에 작성했었는데 블로그에 옮기고자 한다.
필자는 공부당시 확률론과 수식을 잘몰랐다.
이 글에서는 VAE를 대강 훑어본다.
VAE vs AE
- AutoEncoder의 목적은 Manifold Learning이다.
- Manifold Learning : 고차원 데이터를 저차원의 매니폴드(Manifold) 공간에 매핑하는 기법
- Variational AutoEncoder는 Generative Model이다.
VAE 구조

- Auto-Encoder의 latent variable이 정규분포를 따르도록 학습한 모델
- VAE의 Decoder 부분이 Generative Model이 된다.
- AE는 encode가 목적이지만 VAE는 decode가 목적이다.
- Zi의 각 클래스의 집합은 정규분포를 따르도록 하고자 한다.
Prior Distribution p(z) 사전 분포
prior 값이 정규분포를 따른다고 가정하여도 sampling 값은 manifold를 대표하는 값이 될 수 있다.
따라서 p(z)를 정규분포로 가정한다.
Variational Inference
- z를 정규분포에서 샘플링하는 것보다 x와 유의미하게 유사한 샘플이 나올 수 있는 확률분포 p(z∣x)로 부터 샘플링하면 된다.
- 그러나 p(z∣x)가 무엇인지 알지 못하므로, 우리가 알고 잇는 확률분포 중 하나 qϕ(z∣x)를 택해서 그것의 파라미터 값을 조정하여 p(z∣x)와 유사하게 만들어 본다.
인터넷 여기저기 뒤져서 VAE 의미를 간단하게 정리해보았다.
그림에서 문자들이 대충 무슨 뜻인지 알지만 모델이 정규분포가 된다는 개념은 생소하다.
p(x),p(z∣x),qϕ(z∣x) 사이의 관계

- 위 수식을 최대화 하는 것이 목표다.
- 앞서 p(z∣x)를 알 수 없다고 하였으므로 세번째 항은 빼고 첫번째, 두번째 항을 최대화 시킨다.
- 나중 글에서 수식 유도할 것이다.
VAE 구조 다른 그림

이활석님의 VAE 강의 자료에서 가져온 그림이다. 검색하면 바로 나온다.
왜 σ에 표준정규분포 랜덤값을 곱할까?
- loss 함수의 Regularization 부분이 latent space가 정규분포일 것으로 가정해서 라고 생각한다.
- 그럼에도 번거롭게 위와 같이 계산하는 이유는 아래 이미지처럼 역전파를 위해서 이다.

대강 훑어본것을 정리해보자.
-
AE 처럼 Reconstruction Error가 사용된다.
-
VAE는 latent space가 정규분포를 따르길 바란다.
-
p(x),p(z∣x),qϕ(z∣x) 사이의 관계를 정리한 수식의
첫 번째항이 Reconstruct Error, 부호는 반대
두 번째항이 Regularlization Error, 부호는 반대
-
latent space에 reparameterization trick을 사용하였다.
모르는것
- 확률론
- p(x),p(z∣x),qϕ(z∣x) 사이의 관계 유도 과정
- KL-divergence
- 관계식로부터 Regularlization Error 유도과정
다음 글로 이어집니다.
Reference
https://process-mining.tistory.com/161