확률 밀도 함수 추정
- 64x64x3 과 같은 input 이미지가 있을 때, 1차원의 vector로 만들어서 그에 따른 값을 추정하는 확률 분포
- x, y가 어떤 값일 때 나올 수 있는 확률값 (아래 이미지의 바닥면이 x, y이고 확률값이 수직면이라 보면 된다)
VAE의 이해
1. Autoencoder
2. VAE
- Autoencoder의 확률론 기반 변형
- encoder의 output vector가 확률 변수로 모델링되어, 샘플링과정을 통해 추출된 벡터(평균, 분산/표준편차의 추정치)가 디코더의 입력으로 사용됨
loss
- 출력 이미지와 입력 이미지 차이
- KL (KL Diversions term) : dimension별로의 평균/표준편차가 표준정규분포(평균 0, 분산 1)에 가깝도록 해주는 regularization term
VAE 학습 과정
- 주어진 입력 이미지를 하나의 긴 vector로 만들고,
인코더의 output은 각 dimension(RGB 3차원)별로 정규분포의 평균/분산 추출
정규분포에서 랜덤 샘플링을 통해 하나의 벡터 얻게되고
그걸 디코더의 입력으로 사용한다
- loss : 입력-출력 차이, 표준정규분포에 가깝도록 하는 KL Diversions term 사용
- Reparameterization Trick : back-prop이 안되는 문제 개선하기 위한 방법.
Reparameterization Trick
인코더에서
평균 3, 분산 2로 주어졌을 때 N(3, 2^2)에서 샘플링 하는 게 아니라,
표준정규분포 N(0, 1^2)에서 샘플링하도록 처리
0.7이 첫번째 dimension이라면, 샘플링한 표준편차 2를 곱하고, 평균 3을 더해서
y = ax + b
y = 2*0.7 + 3
위처럼 처리한다. (affine transform) N(3, 2^2)에 정확히 대응이 되는 값
a,b라는 값 쪽으로 back-prop을 수행, 학습
VAE는 생성 결과가 blurry함
- VAE loss의 한계점 : 이런 단점을 극복한 게 GAN