Bayesian dessert for Lasagne
Recent results in Bayesian statistics for constructing robust neural networks have proved that it is one of the best ways to deal with uncertainty, overfitting but still having good performance. Gelato will help to use bayes for neural networks. Library heavily relies on Theano, Lasagne and PyMC3.
# pip install git+git://github.com/pymc-devs/pymc3.git
pip install git+https://github.com/ferrine/gelato.git
git clone https://github.com/ferrine/gelato
pip install -r gelato/requirements.txt
pip install -e gelato
I use generic approach for decorating all Lasagne at once. Thus, for using Gelato you need to replace import statements for layers only. For constructing a network you need to be the in pm.Model context environment.
Warning
lasagne.layers.noise
is not supportedlasagne.layers.normalization
is not supported (theano problems with default updates)lasagne.layers
are hidden in gelato
as they use Lasagne classes. Some exceptions are done for lasagne.layers.helpers
. I'll try to solve the problem generically in future.For comprehensive example of using Gelato
you can reference this notebook
Any spec
class can be used standalone so feel free to use it everywhere
Charles Blundell et al: "Weight Uncertainty in Neural Networks" (arXiv preprint arXiv:1505.05424)