Google DeepMind의 논문이며 DALL-E에 사용되었다고 유명한 논문이다.

latent space, VAE와 AE에 대해서는 VAE**(Variational AutoEncoder)** 이 글에서 다뤘다.


Abstract

supervision 없이 유용한 representation을 학습하는 것은 머신러닝에서 매우 중요한 문제이고 이 논문에서는 심플하고 강력한 generative model이 discrete representation을 학습하도록 한다.

그래서 VQ(vector quantised) 라는 단어를 사용한 것이다.

VQ-VAE는 기존 VAE와 다음과 같은 점에서 차이가 있다.

  1. prior은 static하지 않고(정규분포 등으로 정의되지 않고) 학습된다.

  2. discrete latent representation을 학습하기 위해 vector quantisation (VQ)라는 아이디어를 사용한다.

    이는 posterior collapse라는 VAE의 고질적 문제를 해결한다.

이렇게 학습된 representations를 autoregressive prior과 짝지어서 고퀄리티의 이미지/비디오/스피치 등을 생성할 수 있도록 한다.

Introduction

continuous한 latent representation이 AE 및 VAE에서 잘 사용되어 왔으나, 현실세계의 대부분의 데이터(이미지/오디오/언어 등)는 이산적인 형태이다.

따라서 latent representation은 연속적일 필요가 없다. 어떠한 수로 표현되기만 하면 된다.

이산적인 표현을 통해 데이터의 특정한 local 영역이나 noise에 집중하기보다는 feature만을 성공적으로 모델링할 수 있도록 한다.

그러나 이산적인 representation은 backpropagation이 되지 않아 딥러닝에 적합하지 않다고 여겨져 왔다.

이를 해결하기 위한 concrete softmax / gumbel softmax 등의 방식이 연구되었었다. VQ-VAE에서는 decoder의 gradient를 바로 전달하는 간단한 방식으로 이를 해결하였다.

VQ-VAE

VQ-VAE의 전체적인 flow는 다음과 같다

Untitled

그림에서 보이듯 마치 auto encoder + codebook의 형태를 가진다