Disentangling the latent space learned by a VAE has been subject to a lot of research in recent years [1,2]. This repository provides a simple tensorflow implementation of a Variational Autoencoder and the objective function proposed by [1]:
Experiments showed that this modification to the objective function improves the tradeoff between reconstruction quality and disentanglement.
- Run
pip install -r requirements.txt
- Either run
python visualize.py
to visualize an existing model orpython train.py
to train a new model. - The Dsprites dataset used in the repository can be found here:
Trained this model for 1200 epochs.
[1] HIGGINS, I., MATTHEY, L., PAL, A., BURGESS, C., GLOROT, X., BOTVINICK, M., MOHAMED, S., AND LERCHNER, A. beta-vae: Learning basic visual concepts with a constrained variational framework. In ICLR (2017).
[2] BURGESS, C. P., HIGGINS, I., PAL, A., MATTHEY, L., WATTERS, N., DESJARDINS, G., AND LERCHNER, A. Understanding disentangling in β-VAE. ArXiv abs/1804.03599 (2018).