Machine Learning: Generative and Discriminative Models