A generative adversarial network (GAN) is a type of AI machine learning (ML) technique made up of two nets that are in competition with one another in a zero-sum game framework. GANs typically run unsupervised, teaching itself how to mimic any given distribution of data.
The two neural networks that make up a GAN are referred to as the generator and the discriminator. The generator is a type of convolutional neural network that will create new instances of an object, and the discriminator is a type of deconvolutional neural network that will determine its authenticity, or whether or not it belongs in a dataset.
Both entities compete during the training process where their losses push against each other to improve behaviors, known as backpropagation. The goal of the generator is to produce passable output without being caught while the goal of the discriminator is to identify the fakes. As the double feedback loop continues, the generator produces higher-quality output and the discriminator becomes better at flagging imposters.
GANs have gained recent popularity as an advanced form of machine learning. While not perfect, researchers and developers within the field have experimented with GANs to produce copies of famous artwork, like the Mona Lisa, and portraits of humans that do not exist.
How GANs work
The first step in establishing a GAN is to identify the desired end output and gather an initial training dataset based on those parameters. This data is then randomized and input into the generator until it acquires basic accuracy in producing outputs.
After this, the generated images are fed into the discriminator along with actual data points from the original concept. The discriminator filters through the information and returns a probability between 0 and 1 to represent each image's authenticity (1 correlates with real and 0 correlates with fake).
These values are then manually checked for success and repeated until the desired outcome is reached. Both nets are trying to optimize a different, opposing function in a zero-sum game.
Uses of GANs
GANs can be taught to mimic real life to generate content like multimedia, text and speech. The main function of a GAN is to create data from scratch. Popular applications of this include:
- Translating one image into another or creating comprehensive images out of an outline.
- Increasing the resolution of an image.
- Modeling patterns of human behavior and movement for videos.
- Training an artificial author to blog for a website based on previous content.
- Recreating a popular photo or painting.
- Predicting subsequent video frames.
- Generating an image from text.
- Creating deepfake videos or mimicking celebrity behaviors.
- Producing photorealistic depictions of product prototypes.
- Converting black and white imagery into color.