VAE(Variational Auto-Encoder) 이해하기

Seyong Kim
3 min readJul 21, 2021

--

# 이 글은 미술관에 GAN 딥러닝 실전 프로젝트와 MusicVAE 논문을 참고하여 작성한 글입니다.

VAE(Variational Auto-Encoder)의 특징을 이해하기 위해서는 AutoEncoder(이하 AE)와 비교할 필요가 있습니다.

VAE는 AE와 형태 면에서 유사합니다. 학습 데이터(training data)를 병목(Bottleneck) 구조를 통해서 압축하여 저차원의 잠재 코드(latent code, z)를 만듭니다. 잠재 공간(latent space)을 통해서 모델은 입력 데이터 간의 유사성과 차이를 학습하게 됩니다.

AutoEncoder(Credit: ResearchGate)

그렇다면 VAE와 AE는 무슨 차이가 있을까요?

VAE는 Generative model인 반면, AE는 입력 데이터를 재구성 할 수는 있지만 그대로 생성 모델로 적용하기 어렵습니다. 만약 AE를 통해서 새로운 데이터를 생성하려 한다면 품질이 나쁜 데이터를 얻게 됩니다. 그 이유는 아래 이미지를 통해 알 수 있습니다.

Credit: thilospinner

AE에 의해 생성된 잠재 공간 분포(좌측)은 VAE에 의해 생성된 분포(우측)에 비해 멀리 퍼져 있습니다. 예를들어, y축의 값은 -20~40, x축의 값은 -30~50의 범위에 있습니다. 같은 거리를 기준으로 보면 VAE는 촘촘하게 밀집된 형태이고, AE는 듬성듬성 빈틈이 많습니다. AE의 이 빈틈은 데이터를 재구성(reconstruction) 할 때 저품질의 데이터를 구성하는 원인이 됩니다.

VAE가 이처럼 고른 잠재 분포를 보일 수 있는 까닭은 무엇일까요?

VAE(Credit: towardsdatascience)

VAE의 인코더는 입력 데이터를 평균과 표준 편차 벡터로 인코딩 한 후, 두 벡터에 대응하는 분포에서 샘플링을 수행합니다. 그리고 쿨백-라이블러 발산(KL divergence)을 손실함수로 사용하여, 해당 분포가 표준 정규 분포에 가까워지도록 학습하게 됩니다. 결국, 표준 정규 분포에 근접한 분포에서 샘플링된 VAE의 잠재 공간 분포는 원점을 기준으로 데이터가 대칭적이고, 분포가 고른 형태를 보이게 됩니다.

위에서는 듬성듬성과 촘촘함이란 어휘를 사용했는데요, 수학적 용어를 빌리자면 AE의 잠재공간은 이산적(discrete)이고 VAE의 잠재공간은 연속적인(continuous) 성격을 갖는다고 할 수 있습니다. VAE 잠재공간의 연속성은 얼굴 합성이나 특징 바꾸기와 같은 처리 과정에서 부드러운(smooth) 특성을 보입니다.

--

--