From Adversarial Training to Generative Adversarial Networks