Generative Adversarial Networks (GAN), a robust network used for unsupervised machine learning to build a min-max game between two-player, i.e., setting up both the player (networks) with their different objectives. One player is called the generator network (G), and the other is called the discriminator network (D). 1st player (G) tries to fool the 2nd player (D) by producing very natural looking real-world images from random latent vector z, and 2nd player (D) gets better in-distinguishing between real and generated data. Both the networks try to optimize themselves in the best way to accomplish the individual objectives because both have their objective functions, i.e., D wants is to maximize its cost value, and G wants to minimize its cost value.