A generative adversarial network (GAN) is a generative model built from two competing networks: a generator creates synthetic data, while a discriminator classifies samples as real or fake. Their opposition can produce realistic representations, but training is notoriously difficult because both networks must improve at roughly the same rate. section 9.1.1 section 9.6
The generator receives a randomized latent space with added noise and produces samples. The discriminator sees real samples alongside generated samples, learns from its prediction feedback, and supplies feedback that helps the generator produce more convincing outputs. If either network learns substantially faster, the adversarial relationship can break down. section 9.1.1 section 9.2
Inspect these recognizable training artifacts when diagnosing a GAN:
- Vanishing gradients occur when an overly strong discriminator provides too little loss feedback for useful generator updates. section 9.2.1
- Mode collapse occurs when the generator repeatedly produces nearly the same output with little variation. section 9.2.1
- Failure to converge occurs when the generator improves too quickly and overwhelms the discriminator, reducing its predictions to random guesses. section 9.2.1
Training and experimenting with a basic GAN
Implement a basic GAN with Python and Keras, train it to generate realistic digits from a chosen class, then vary batch size, generator and discriminator learning rates, or dataset class selection. Extend the experiment by evolving training hyperparameters, reusing an evolved model on a similarly sized dataset, or testing evolutionary strategies and differential evolution. section 9.1.3 section 9.5.1 section 9.6
Use the art-forger and art-detective diagram to visualize how generated fakes challenge the discriminator while its feedback trains the generator. section 9.1.1











