Generative Adverserial Networks


What are GAN’s?

What are Generative Models?

Generative models aim at learning the true data distribution of the training data so as to generate new data points with some variations.

To train a generative model we first collect a large amount of data in some domain (e.g., think millions of images, sentences, or sounds, etc.) and then train a model to generate data like it.

What are GAN’s?

GAN’s pose the training process as a game between two separate networks: a Generator network and a second discriminative network that tries to classify samples as either coming from the true distribution (training data) or the model distribution (generated data) . Every time the discriminator notices a difference between the two distributions the generator adjusts its parameters slightly to make it go away, until at the end the generator exactly reproduces the true data distribution and the discriminator is guessing at random, unable to find a difference.

Generative Adverserial Network

Training Discriminator

Discriminator has to output 1 when real data comes.

Discriminator has to output 0 when generated data comes.

The discriminator’s objective to maximize our function V.

Apply Gradient Ascend —

In our function V(D, G), the weights in the discriminator are adjusted so that when real data distribution (pdata(x)) passes through the discriminator, the output of the discriminator is equal to 1. (Increasing V)

The weights in the discriminator are adjusted so that when generated data from the output of the generator is passed through the discriminator, the output of the discriminator is equal to 0. (Increasing V)

Training Generator

The Generator’s objective to minimize our function V.

Apply Gradient Descend—

The weights in the generator are adjusted so that when generated data from the output of the generator is passed through the discriminator, discriminator output is equal to 1. (Decreasing V)

Source: Deep Learning on Medium