Hyperspherical Variational Auto-Encoders
Tensorflow implementation of Hyperspherical Variational Auto-Encoders
Overview
This library contains a Tensorflow implementation of the hyperspherical variational auto-encoder, or S-VAE, as presented in [1](http://arxiv.org/abs/1804.00891). Check also our blogpost (https://nicola-decao.github.io/s-vae).
- You do not use Tensorflow? Take a look here for a pytorch implementation!
Dependencies
- python>=3.6
- tensorflow>=1.7.0: https://tensorflow.org
- scipy: https://scipy.org
Installation
To install, run
$ python setup.py install
Structure
- distributions: Tensorflow implementation of the von Mises-Fisher and hyperspherical Uniform distributions. Both inherit from
tf.distributions.Distribution
. - ops: Low-level operations used for computing the exponentially scaled modified Bessel function of the first kind and its derivative.
- examples: Example code for using the library within a Tensorflow project.
Usage
Please have a look into the examples folder. We adapted our implementation to follow the structure of the recently proposed Tensorflow Distribution library, (Dillon et al, 2017).
Please cite [1] in your work when using this library in your experiments.
Sampling von Mises-Fisher
To sample the von Mises-Fisher distribution we follow the rejection sampling procedure as outlined by Ulrich, 1984. This simulation pipeline is visualised below:
Note that as is a scalar, this approach does not suffer from the curse of dimensionality. For the final transformation, , a Householder reflection is utilized.
Feedback
For questions and comments, feel free to contact Nicola De Cao.
License
MIT
Citation
[1] Davidson, T. R., Falorsi, L., De Cao, N., Kipf, T.,
and Tomczak, J. M. (2018). Hyperspherical Variational
Auto-Encoders. 34th Conference on Uncertainty in Artificial Intelligence (UAI-18).
BibTeX format:
@article{s-vae18,
title={Hyperspherical Variational Auto-Encoders},
author={Davidson, Tim R. and
Falorsi, Luca and
De Cao, Nicola and
Kipf, Thomas and
Tomczak, Jakub M.},
journal={34th Conference on Uncertainty in Artificial Intelligence (UAI-18)},
year={2018}
}