David Barber - Bayesian Reasoning and Machine Learning