Abstract
Supervision 없이 효과적인 Representations를 하는 것은 Machine Learning의 중요한 도전 과제였다. 이 논문에서 제시하는 Generative Model은 그러한 Discrete Representations를 수행한다. 그것이 Vector Quantised-Variational AutoEncoder(VQ-VAE)이다.
- Representations
- 정보나 데이터를 다른 형태나 방식으로 표현하는 것을 의미한다. 이것은 데이터의 복잡성을 낮추거나 중요한 특징을 강조하는 데 사용되며, 데이터를 효과적으로 다루고 활용하기 위해 데이터를 다른 형태나 구조로 변환하는 과정이다. 임베딩, 토큰화 등 특징을 숫자로 표현하는 것으로 이해하자.
VQ-VAE는 VAEs와 무엇이 다른가?
첫째, Encoder의 Output이 Continuous하지 않고 Discrete하다. 모델의 사전 분포(Prior)가 정적(Static)으로 고정되지 않고 데이터에 맞게 학습된다. 이러한 Discrete Latent Representations를 위해서는 Vector Quantisation(VQ) 아이디어를 사용해야 한다.
- “Prior is learnt rather than static”
- 일반적으로 Variational Autoencoder (VAE)와 같은 확률적 생성 모델에서는 사전 분포(Prior)로 정규분포(Normal Distribution) 등의 확률 분포를 사용하는 것이 일반적이다. 이러한 사전 분포는 모델 학습 중에 고정되어 있고, 모델은 데이터를 이 분포로부터 Sampling하여 생성한다.
- 그러나 VQ-VAE에서는 이러한 전통적인 사전 분포 대신에, 모델이 Train Dataset에 따라 사전 분포를 학습한다. 이 학습 과정은 보통 사전 분포를 학습하는 구조인 "Vector Quantization"을 통해 이루어진다. VQ-VAE는 입력 데이터를 이산적인 코드북(Embedding Table) 벡터로 매핑하여 이산화된 표현을 학습하고, 이 코드북 벡터의 사전 분포를 조정 및 학습한다. 데이터에 더 잘 맞는 사전 분포를 학습하여 모델이 더 나은 데이터 생성 및 재구성을 수행할 수 있도록 돕는다.
- Discrete Latent Representations
- 데이터를 잠재 공간으로 표현할 때, 연속적인 값(벡터)로 데이터를 나타내는 것이 일반적인 방법이다. 하지만 "Discrete Latent Representations"에서는 이산적인 값을 사용한다. 이러한 이산적인 표현은 주로 위에서 언급한 코드북으로 구성된다.
- Vector Quantisation
- Vector Quantization (VQ)는 데이터 압축 및 표현 기술 중 하나로, 데이터를 이산적인 코드북벡터로 Mapping하여 효율적으로 표현하고 저장하는 방법이다. VQ는 데이터의 차원 축소와 효과적인 표현을 가능하게 하며, 이산적인 표현은 데이터의 특징을 강조하거나 유용한 정보를 추출하는 데 도움이 된다. 원본 데이터의 벡터는 생성된 코드북의 벡터 중 가장 가장 가까운 코드북 벡터로 Mapping되어 이산적인 벡터가 되며, 이를 통해 원본 데이터와 정확히 일치하지는 않지만, 잡음이나 왜곡이 적게 발생하도록 최적화된 이산 데이터가 된다.
VQ를 사용하면, VAE에서 자주 발생하는 문제였던 Posterior Collapse를 교묘하게 회피할 수 있다. Posterior Collapse는 강력한 Autoregressive Decoder와 결합되었을 때 Latent가 무시되는 현상이다.
Posterior Collapse는 처음 듣는다. 이에 대한 이론적인 설명을 봐야 할 듯하다.
이러한 Representations를 Autoregressive Prior와 결합하면 아주 높은 질의 이미지, 비디오, 음성 등을 생산할 수 있게 된다.
Representations는 VQ의 방식으로, 코드북으로 생성되는 Discrete Latent Representations를 의미하는 것 같은데, 여기서 말하는 Autoregressive Prior는 뭘까? Autoregressive Decoder인가?
- Autoregressive Decoder
- Autoregressive는 현재 시간 스텝의 변수 또는 데이터 포인트가 이전 시간 스텝의 변수에 종속적이라는 가정을 기반으로 한다. 예를 들어 시계열 데이터의 경우, 현재 시간 스텝의 값을 이전 시간 스텝의 값들로 설명하는 모델을 자기 회귀(Autoregressive) 모델이라고 할 수 있다.
- Autoregressive Decoder는 시퀀스 데이터를 생성하거나 디코딩하는 데 사용되는 모델의 구성 요소이다. 이것은 주로 자연어 처리 및 이미지 생성과 관련이 있다. 이미지 생성 분야에서도 Autoregressive Decoder가 사용된다. 예를 들어, PixelRNN 및 PixelCNN과 같은 모델은 이미지의 각 픽셀을 생성하는 데 사용됩니다. 이러한 모델은 각 픽셀의 색상을 이전 픽셀의 색상에 의존하여 생성한다.
1. Introduction
여러 많은 Task는Raw Data의 학습된 Representations에 의존한다. 하지만 Unsupervised 방식으로 학습된 Representations의 유용성은 여전히 주류가 아니다.
Unsupervised Models는 Maximum Likelihood, Reconstruction Error가 일반적인 Objectives(목표함수)다. 이 논문에서의 목표는 두 가지이다.
- Maximum Likelihood, Reconstruction Error는 특정한 Feature 응용에 의존적인 효과를 가지기 때문에, Latent Space에서 Maximum Likelihood를 최적화 하면서도 중요한 Feature를 보존하는 것.
- 일반적으로 Latent를 사용하지 않고 강력한 Decoder를 사용하는 생성 모델과 달리 Discrete Latent Variables의 여러 Domaing에 대한 효율성을 증명하는 것이다.
Discrete Representations는 복잡한 Reasoning, Planing, Predictive Learning에 사용하기 좋고, 강력한 Autoregressive Models는 Discrete Variables 분포 모델링을 위해 개발되었다.
위 부분은 와닿지 않는다. 끝까지 읽어야 이해가 될 것 같다.