상세 컨텐츠

본문 제목

[4주차 / 최유민/ 논문 리뷰] VAE(Variational autoencoder)

2023 Summer Session/CV Team 3

by 도지01 2023. 8. 6. 23:41

본문

AE - autoencoder

VAE를 공부하기 전에 AE에 대해서 간단하게 이해하고 넘어가면 좋다.

encoder, decoder, latent space는 어떤 정보를 담고 있는지 알 수 있다.

VAE - Variational autoencoder

GAN, diffusion model 과 같이 generative model의 한 종류이다.

생성 모델의 목적은 data와 같은 분포를 가지는 smaple 분포에서 sample을 뽑아 새로운 것을 생성해 내는 것이 목표다.

 

(1) 주어진 training data가 p_data(x)(확률밀도함수)가 어떤 분포를 가지고 있다면, sample 모델 p_model(x) 역시 같은 분포를 가지면서, (sampling 부분)
(2) 그 모델을 통해 나온 inference 값이 새로운 x라는 데이터이길 바란다. (Generation 부분)

 

각 생성 모델의 특징

VAE, GAN, Diffusion 모델을 위 생성 모델의 목적과 관하여 간단히 비교해 보면 다음과 같다.

 

GAN의 경우 생성된 데이터의 품질은 우수하지만, 학습 과정의 특징 상 sample 공간을 모두 커버하면서 학습되기 어렵다.

VAE의 경우 데이터 공간의 전체 영역에서 샘플링이 가능하지만, 이미지를 넘어서 영상과 같은 고차원 데이터를 생성할 경우 한계가 존재한다.

Diffusion 모델은 위 두 조건에 부합하는 생성 모델로, GAN, VAE와 함께 쓰이고 있다.

 

VAE 모델 구조

인코더

- 인코더는 입력 데이터 x에 대해 latent space z값 분포의 평균과 분산을 아웃풋으로 낸다.

- VAE에서는 데이터의 각 특징(latent variable)들의 분포는 정규분포를 따른다고 가정한다.

 

 

Sampling

 

샘플링 과정에서 우리는 z가 N(𝜇_𝑖, 𝜎_𝑖)를 따른다고 볼 수 있다.

하지만 위와 같이 식을 작성하면 backpropagation과정에서 문제가 생긴다.

이를 해결하기 위해 reparmetrization trick를 사용하여 오른쪽 z로 샘플링한다.

왼쪽과 오른쪽의 z가 같은 정규분포를 따르는 것을 확인할 수 있다.

디코더

디코더에서는 z를 인풋으로 받아 deconv를 이용해 원래 이미지 사이즈로 변환한다.

 

 

 

ELBO - low bound의 존재 여부

 

모델의 인코더 네트워크를 q, 디코더 네트워크를 p라고 할 수 있다. 각각의 역할은 위에서 설명되어 있다.

 

 

마지막 줄의 각 항이 무엇을 의미하는지 생각해보면

첫 번째 항 : 디코더 네트워크가 z로부터 얼마나 좋은 x를 뽑아내고 있는지

두 번째 항 : 인코더가 x로부터 예상한 z와 기존에 가정한 가우시안 p(z) 가 얼마나 비슷한지

마지막 항 : 마지막 항은 intractable 하다. 계산할 수 없지만, KL dievergence값은 항상 0 이상이다.

즉 앞 두 항의 합이 lower bound 가 된다. 이 앞 두 항을 ELBO : Evidence LowerBOund 라고 한다.

-> 좌변을 maximize하고 싶다면, 이 lower bound 값을 maximize하면 된다.

 

 

Loss function

VAE에서는 아래 두 가지 가정을 적용했을 때

 Loss function을 아래와 같이 구할 수 있다.

 

 

 

 

 

참고자료

Auto-Encoding Variational Bayes

확률편미분방정식과 인공지능

Naver D2 이활석 - 오토인코더의 모든 것 - 발표슬라이드

Naver D2 이활석 -오토인코더의 모든 것 - 2/3 - 발표영상

VAE 직관적 이해

 

 

관련글 더보기

댓글 영역