Machine Learning (A Probabilistic Perspective)