A gentle introduction to Generative Adversarial Networks, and a practical step-by-step tutorial on making your own with PyTorch.
This beginner-friendly guide will give you hands-on experience:
- learning PyTorch basics
- developing your first PyTorch neural network
- exploring neural network refinements to improve performance
- introduce CUDA GPU acceleration
It will introduce GANs, one of the most exciting areas of machine learning:
- introducing the concept step-by-step, in plain English
- coding the simplest GAN to develop a good workflow
- growing our confidence with an MNIST GAN
- progressing to develop a GAN to generate full-colour human faces
- experiencing how GANs fail, exploring remedies and improving GAN performance and stability
Beyond the very basics, readers can explore more sophisticated GANs:
- convolutional GANs for generated higher quality images
- conditional GANs for generated images of a desired class
The appendices will be useful for students of machine learning as they explain themes often skipped over in many courses:
- calculating ideal loss values for balanced GANs
- probability distributions and sampling them to create images
- carefully chosen examples illustrating how convolutions work
- a brief explanation of why gradient descent isn't suited to adversarial machine learning
All code is available publicly as open source on github.