Generative Adversarial Network ( GAN ) ( Goodfellow et al . , 2014 ) has been a new promising approach to unsupervised learning of complex high dimensional data in the last two years , with successful applications on image data ( Isola et al . , 2016;Shrivastava et al . , 2016 ) , and high potential for predictive representation learning ( Mathieu et al . , 2015 ) as well as reinforcement learning ( Finn et al . , 2016;Henderson et al . , 2017 ) . In a nutshell , GANs learn from unlabeled data by engaging the generative model ( G ) in an adversarial game with a discriminator ( D ) . D learns to tell apart fake data generated by G from real data , while G learns to fool D , having access to D 's input gradient .