A demo of Bayesian neural networks on a toy binary classification problem.
Two ways of implementing Bayesian neural networks are demonstrated:
- Stochastic Variational Inference using local reparameterization [1]
- Hamiltonian Monte Carlo [2]
[1] Kingma et al., Variational Dropout and the Local Reparameterization Trick, NeurIPS 2015. [arXiv]
[2] Neal, MCMC using Hamiltonian dynamics, Handbook of Markov Chain Monte Carlo, 2011. [arXiv]
Display the training data:
python run.py --show
Train a non-Bayesian neural network by minimizing cross-entropy:
python run.py --mle
Train a Bayesian neural network using Stochastic Variarional Inference:
python run.py --svi
Train a Bayesian neural network using Hamiltonian Monte Carlo:
python run.py --hmc