-
Notifications
You must be signed in to change notification settings - Fork 0
Generative Adversarial Networks
Generative Adversarial Networks (GANs) are machine learning models that use two neural networks to compete against each other to generate new data from a training dataset. The two networks are called the Generator and the Discriminator. The Generator takes random noise as input and produces data, like images, that are as close as possible to real data. The Discriminator takes real data and the data generated by the Generator as input and attempts to distinguish between the two. It outputs the probability that the given data is real.
Both the generator and the discriminator are neural networks. The generator output is connected directly to the discriminator input. Through backpropagation, the discriminator's classification provides a signal that the generator uses to update its weights.
It can be thought of the Generator as having an adversary, the Discriminator. The Generator (forger) needs to learn how to create data in such a way that the Discriminator isn’t able to distinguish it as fake anymore. The competition between these two teams is what improves their knowledge, until the Generator succeeds in creating realistic data.
(Realistic images generated by GAN)
📓 Try the following Jupyter Notebook examples:
- Generative Adversarial Networks. Google for Developers.
- DGAN Tutorial. Train a generative adversarial network (GAN) to generate new celebrities after showing it pictures of many real celebrities. (uses PyTorch)
- Introduction to generative adversarial networks. Build a neural network that learns to generate handwritten digits. Jon Bruner(uses Tensorflow).
- GAN tutorial. A GAN that generates small images. Tom Sercu (uses PyTorch).
- GAN. Diego Gomez.
Created: 04/12/2024 (C. Lizárraga); Last update: 04/16/2024 (C. Lizárraga)
UArizona DataLab, Data Science Institute, 2024