I. Introduction
There has been many advancements in the field of machine learning, especially deep learning as more and more computing or processing power is becoming available. Deep Learning helps us in extracting high level, useful and abstract features from the input data and using those features in classification and generation tasks. This approach is commonly known as representation learning and is based on how the human mind learns anything. Concept of generative models (based on deep learning) forms the basis of Generative Adversarial Networks (or GANs). Traditional generative models like Restricted Boltzmann machine [15] and Variational Auto Encoder [14] were based on concepts like Markov chains and maximum likelihood estimation. Based on the distribution of input data, they estimate the distribution of generated data, but as a result of not being good in generalization, their performance and outcome is affected. A new concept in the field of generative models, called as Generative Adversarial Networks (GANs) was introduced in the year of 2014 by Goodfellow et al. [1]. It consists of one generator and one discriminator, which are adversaries of each other and thus, constantly trying to outperform each other and thus, improving themselves in the process of doing so. GANs are based on learning the joint probability dis tribution.