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
Generative Adversarial Networks: State of the Union An introductory overview to GANs and current popular architectures
Exploring a Generator with GANdissect GAN interpretable analytics, dissection, and creativity
Training a GAN A how-to walkthrough on training GANs using Jupyter notebooks
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 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 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 startedTraining a GAN
Presented by: Alex Andonian, MIT
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 startedGANtidotes
Presented by: Hendrik Strobelt, MIT-IBM Watson AI Lab
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!