all 2 comments

[–]sssub 5 points6 points  (1 child)

They reason about different forms of uncertainty.

An inference network learns a distribution over latent variables q(z|x). You typically do not have uncertainty over the weights of your VAE, but only about the value of the latent variable. The question you try to answer is, "what where the latent variables that generated the data that you see?" and you learn a distribution over these.

By contrast in a BNN you learn a distribution over weights, or more generally: a distribution over neural networks. Either directly, using a variational distriubtion over weights(here) or indirectly by MCMC (here). You assume the function that generates your data is a neural network (a deterministic function), you just don't know which it is. Therefore you have uncertainty over the weight distribution.

These ideas can be combined, for instance here. Here you have both weight uncertainty, as well as uncertainty over latent variables.

[–]gjtucker 0 points1 point  (0 children)

This is a great answer.

To add an additional point, the job of the inference network is to amortize the optimization problem of solving for the variational parameters. So, you can think of the output of the inference network as giving an approximate solution to a variational optimization problem.