This repository is a collection of notebooks covering various topics of Bayesian methods for machine learning.
-
Variational inference for Bayesian neural networks. Demonstrates how to implement and train a Bayesian neural network using a variational inference approach. Example implementation with Keras.
-
Bayesian regression with linear basis function models. Introduction to Bayesian linear regression. Implementation from scratch with plain NumPy as well as usage of scikit-learn for comparison.
-
Gaussian processes. Introduction to Gaussian processes. Example implementations with plain NumPy/SciPy as well as with libraries scikit-learn and GPy.
-
Bayesian optimization. Introduction to Bayesian optimization. Example implementations with plain NumPy/SciPy as well as with libraries scikit-optimize and GPyOpt. Hyperparameter tuning as application example.
-
Variational auto-encoder. A guide to variational auto-encoders described as a journey from expectation maximization (EM) algorithm over variational inference to stochastic variational inference. Example implementation with Keras.
-
Deep feature consistent variational auto-encoder. Describes how a perceptual loss can improve the quality of images generated by a variational auto-encoder. 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 of variational auto-encoders. Example application implemented with Keras and GPyOpt.
-
Topic modeling with PyMC3. An introduction to topic models and their implementation with the probabilistic programming library PyMC3.