또 다른 생성모델: VQ-VAE by 바죠

Vector-Quantized Variational Autoencoders (keras.io)

In traditional VAEs, the latent space is continuous and is sampled from a Gaussian distribution. It is generally harder to learn such a continuous distribution via gradient descent. VQ-VAEs, on the other hand, operate on a discrete latent space, making the optimization problem simpler. 

VAE 방법은 전형적인 비지도학습으로서 생성모델 중 하나이다. GAN, VAE, Boltzmann machine, RNN, PixelCNN 과 함께 유명한 생성모델이다.

기본 개념은 동일한데, 생성모델로서 유사한 방법들이 계속 출현하는 이유는 간단하다. 모델마다 취약한 부분이 있기 때문이다. 즉, 현실적으로 성능이 좋지 못함. 또는 이론적 가정이 타당하지 못함. 한마디로 말해서 완전하지 않다는 것이다.
생성모델이 완전하지 않은 여러 가지 이유들이 계속 발견되고 있다.  
예를 GAN 방법을 보자, 무수히 많은 ....GAN 방법들이 난무하고 있다. 이것은 복합적으로 성능이 좋지 못하거나 이론적으로 확실하지 않다는 방증이다. 그럼에도 불구하고 특수한 문제를 해결할 때, 큰 문제가 되지 않을 수도 있다. 특정응용문제 풀이에 적용이 가능한 경우도 실제로 존재한다.


VAE도 마찬가지이다. AE 보다 더 연속적인 잠재공간을 정의할 수 있다고 해서 주목을 받았다. 
하지만, 또 다시, 이 부분에 문제가 있음이 연구들에서 확인이 되었다. 연속적으로 보다 더 잘 정의된 잠재 변수들을 확보할 수 있다는 장점을 부각시키면서 등장한 VAE를 넘어서는 시도가 진행되고 있다.
급기야, 불연속적인 접근법을 대놓고 시도한다. 이것이 더 유용하다고 한다. VQ-VAE가 이것을 주장한다.

The authors use a PixelCNN to train these codes so that they can be used as powerful priors to generate novel examples.
생성모델 (비지도 학습), 순차적 모델

특별히, 생성할 때, 새로운 방식을 추구한다.
It's an auto-regressive generative model where the current outputs are conditioned on the prior ones. In other words, a PixelCNN generates an image on a pixel-by-pixel basis.

It uses multiple convolutional layers that preserve the spatial resolution. However, pooling layers are not used. Masks are adopted in the convolutions to restrict the model from violating the conditional dependence.
PixelCNN lowers the training time considerably as compared to PixelRNN.

The PixelCNN model is trained to learn a distribution (as opposed to minimizing the L1/L2 loss), which is where it gets its generative capabilities from.

VQ-VAE2.0 for dog image generation | Kaggle
Generating Diverse High-Fidelity Images with VQ-VAE-2 (uni-freiburg.de)
1711.00937.pdf (arxiv.org)
NVAE: A Deep Hierarchical Variational Autoencoder (Paper Explained) - YouTube
PixelCNN, Wavenet & Variational Autoencoders - Santiago Pascual - UPC 2017 - YouTube



K 개의 embedding vector가 존재한다.

d 는 one-hot vector의 dimension이다.





덧글

댓글 입력 영역

최근 포토로그



MathJax