Generative adversarial networks
GANs have a pretty interesting origin story. They started off as a discussion/argument in a bar, with Ian Goodfellow and friends discussing work related to generating data using neural networks. The argument ended with everyone downplaying one another’s work. Ian Goodfellow went back home and coded the first version of what we now term GANs. To his amazement, the code worked on the first try. A more verbose description of the chain of events was shared by Goodfellow himself in an interview with Wired magazine.

Figure 12.2: How GANs originated3
GANs are implicit density functions that sample directly from the underlying distribution. They do this by defining a two-player game of adversaries. The adversaries compete against each other under well-defined reward functions, and each player tries to maximize its rewards. Without going into details of game theory, the framework can be explained as follows.
Discriminator model
This...