반응형
한 5번정도 본 유튜브 영상... 정리가 매우 잘되어있음
간단 요약정리
- AE는 이미지 압축을 위해 입력과 출력이 같도록 훈련된 모델, 훈련 이후 인코더 부분을 사용하기 위해 설계됨 (데이터 압축)
- VAE는 이미지 생성에 있어서 latent vector z가 제한된 매니폴드(prior distribution) 상에 존재하도록 제한하기 위해 제안됨
- VAE 학습에서 latent vector z의 이상적인 true posterior distribution이 존재하고, 그 distribution을 근사할 수 있도록 Approximation class가 존재하게 되며 q(z|x), 그렇게 샘플링된 z를 사용하여 디코더를 태웠을 때 x가 나올 확률 p(x|z), 그리고 기본적인 생성 모델의 목적 확률 p(x) 총 세개의 확률함수가 등장함.
- 위 세개의 확률분포간의 관계를 따져보다보면 결국 p(x) ≥ ELBO (Derivation1) 또는
p(x) = ELBO + KL (Derivation2) 가 유도되게 됨. (ELBO 안에 q(z|x) 랑 p(x|z) 존재)
- p(x) ≥ ELBO 관계가 성립한다는 걸 알고, 이때 VAE의 학습 목적은 두가지임
- 1) φ에 대한 샘플링 함수(인코더)가 정해진 prior distribution을 잘 따르도록 하는 것 (주로 일반 VAE에서는 정규분포)
- 2) 샘플링된 latent vector z로 디코더를 태웠을 때 원래 이미지를 잘 복원하도록 디코더를 학습시키는것 (AE와 같은 목적)
- 첫번째 목표는 위 그림의 Derivation2 에서 유도되는데, log(p(x)) 가 ELBO와 KL divergence항의 합으로 나타내어지는데, KL항을 잘 보면 이상적인 true posterior distribution p(z|x) 와 우리가 근사하는 q(z|x) - (인코더에서 생성된 z) 의 거리임을 알 수 있다. 이 거리가 최소화될수록 우리가 사용하는 approximation class distribution인 정규분포가 잘 작동한다고 볼 수 있는데, 결국 이 거리를 최소화하는것은 ELBO를 Maximize하는 것과 같다.
- 두번째 목표는 디코더가 주어진 z에 대해 원 데이터 x를 잘 생성하도록 maximum likelihood 문제 (=negative log likelihood) 를 푸는 건데, Derivation1의 ELBO 식을 잘 보면 이미 앞쪽 텀에 log(p(x|z) 가 들어있다. 결국, ELBO를 Maximize 하는 것 안에 이미 두번째 목표가 포함되어있다는 것.
- 고로 θ,φ 두개에 대해 ELBO를 Maximize하면 네트워크가 잘 트레이닝된다고 볼 수 있는것.
- ELBO term을 잘 보면 앞쪽의 term은 z에 대한 decoder reconstruction loss이고 (maximize), 뒤쪽의 term은 미리 정해둔 z의 분포 (정규분포) 와 데이터를 인코더에 넣어 생성된 z의 분포 사이의 KL divergence이다 (minimize).
- 따라서 VAE 끝단에 대한 MSE나 CE loss (Reconstruction) + 인코더에서 나온 z에 대한 추가적인 제약 (Regularization)
을 통해 VAE를 학습시킨다!!!
기타 참고하면 좋은 블로그
반응형