alexey-pronkin / annealed

Reproducing paper "Improving Explorability in Variational Inference with Annealed Variational Objectives Bayesian methods"

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

annealed

Implementation and reproducing paper "Improving Explorability in Variational Inference with Annealed Variational Objectives Bayesian methods" https://arxiv.org/abs/1809.01818

Team

  • Aleksei Pronkin
  • Mikhail Kurenkov
  • Timur Chikichev

Proposal

see: Proposal in this repo.

Reproducing

Training VAE

For reproducing experiments with VAE use following commands

python3 run_vae.py -epoch 100 train vae_hvi

Epoch is a number of epoch for training. vae_hvi is a possible model. Other possible models are vae, vae_hvi, vae_hvi_avo. Logs is saved to lightning_logs. Checkpoint is saved to lightning_logs/versrion_{version_number}/checkpoints.

Evaluation VAE

For testing VAE use following command

python run_vae.py -model-checkpoint pretrained_models/vae_hvi_avo.ckpt test vae_hvi_avo

This command also generate generation.png and reconstruction.png

Goal

During this project we are going to implement methods and repeat experiments of this paper. https://arxiv.org/abs/1809.01818

Experiments

  • Biased noise model.
  • Toy energy fitting.
  • Quantitative analysis on robustness to beta annealing.
  • Amortized inference on MNIST dataset.

Results

Annealed toy distributions:

alt text

Toy distributions experiments:

alt text

Reconstruction of VAE. Left is ground truth, right is reconstructed.

alt text

Models

Pipeline

We planned to use and rewrite some code from https://github.com/joelouismarino/iterative_inference/, https://github.com/jmtomczak/vae_householder_flow, https://github.com/AntixK/PyTorch-VAE, https://github.com/haofuml/cyclical_annealing and https://github.com/ajayjain/lmconv. (We assume, that first two repositories were used in the original paper closed source code)

About

Reproducing paper "Improving Explorability in Variational Inference with Annealed Variational Objectives Bayesian methods"


Languages

Language:Jupyter Notebook 99.7%Language:Python 0.2%Language:TeX 0.1%