/gans

Implemented various research papers of topic Generative Adversarial Networks using Tensorflow

Primary LanguagePython

GANs

GANs or Generative Adversarial Networks is the one of the most interesting things you can work in ML field. They propose in 2014 in the paper called Generative Adversarial Nets by Ian Goodfellow et al. These model solves a unsupervised learning problem as opposed to Variational Autoencoders which solves semi-supervised learning problem.

But these models have their own problems as well. Generative Adversarial Models are very hard to train and often mode collapse (generating same output for different inputs) is observed. Despite of these issues, these models managed to produce high quality images of human faces and can transform images from one domain to another.

Deep Convolutional GAN

Uses the classical GAN log loss and uses Convolutional layer instead of linear layers to produce images. Conv2DTranspose is used to upsample images.

First introduced in the paper Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks by Alec Radford et al.

🔗Code implementation


Conditional GAN

These models are used to produce images based on some prior condition. These prevent the models to randomly generate images.

Introduced in paper Condtional Generative Adversarial Nets by the authors Mehdi Mirza, Simon Osindero.

🔗Code implementation


Wasserstein GAN

These models provides more stabilization of training over the classical GANs. It uses Wasseretein Loss which difference between mean of fake predictions and real predictions. Since it does not use expectation in the loss, we do not use sigmoid on discriminator output. It also apply weight clipping on the weights of conv layers.

Introduced in paper Wasserstein GAN by Martin Arjovsky et al.

🔗Code implementation


Improved Wasserstein GAN

These models a adds new term, a penalty term, which penalizes the discriminator loss. It does not use weight clipping.

Introduced in paper Improved Training of Wasserstein GAN in 2017 by Ishaan Gulrajani et al.

🔗Code implementation