Answers.Body: <p>I feel like VAE's and Normalising Flows are used for different purposes in general, you can not build latent representation with the latter for example.</p>
  <p>Also Normalising Flows restrict the architecture to use invertible neural networks in practice, since you need a bijection by Normalising flows construction. However such an architecture is not as expressive as a normal fully connected layer or convolutional layer. Also for Normalising Flows you have to keep input and output dimensions of the network fixed, which imposes other restrictions in practice.</p>
  <p>VAE's on the other hand allow to sample your objects distribution by exploring smaller latent distribution, this is now used in diffusion networks for example. There is even a <a href="https://angusturner.github.io/generative_models/2021/06/29/diffusion-probabilistic-models-I.html" rel="nofollow noreferrer">connection</a> between <a href="https://hojonathanho.github.io/diffusion/" rel="nofollow noreferrer">Denoising Diffusion</a> and VAE.</p>
  <p>Overall its just different architectures of neural networks and different approaches to generative modelling.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2024-02-15T18:27:41.847Z
Answers.LastActivityDate: 2024-02-15T18:27:41.847Z
Answers.UserDisplayName: vl_knd
Body: <p>The best reason I have seen for using variational autoencoders is when dealing with sparse data. The Gaussian noise &quot;splats&quot; out the input distribution (see <a href="https://stats.stackexchange.com/a/421660/404277">this StackExchange answer</a>).</p>
  <p>However, normalizing flows do the same thing, without the loss of information a VAE incurs. It feels as if VAEs are used only because everyone else is using them, and then a bunch of StackExchange posts reinforce the message that <em>VAEs are the way to go</em>, when they're theoretically suboptimal.</p>
  <p>I understand that normalizing flows are a little slower (at either training or inference), and more difficult to implement, but is there a theoretical reason that makes VAEs a legitimate choice?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-15T18:20:12.527Z
Comments.Text: Can you be more precise in what kind of task you are looking to solve? Or what kind of theoretical improvement you are looking for specifically?
Comments.UserDisplayName: vl_knd
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2024-02-15T21:45:49.900Z
Comments.Text: I think VAEs are a virus---a suboptimal meme that has infected the ML community. However, popular things are also often *right* (e.g. cross entropy loss), so I might be missing something.
Comments.UserDisplayName: programjames
Tags: <variational-autoencoder>
Title: Are there cases where Variational Auto-Encoders (VAE's) are preferred to other techniques?
UserDisplayName: programjames
ThreadText: # Are there cases where Variational Auto-Encoders (VAE's) are preferred to other techniques?
  
  (Asked by: username_0 on 2024-02-14)
  
  The best reason I have seen for using variational autoencoders is when dealing with sparse data. The Gaussian noise "splats" out the input distribution (see [this StackExchange answer](https://stats.stackexchange.com/a/421660/404277)).
  
  However, normalizing flows do the same thing, without the loss of information a VAE incurs. It feels as if VAEs are used only because everyone else is using them, and then a bunch of StackExchange posts reinforce the message that *VAEs are the way to go*, when they're theoretically suboptimal.
  
  I understand that normalizing flows are a little slower (at either training or inference), and more difficult to implement, but is there a theoretical reason that makes VAEs a legitimate choice?
  
  **Tags:** variational-autoencoder
  > **Comments:**
  > **username_1**: Can you be more precise in what kind of task you are looking to solve? Or what kind of theoretical improvement you are looking for specifically?  
  > **username_0**: I think VAEs are a virus---a suboptimal meme that has infected the ML community. However, popular things are also often *right* (e.g. cross entropy loss), so I might be missing something.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2024-02-15. Score: 0
  
  I feel like VAE's and Normalising Flows are used for different purposes in general, you can not build latent representation with the latter for example.
  
  Also Normalising Flows restrict the architecture to use invertible neural networks in practice, since you need a bijection by Normalising flows construction. However such an architecture is not as expressive as a normal fully connected layer or convolutional layer. Also for Normalising Flows you have to keep input and output dimensions of the network fixed, which imposes other restrictions in practice.
  
  VAE's on the other hand allow to sample your objects distribution by exploring smaller latent distribution, this is now used in diffusion networks for example. There is even a [connection](https://angusturner.github.io/generative_models/2021/06/29/diffusion-probabilistic-models-I.html) between [Denoising Diffusion](https://hojonathanho.github.io/diffusion/) and VAE.
  
  Overall its just different architectures of neural networks and different approaches to generative modelling.
  
  
  ---
  
  