Discriminative Generative Learning