SRFlow icon indicating copy to clipboard operation
SRFlow copied to clipboard

What is the difference between VAE and Normalizing Flow?

Open Litou1 opened this issue 3 years ago • 2 comments

Congrats and excellent work! Maybe a dumb question, what's the difference between this and VAE, and how are they related?

Litou1 avatar Sep 21 '20 18:09 Litou1

Congrats and excellent work! Maybe a dumb question, what's the difference between this and VAE, and how are they related?

Maybe you can refer to NVAE: A Deep Hierarchical Variational Autoencoder

jayzhan211 avatar Sep 25 '20 06:09 jayzhan211

Thanks, great question!

What are the architectural differences of VAE and NF?

For autoencoders, the encoder and decoder are two separate networks and usually not invertible. A Normalizing Flow is bijective and applied in one direction for encoding and the other for decoding. That means that you obtain the exact same image after encoding an image into latent space and decoding it again.

What are the training objectives of VAE and NF?

  • VAE: Maximize the lower bound of the log-likelihood (ELBO)
  • NF: Minimize the exact negative log-likelihood

andreas128 avatar Oct 16 '20 09:10 andreas128