Generative Adversarial Networks (GANs)
A GAN consists of two networks; a generator (G) and a discriminator (D), given a set of training examples, G will generate outputs and D will classify them as either being from the same distribution as the training examples or not. In doing so D is optimized so as to be able to discriminate between examples from the training example and from the generator network which in turn is optimized to fool D into classifying its output as being drawn from the training examples. After such training G can now generate samples with properties very similar to those of the training examples. GANs tend to be devilishly hard to train
# Resources
- List of papers and other on Generative Adversarial Networks
- Generative Adversarial Networks
- Generative adversarial networks
- Introduction to deep generative modeling: Generative Adversarial Networks (GANs)
- Generative adversarial networks for beginners
- Intuitive explanation of GANs. Subtypes
- https://adeshpande3.github.io/adeshpande3.github.io/Deep-Learning-Research-Review-Week-1-Generative-Adversarial-Nets
- http://www.openias.org/hybrid-generative-discriminative
- http://edwardlib.org/tutorials/gan
- Play with GANs in your browser
- Do GANs actually do distribution learning?
- The GAN Zoo - A list of all named GANs!
- Advances in Generative Adversarial Networks
- Drawbacks of using GANs: Mode collapse, Convergence, Quality evaluation, Metrics
- Techniques for Improving Performance:
- Alternative Loss Functions: One of the most popular fixes to the shortcomings of GANs is the Wasserstein GAN. It essentially replaces the Jensen Shannon divergence of conventional GANs with the Earth Mover distance (Wasserstein-1 distance or EM distance)
- Two Timescale Update Rule (TTUR): In this method, we use a different learning rate for the discriminator and the generator. Typically, a slower update rule is used for the generator and a faster update rule is used for the discriminator
- Gradient Penalty: In the paper Wasserstein GAN GP, a simple gradient penalty was introduced which is added to the loss function to avoid exploding vanishing gradients and optimization issues (caused by weight clipping)
- Spectral Normalization: weight normalization technique that is typically used on the Discriminator to enhance the training process
- Unrolling and Packing
- Stacking GANs: use multiple GANs placed consecutively, where each GAN solves an easier version of the problem. For instance, FashionGAN used two GANs to perform localized image translation. Progressive GANs (ProGANs) can generate high quality images of excellent resolution.
- Relativistic GANs: Conventional GANs measure the probability of the generated data being real. Relativistic GANs measure the probability of the generated data being āmore realisticā than the real data. We can measure this ārelative realismā using an appropriate distance measure, as mentioned in the RGAN paper
- Self Attention Mechanism (SAGAN): The authors of Self Attention GANs claim that convolutions used for generating images look at information that are spread locally. That is, they miss out on relationships that span globally due to their restrictive receptive field. Self-Attention Generative Adversarial Network allows attention-driven, long-range dependency modeling for image generation tasks.
- Miscellaneous Techniques: Feature Matching, Mini Batch Discrimination, Historical Averaging, One-sided Label Smoothing, Virtual Batch Normalization.
# Courses
# Talks
- #TALK GANs for Good - A Virtual Expert Panel by DeepLearning.AI
- #TALK A Friendly Introduction to Generative Adversarial Networks (GANs)
# Code
- #CODE Keras-GAN - Collection of Keras implementations of GANs
- #CODE Pytorch-GAN - Collection of Pytorch implementations of GANs
- #CODE Generative models in Tensorflow and Pytorch
- #CODE Tensorflow generative model collection
- #CODE
ydata-synthetic
- This repository contains material related with GANs for synthetic data generation, in particular regular tabular data and time-series
# References
- #PAPER Generative Adversarial Networks (Goodfellow 2014)
- #PAPER GAN to convert text descriptions into images (Reed 2016)
- #PAPER
Unsupervised representation learning with GANs (Radford 2016)
- Although GANs were already introduced in 2014 by Ian Goodfellow, it wasn’t until the publication of this paper detailing a deep convolutional architecture (DCGAN) that GANs really took off
- https://www.tensorflow.org/tutorials/generative/dcgan
- https://towardsdatascience.com/dcgans-deep-convolutional-generative-adversarial-networks-c7f392c2c8f8
- #CODE https://github.com/tensorflow/models/blob/master/research/slim/nets/dcgan.py
- #PAPER Deconvolution and Checkerboard Artifacts (Odena 2016)
- #PAPER InfoGAN: Interpretable Representation Learning by Information Maximizing Generative Adversarial Nets (Chen 2016)
- #PAPER Checkerboard artifact free sub-pixel convolution: A note on sub-pixel convolution, resize convolution and convolution resize (Aitken 2017)
- #PAPER Wasserstein GAN (Arjovsky 2017)
- #PAPER Improved Training of Wasserstein GANs (Gulrajani 2017)
- #PAPER Bayesian GAN (Saatchi 2017)
- #PAPER WaterGAN: Unsupervised Generative Network to Enable Real-time Color Correction of Monocular Underwater Images (Li 2017)
- #PAPER A Style-Based Generator Architecture for Generative Adversarial Networks, StyleGAN (Karras 2018)
- #PAPER The relativistic discriminator: a key element missing from standard GAN (Jolicoeur-Martineau 2018) ^190c58
- #PAPER From GAN to WGAN (Wenb 2019)
- #PAPER Time Series Simulation by Conditional Generative Adversarial Net (Fu 2019)
- #PAPER HoloGAN: Unsupervised learning of 3D representations from natural images (Nguyen-Phuoc 2019)
- #PAPER #REVIEW A Survey on Generative Adversarial Networks: Variants, Applications,and Training (Jabbar 2020)
- #PAPER #REVIEW A Review on Generative Adversarial Networks: Algorithms, Theory, and Applications (Gui 2020)
- #PAPER Implicit competitive regularization in GANs (Schafer 2020)
- #PAPER Training Generative Adversarial Networks with Limited Data (Karras 2020)
- #PAPER
Gradient-Guided Dynamic Efficient Adversarial Training (Waag 2021)
- #CODE https://github.com/locuslab/fast_adversarial
- The goal of DEAT is to improve adversarial training while maintaining effectiveness. It begins by training one batch replay and gradually increases it during training
- This method reduces large amount of computation when doing backpropagation and consequently achieves a more efficient training paradigm
- #PAPER
ExGAN: Adversarial Generation of Extreme Samples (Bathia 2021)
- #CODE https://github.com/Stream-AD/ExGAN
- Existing approaches based on GANs excel at generating realistic samples, but seek to generate typical samples, rather than extreme samples
- ExGAN is a GAN-based approach to generate realistic and extreme samples. To model the extremes of the training distribution in a principled way, our work draws from Extreme Value Theory (EVT), a probabilistic approach for modelling the extreme tails of distributions
# Subtopics
# GANs for super-resolution
See “GAN-based” section in AI/Computer Vision/Super-resolution
# GANs for missing data, imputation and inpainting
See “GAN-based” section in AI/Computer Vision/Inpainting and restoration
# Image-to-image translation. Conditional GANs
See “GAN-based” section in AI/Computer Vision/Image-to-image translation
# GANs for spatio-temporal data generation
- #PAPER COT-GAN: Generating Sequential Data via Causal Optimal Transport (Xu 2020)
- #PAPER SPATE-GAN: Improved Generative Modeling of Dynamic Spatio-Temporal Patterns with an Autoregressive Embedding Loss (Klemmer 2021) ^spate-gan
# GANs for representation learning and image synthesis
- #PAPER Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks, Laplacian GAN (Denton 2015)
- #PAPER Adversarial feature learning, BiGAN (Donahue 2017)
- #PAPER Large Scale Adversarial Representation Learning, BigBiGAN (Donahue 2019)
- #PAPER Large Scale GAN Training for High Fidelity Natural Image Synthesis, BigGAN (Brock 2019)
- #PAPER Self-Attention GANs, SAGAN (Zhang 2019)
- #PAPER In-domain GAN Inversion for Real Image Editing (Zhu 2020)
- #PAPER High-Fidelity Generative Image Compression (Mentzer 2020)
- #PAPER Generative Adversarial Networks for Image and Video Synthesis: Algorithms and Applications (Liu 2020)
- #PAPER Image Synthesis with Adversarial Networks: a Comprehensive Survey and Case Studies (Shamsolmoali 2020)
- #PAPER
Cross-Modal Contrastive Learning for Text-to-Image Generation (Zhang 2021)
- https://ai.googleblog.com/2021/05/cross-modal-contrastive-learning-for.html
- text-to-image generation by learning to maximize the mutual information between image and text using inter-modal (image-text) and intra-modal (image-image) contrastive losses
- #PAPER
TriGAN: image-to-image translation for multi-source domain adaptation (Roy 2021)
- approach for multi-source domain adaptation (MSDA) based on generative adversarial networks
- #PAPER Sketch Your Own GAN (Wang 2021)
- #PAPER Instance-Conditioned GAN (Casanova 2021)
# Semi-supervised GANs
- #PAPER Improved Techniques for Training GANs (Saliman 2016)
- #PAPER Semi-Supervised Learning with Generative Adversarial Networks (Odena 2016)
- #PAPER Semi and Weakly Supervised Semantic Segmentation Using Generative Adversarial Network (Suoly 2017)
- #PAPER
Semi-supervised Learning in Generative Adversarial Networks, review (2018)
- The GAN framework can be integrated with almost any available neural network classifier in order to make use of unlabeled data
# Few/one-shot learning GANs
See “Few one-shot learning GANs” section in AI/One, few-shot learning