Giter Site home page Giter Site logo

iwae's Introduction

IWAE - Tensorflow Implementation of Importance Weighted Autoencoder.

Variational Autoencoders are a class of generative modelling techniques that aim to learn a good representation of the distribution of the observed data x by imposing an underlying latent space z. By accurately approximating the posterior p(z|x) it aims to maximize the lower bound to p(x).

However, VAEs make assumption that the posterior is approximately factorial which limits the capacity of the model. IWAEs use multiple samples from the approximate posterior to get a tighter lower bound on p(x), which allows you to fit posteriors that can potentially overcome the assumptions VAE lays out.

IWAE has been introduced and explained in the paper Importance Weighted Autoencoders by Yuri Burda, Roger Grosse, and Ruslan Salakhutdinov.

The experiments and results from this work are summarized in this poster (PDF version here)

alt text

Note - In the "Conclusion and Insights" section for the poster, the third point of interest is incorrect and was the result of a misinterpretation of the scatter plots in Fig. 3. Note that the scatter plots in Fig. 3 show the distribution of the aggregate posterior Exp(z|x)p(x) and not the posterior conditioned on a particular input. Since the aggregate posterior is pushed closer to the prior by design, Fig. 3 doesnot emphasize on the multimodality of the posterior distributions conditioned on a particular input. A corrected and more clearer plot is coming up soon!

Prerequisites for running the code

Dataset:

Load the required datasets by running datasets_download.py

Python packages:

tensorflow, tensorflow.python.debug, numpy, progressbar, sys, os .. etc.

Running the experiments

This code allows you to train, evaluate and compare VAE and IWAE architectures on the mnist dataset. Additionally you can also plot samples from the posterior from the model. All this can be done by changing the parameters of the main code in experiments.py and running it.

iwae's People

Contributors

neha191091 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.