A Generative Adversarial Network (GAN) is made up of two networks, a discriminator and a generator.
The generator produces data G based on a random vector of noise
The discriminator is shown both True data Y and Generated data G and must make a guess (0 or 1) as to whether the data is from Y or G
The generator is then told to what extent it fooled the discriminator and produces another batch of data from random noise G2
Steps 2 and 3 are repeated until the generator produces realistic images that fool the discriminator 50% of the time
The GAN used to generate the images shown below is not state of the art. It was handwritten by myself as a proof of concept when developing a separate computer vision system.
If it was not already clear, these cats do not exist. They are generated by passing random noise through a trained generator. The blue and green noise visible in the images above shows where the generator has incorrectly predicted the colour, a larger dataset to train from and a greater number of training parameters may reduce this issue.