Who says I'm GAN?

Generative Adversarial Network - GAN - is a versatile concept [1]. That makes it approachable from multiple viewpoints.

The name itself, comes from its adversarial nature as a conceptual point of view. It defines a minmax game between two players. The two players have opposite aims. One wants to minimize an objective, while the other one wants to maximize it. The objective in real life could be the cost or expenditures for something. For example one wants to spend as less as possible, while the other one wants to earn as much as possible. In fact, the objective is often times called cost or criteria, as it would be a buying or selling criteria. This game theory point of view makes it accessible to an audience, which is almost everybody. But there is way more to discover from here on.

The fact that a generative and a discriminative model is involved, makes it interesting for data scientists. Commonly they have to model a problem whose solution contains either the generation of new samples or distinguish existing samples from each other. Data engineers are called then to the plan, when it comes to implement that efficiently. As those models within the GAN are approximated often times by neural networks, common frameworks and languages like TensorFlow, PyTorch and Python can be applied. In fact, the term criteria is kind of the defacto standard to call the loss in PyTorch based neural networks.

Those networks might have a specific architecture, which varies from dataset to dataset, from problem to problem, from framework to framework or simply from engineer to engineer. GAN itself follows a common topology with optional flavours like conditional GANs or iteratively increasing GANs. The core of that topology are the two players, namely Generator and Discriminator.

Even though on a first glance, the idea seems quite easy. The practical obstacles when implementing those networks and training them in an adversarial manner leads to highly complex mathematical set theory. So the topic is not just approachable in general terms by a broad audience, but has also very specific problem settings for experts in technology, science and mathematics, that opens up, when keeping oneself busy with the topic.

Last but not least, from a user point of view, theoretically everbody which works in a creative, generative environment can benefit. In scientific papers, often times numbers or faces (CELEBA, LSUN) are generatively modeled. But way more practically usable scenarios are imaginable. It could for instance be possible, the condition a GAN with a persons wishes and properties and an environments properties and from that on plan a house. At least a startpoint from which an architect could work on and finegrain the generated plan. As loop back to the already mentioned data engineer, that fine grained plan, could be used afterwards to retrain the model and improve therefor the process as a whole within a cute CI/CD pipeline.

[1] Generative Adversarial Networks - The original paper