This repository is a collection of notebooks about Bayesian Machine Learning. The following links display
some of the notebooks via nbviewer to ensure a proper rendering of formulas.
Dependencies are specified in requirements.txt
files in subdirectories.
-
Bayesian regression with linear basis function models. Introduction to Bayesian linear regression. Implementation with plain NumPy and scikit-learn. See also PyMC3 implementation.
-
Gaussian processes. Introduction to Gaussian processes for regression. Implementation with plain NumPy/SciPy as well as with scikit-learn and GPy.
-
Gaussian processes for classification. Introduction to Gaussian processes for classification. Implementation with plain NumPy/SciPy as well as with scikit-learn.
-
Sparse Gaussian processes. Introduction to sparse Gaussian processes using a variational approach. Example implementation with JAX.
-
Bayesian optimization. Introduction to Bayesian optimization. Implementation with plain NumPy/SciPy as well as with libraries scikit-optimize and GPyOpt. Hyper-parameter tuning as application example.
-
Variational inference in Bayesian neural networks. Demonstrates how to implement a Bayesian neural network and variational inference of weights. Example implementation with Keras.
-
Reliable uncertainty estimates for neural network predictions. Uses noise contrastive priors for Bayesian neural networks to get more reliable uncertainty estimates for OOD data. Implemented with Tensorflow 2 and Tensorflow Probability.
-
Latent variable models, part 1: Gaussian mixture models and the EM algorithm. Introduction to the expectation maximization (EM) algorithm and its application to Gaussian mixture models. Implementation with plain NumPy/SciPy and scikit-learn. See also PyMC3 implementation.
-
Latent variable models, part 2: Stochastic variational inference and variational autoencoders. Introduction to stochastic variational inference with a variational autoencoder as application example. Implementation with Tensorflow 2.x.
-
Deep feature consistent variational autoencoder. Describes how a perceptual loss can improve the quality of images generated by a variational autoencoder. Example implementation with Keras.
-
Conditional generation via Bayesian optimization in latent space. Describes an approach for conditionally generating outputs with desired properties by doing Bayesian optimization in latent space learned by a variational autoencoder. Example application implemented with Keras and GPyOpt.