Understanding And Improving Generative Adversarial Networks