What are GANs (Generative Adversarial Networks)?
A GAN is a deep learning architecture. It trains two neural networks to compete against each other to generate more authentic new data from a given training dataset. A GAN is called adversarial because it trains two different networks and pits them against each other. One network generates new data by taking an input data sample and modifying it as much as possible. The other network tries to predict whether the generated data output belongs to the original dataset. In other words, the predicting network determines whether the generated data is fake or real. The system generates newer, improved versions of fake data values until the predicting network can no longer distinguish fake from original.
One model, the generator, creates fake data, while the other model, the discriminator, tries to identify whether the data is real or fake. This process of creating and identifying fake data helps both models improve over time.
GANs can be used for a variety of tasks, such as image generation, video frame prediction, and image enhancement. For example, GANs can be used to create realistic-looking images of faces, predict what the next frame in a video will look like, or improve the quality of a low-resolution image. For instance, you can generate new images from an existing image database or original music from a database of songs.
Here are some of the key points:
- GANs are a type of unsupervised learning, meaning they do not require labelled data to train.
- GANs consist of two sub-models: a generator and a discriminator.
- The generator’s job is to create fake data, while the discriminator’s job is to identify whether the data is real or fake.
- This is a zero-sum game, which means there will always be a winner and a loser. If the Generator can create fake data that the discriminator can not identify, then the discriminator will update. Similarly, if the discriminator identifies the fake data then the generator needs to improve.
- GANs can be used for a variety of tasks, such as image generation, video frame prediction, and image enhancement.