A GAN is typically comprised of two neural networks called a generator
and a discriminator. (For background material on neural networks,
see the books of [1]} or [2]}.)
The generator network produces synthetic data whose distribution aims
to mimic that of real data, while the discriminator network evaluates
whether the data produced by the generator is real or fake. Suppose
the observed vector \(x\)  mathematically represents an observed image,
DNA sequence, or some other object of interest. This \(x\)  is viewed
as a realization from an underlying random vector \(X\)  whose distribution
remains unknown to us. Obtaining a large number of realizations from
\(X\)  may be difficult or costly, and the researcher desires to produce
synthetic replicas in an easy manner. These replicas are the output
of a generating mechanism \(G(z,\gamma )\)  that in practice is a complicated
neural network. This generator takes as an input noise variables \(z\) 
that are drawn from some underlying random vector \(Z\)  and depends
on parameters \(\gamma \)  that are tuned so that the output \(G(z,\gamma )\) 
would be a close replica of \(x\) . To assess the quality of the synthetic
data produced, a discriminating mechanism \(D(\cdot ,\delta )\)  indicates
how likely it is an input, whether original data \(x\)  or a replica
\(G(z,\gamma )\) , is real data from the underlying distribution \(X\) .
In practice, the discriminator \(D(\cdot ,\delta )\)  is again a complicated
neural network with parameters \(\delta \)  to be estimated. The `adversarial
principle' of generative adversarial networks works as follows. Given
an original \(x\)  and any synthetic \(G(z,\gamma )\) , the discriminator
aims to give a high rating \(D(x,\delta )\)  to the real \(x\)  and a low
rating \(D(G(z,\gamma ),\delta )\)  to the artificial \(G(z,\gamma )\)  by
choosing \(\delta \)  to maximize the objective function
\(D( x,\delta )\times (\,1-D( G(z,\gamma ),\delta )\,)\) 
