A deep learning machine learning model where two neural networks are used for applications such as content generation. One model generates a representation of the output while the other model determines how suitable that output is to the desired result. Given a training set, this technique learns to generate new data with the same statistics as the training set. In essence, the network is creating a new training data set from an original data set. The “generator” creates new data based on its best guess, and the “discriminator” network determines whether the data is good enough. Based on the training data it has been given, GANs can generate new images that look at least superficially or at a glance real to humans. Originally used for unsupervised neural network training, applied since for semi-supervised, supervised, and reinforcement learning approaches.