Back to Topics

Generator vs Discriminator

Description

Generative Adversarial Networks (GANs) consist of two neural networks competing against each other:

  • Generator: Creates fake data samples aiming to mimic the real data distribution as closely as possible.
  • Discriminator: Evaluates data samples and tries to distinguish between real and fake (generated) data.

The two networks are trained simultaneously in a zero-sum game, where the generator improves to produce more realistic samples and the discriminator improves to better detect fakes.

Examples

Example of a simple GAN architecture using TensorFlow/Keras:


import tensorflow as tf
from tensorflow.keras import layers

# Generator Model
def build_generator():
    model = tf.keras.Sequential([
        layers.Dense(128, activation='relu', input_shape=(100,)),
        layers.Dense(784, activation='sigmoid'),
        layers.Reshape((28, 28, 1))
    ])
    return model

# Discriminator Model
def build_discriminator():
    model = tf.keras.Sequential([
        layers.Flatten(input_shape=(28, 28, 1)),
        layers.Dense(128, activation='relu'),
        layers.Dense(1, activation='sigmoid')
    ])
    return model
        

Real-World Applications

Image Generation

Creating realistic images, artworks, and photorealistic faces from noise inputs.

Video Synthesis

Generating or enhancing video frames, including deepfakes and video super-resolution.

Medical Imaging

Generating synthetic medical images to augment training data and improve diagnostic models.

Resources

Video Tutorials

below is the video resource

PDFs

The following documents

Recommended Books

Interview Questions

What is the role of the generator in a GAN?

The generator creates synthetic data samples from random noise, aiming to fool the discriminator into classifying them as real data.

How does the discriminator function in a GAN?

The discriminator evaluates inputs and predicts whether they come from the real data distribution or are generated (fake), helping the generator improve.

Why do GANs train the generator and discriminator simultaneously?

Because they compete in a minimax game where the generator tries to produce realistic data to fool the discriminator, and the discriminator tries to correctly classify real vs fake data, improving both models.