Exploring the power of generative adversarial networks


As you can probably guess, a system of two adversarial neural networks is a complex thing, and programming one from scratch is a difficult road unless you have considerable experience with AI. Still, several resources are available for those who wish to further explore this fascinating field.

First of all, Ian Goodfellow's original GAN code is still available on GitHub [11], and you are free to download it yourself and experiment. The code is mostly in Python, and the authors include the following note: "We are an academic lab, not a software company, and we have no personnel devoted to documenting and maintaining this research code. Therefore this code is offered with absolutely no support." The GitHub page makes reference to the original June 2014 article "Generative Adversarial Networks" by Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio. The article, which is also available today for free download at the arxiv.org website [12], offers a technical introduction that is a good starting point if you are looking for more information on GANs. The first two sentences of the abstract succinctly sum up this promising technique: "We propose a new framework for estimating generative models via an adversarial process, in which we simultaneously train two models: a generative model G that captures the data distribution, and a discriminative model D that estimates the probability that a sample came from the training data rather than G. The training procedure for G is to maximize the probability of D making a mistake."

You'll also find several other GAN implementations, some showcasing different AI development tools, including a Torch implementation [13] and a TensorFlow-based lightweight library for training GANs [14]. Other projects let you use GANs to edit images [15], generate images from text [16], and even generate anime characters [17].

If you want to explore GANs but you're not quite ready to dive down into the code, you will also find some illuminating demo sites online that will give you a closer look. One example is GAN Lab [18] (Figure 6), an application developed by the Polo Club of Data Science, a group of programmers and scientists affiliated with Georgia Tech University. GAN Lab is an application that lets you experiment with GANs in your browser window. To maximize its effect as a teaching tool, GAN Lab takes a very simple approach. Rather than generating a computerized painting or a fake video, the Lab simply generates a scattering of data points to match a sample. The user can choose a preconfigured sample data distribution pattern or define a custom pattern.

Figure 6: GAN Lab lets you watch a GAN at work, with a very simple example to maximize the illustrative effect.

Curse, Blessing, or Both?

In the nearly two decades since Ian Goodfellow got the ball rolling, GANs have taken several fields by storm, and the technology is still rapidly evolving. Generative AI is already delivering impressive results, especially in the context of images and video, and the technique is still in its infancy. Future possibilities include assisting with medical imaging methods, such as X-rays, CT scans, or MRIs. With the help of an AI-modeled disease progression, doctors could adjust their treatment at an early stage to improve outcomes.

But for all the hype surrounding GANs, the technology also has its downsides: It drastically simplifies the process of creating fake content. The Internet has played an important role in publishing and disseminating false information for many years, and more convincing fake videos could compound the problem significantly. The best way to prepare for this challenge is to raise awareness about the power of GANs.


  1. Portrait of Edmond de Belamy: https://en.wikipedia.org/wiki/Edmond_de_Belamy
  2. Obvious: https://obvious-art.com/page-projects/
  3. NightCafÈ: https://creator.nightcafe.studio/my-creations
  4. Thispersondoesnotexist.com: https://thispersondoesnotexist.com/
  5. StyleGAN: https://github.com/NVlabs/stylegan
  6. Whichfaceisreal.com: https://www.whichfaceisreal.com/
  7. Nixon Deepfake: https://www.scientificamerican.com/article/a-nixon-deepfake-a-moon-disaster-speech-and-an-information-ecosystem-at-risk1/
  8. GameGAN: https://nv-tlabs.github.io/gameGAN/
  9. GANTheftAuto on GitHub: https://github.com/Sentdex/GANTheftAuto
  10. GANTheftAuto on YouTube: https://www.youtube.com/watch?v=udPY5rQVoW0
  11. Code and Hyperparameters for the Paper "Generative Adversarial Networks": https://github.com/goodfeli/adversarial
  12. "Generative Adversarial Networks" by Ian Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio: https://arxiv.org/abs/1406.2661
  13. gans-collection.torch: https://github.com/nashory/gans-collection.torch
  14. Tooling for GANs in TensorFlow: https://github.com/tensorflow/gan
  15. Invertible Conditional GANs for Image Editing: https://github.com/Guim3/IcGAN
  16. TAC-GAN: https://github.com/dashayushman/TAC-GAN
  17. animeGAN: https://github.com/jayleicn/animeGAN
  18. GAN Lab: https://poloclub.github.io/ganlab/

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Data Poisoning

    Machine learning can be maliciously manipulated – we'll show you how.

  • Machine Learning

    "I won't make this mistake again," you promise yourself. In other words, you'll learn from experience. If you translate experience into data, computers can do that, too. We'll introduce you to the fundamental forms of machine learning.

  • Disinformation Detector

    Fake information is experiencing a boom, but given the right tools, you can reliably separate the wheat from the chaff.

  • GameHub

    If you regularly buy games through Steam, GOG, and Humble Bundle, GameHub can help you keep them organized by bringing them all together into a single library.

  • ASCII Art

    Creating images from letters and numbers is a complex matter, unless you have the right tools at hand.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.