Machine Learning: Discriminative and Generative. (The Kluwer international series in engineering and computer science)