Generative Adversarial Networks: A Two-player game
![Image](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZfpXiPO9fYlFHcOx8rmEenXuIy17cIeyv8KUMWPtWo8oHi-oM2QEdXIFEIEj4a8MwOVymbgz4I8OHZdOIVl1DtwBf37mtZDycnr5kDskWE0UWJ23k820vk2t1PG0reAE_5PYmIiZgSx4iJ5OsiUDCYCvCLt-pM7df0hWmOSyBEnFOOnd5SkjrrB-iPw/s600/GAN.png)
Introduced in 2014 by Goodfellow. et al , Generative Adversarial Networks (GANs) revolutionized the field of Generative modeling. They proposed a new framework that generated very realistic synthetic data trained through a minimax two-player game. With GANs, we don't explicitly learn the distribution of the data $p_{\text{data}}$, but we can still sample from it. Like VAEs, GANs also have two networks: a Generator and a Discriminator that are trained simultaneously. A latent variable is sampled from a prior $\mathbf{z} \sim p(\mathbf{z})$ and passed through the Generator to obtain a fake sample $\mathbf{x} = G(\mathbf{z})$. Then the discriminator performs an image classification task that takes in all samples and classifies it as real ($1$) or fake ($0$). These are trained together such that while competing with each other, they make each other stronger at the same time. To summarize, A discriminator $D$ estimates the probability of a given sample coming from the...