Generative adversarial networks (GANs) are a class of artificial intelligence algorithms used in unsupervised (and semi-supervised) machine learning, implemented by a system of two neural networks contesting with each other in a zero-sum game framework.