Giter Club home page Giter Club logo

bayesianautoencoders's Introduction

BayesianAutoencoders

Revisiting Bayesian Autoencoders with MCMC

Autoencoders gained popularity in the deep learning revolution given their ability to compress data and provide dimensionality reduction. Although prominent deep learning methods have been used to enhance autoencoders, the need to provide robust uncertainty quantification remains a challenge. This has been addressed with variational autoencoders so far. Bayesian inference via MCMC methods have faced limitations but recent advances with parallel computing and advanced proposal schemes that incorporate gradients have opened routes less travelled. In this paper, we present Bayesian autoencoders powered MCMC sampling implemented using parallel computing and Langevin gradient proposal scheme. Our proposed Bayesian autoencoder provides similar performance accuracy when compared to related methods from the literature, with the additional feature of robust uncertainty quantification in compressed datasets. This motivates further application of the Bayesian autoencoder framework for other deep learning models.

autoencoder_features

Requirements

This project was tested on python 3.7 and the required packages can be installed using the provided requirements.txt:

    pip install -r requirements.txt

Running Parallel Tempering Bayesian Autoencoder

    cd Bayesian
    python bayes_autoenc_langevincheck.py

After running these lines, you will be prompted to enter the following values:-

  • Number of Samples- These are the total number of samples for which the code will run and this will be distributed across 8 Chains to take advantage of parallel computing (Recommended Number of Samples: >48000)
  • Dataset- Since we run experiments using any of the three datasets, you must choose the dataset you want to use for experimentation.

It is also recommended to use tools like Google Colab to run the code since these are optimized to take advantage of Parallel Computing.

Datasets

The datasets used in the project can be found here:

  1. Swiss Roll
  2. Madelon
  3. Coil 2000

Research

We perform preliminary analysis to prove the effectiveness of the bayesian autoencoder approach for dimensionality reduction as compared to a simple (canonical) autoencoder.

Simple:

Swiss_SA

Bayesian:

Swiss_BA

As part of the Bayesian Autoencoder framework, we are able to form a posterior distribution of the parameters as a result of the experiments and we plot the distributuon of some of the randomly selected weights along with the trace of the values of these paramters over the course of the experimentation:

Madelon_Trace+Post

To quantify the dimensionality reduction, we calculate the reconstruction accuracy between the original and reconstructed dataset and we trace this value over the course of the experimentation.

Madelon_Accuracy

The complete research can be accessed here

Acknowledgements

The team that worked on this project and paper include:-

  • Dr. Rohitash Chandra
  • Dr. Pavel N. Krivitsky
  • Manavendra Maharana
  • Mahir Jain

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.