GANocracy Tutorial

This webpage provides links to the tools we’ll be using and referencing in the tutorial. We’ve also compiled some great resources for expanding your knowledge of generators, discriminators, and the games they play... or just having some good, clean GAN fun.

Special thanks to for generously donating the resources used to train some of the models included with the Jupyter notebooks for this tutorial.

Instructions for Tutorial Attendees

Please bring your own laptop if you’d like to follow along with the tutorial! Familiarity with Python and PyTorch (or other machine learning libraries) will be helpful.

The Jupyter notebooks we’ll be using for running GANdissect and training GANs require some environment configuration. It is strongly recommended that you complete the setup instructions before the tutorial to ensure that your environment is ready to go.

IMPORTANT: These instructions have been updated as of 5/30/19. Please make sure that you are up to date.

Tutorial Schedule

  1. Generative Adversarial Networks: State of the Union An introductory overview to GANs and current popular architectures

  2. Exploring a Generator with GANdissect GAN interpretable analytics, dissection, and creativity

  3. Training a GAN A how-to walkthrough on training GANs using Jupyter notebooks

  4. GANtidotes Methods for discouraging and mitigating antagonistic use of GANs

Generative Adversarial Networks: State of the Union

Presented by: Katherine Gallagher, MIT Quest - Bridge

GANs progress 2014 - 2018 Image credit: goodfellow_ian (2019) "4.5 years of GAN progress on face generation."

GANs have come a long way since the early days of 2014. We’ll begin by taking a brief look at how things started, where we are now, and where we’re headed.

If you’re unable to attend the tutorial, you can check out the timeline to see how GAN architectures have evolved since 2014, and read about some open questions we’re still exploring when it comes to GANs.

Exploring a Generator with GANdissect

Presented by: David Bau, MIT

When GANs generate images, are they simply reproducing memorized pixel patterns, or are they composing images from learned objects? How do different architectures affect what the GAN learns? Which neurons are responsible for undesirable artifacts in generated images?

GANdissect [GitHub, paper] is an analytic framework for visualizing the internal representations of a GAN generator at the unit-, object-, and scene-level.

GANdissect output Image credit: Bau, David, et al. "GAN Dissection: Visualizing and Understanding Generative Adversarial Networks." arXiv preprint arXiv:1811.10597 (2018).

GANdissect helps shed light on what representations GANs are learning across layers, models, and datasets, and we can use that knowledge to compare, improve, and better control GAN performance.

Let's get started

Training a GAN

Presented by: Alex Andonian, MIT

Progressive training of a GAN Image credit: Wolf, Sarah. "ProGAN: How NVIDIA Generated Images of Unprecedented Quality". (2018) Towards Data Science.

How do you actually build and train a GAN? What are best practices, tips, and tricks to help simplify the process? We’ll do a step-by-step walk-through in PyTorch that covers everything from data preparation and ingestion through results analysis.

Note: If you are unable to complete the setup or don't mind viewing the tutorial without the ability to interact with the content, we have made an NB viewer version of the GAN training notebook.

Otherwise...

Let's get started

GANtidotes

Presented by: Hendrik Strobelt, MIT-IBM Watson AI Lab

Image credit: compiled from [Egor Zakharov].(21 May 2019) "Few-Shot Adversarial Learning of Realistic Neural Talking Head Models".

As GANs produce increasingly realistic content, concerns about deepfakes - generated content presented as if it were real - grow accordingly. How do we distinguish GAN-produced materials from genuine recordings of subjects that physically exist and events that actually took place?

We’ll discuss a few of the various ideas currently being tested in the emerging field of GANtidotes - methods to combat adversarial uses of adversarial networks. We’ll walk through a few practical examples, including GLTR, a tool to detect automatically generated text.

Still want more?

Check out our topics for further reading!

Sponsors