Let’s see how your face looks in different age or condition.
Generative Adversarial Networks are a type of deep neural network architecture that uses unsupervised machine learning to generate data. They were introduced in 2014, in a paper by Ian Goodfellow, Yoshua Bengio, and Aaron Courville, which can be found at the following link: https://arxiv.org/pdf/1406.2661. GANs have many applications, including image generation and drug development.
This blog will introduce you to the core components of GANs. It will take you through how each component works and the important concepts and technology behind GANs. It will also give you a brief overview of the benefits and drawbacks of using GANs and an insight into certain real-world applications.
A GAN is a deep neural network architecture made up of two networks, a generator network and a discriminator network. Through multiple cycles of generation and discrimination, both networks train each other, while simultaneously trying to outwit each other.
Their goal is to generate data points that are magically similar to some of the data points in the training set.
Currently, people use GAN to generate various things. It can generate realistic images, 3D-models, videos, and a lot more.
Firstly, let’s take a look in general GANs model.
A generator network uses existing data to generate new data. It can, for example, use existing images to generate new images. The generator’s primary goal is to generate data (such as images, video, audio, or text) from a randomly generated vector of numbers, called a latent space. While creating a generator network, we need to specify the goal of the network. This might be image generation, text generation, audio generation, video generation, and so on.
The discriminator network tries to differentiate between the real data and the data generated by the generator network. The discriminator network tries to put the incoming data into predefined categories. It can either perform multi-class classification or binary classification. Generally, in GANs binary classification is performed.
In a GAN, the networks are trained through adversarial play: both networks compete against each other. As an example, let’s assume that we want the GAN to create forgeries of artworks:
- The first network, the generator, has never seen the real artwork but is trying to create an artwork that looks like the real thing.
- The second network, the discriminator, tries to identify whether an artwork is real or fake.
The generator, in turn, tries to fool the discriminator into thinking that its fakes are the real deal by creating more realistic artwork over multiple iterations.
The discriminator tries to outwit the generator by continuing to refine its own criteria for determining a fake.
They guide each other by providing feedback from the successful changes they make in their own process in each iteration.
Ultimately, the discriminator trains the generator to the point at which it can no longer determine which artwork is real and which is fake.