Progressive InfoGAN combines two techniques:
- progressive training (https://arxiv.org/abs/1710.10196), and
- InfoGAN (https://arxiv.org/abs/1606.03657).
What it does
- A Generator is trained on any unlabeled high-res dataset of images. For our experiments we use CelebA-HQ.
- After training, the Generator produces novel images, similar to those in the dataset.
- When producing an image, we can independently control its semantic feautres. In case of CelebA-HQ, semantic features include: the direction of the look, hair color, nose shape, and much more. See Summary of selected isolated features.
- Most importantly, these semantic features are discovered during training in a completely unsupervised fashion - no human input is required.
Under the hood
The InfoGAN technique was adapted to the progressive architecture of the model by splitting the structured code to parts, and feeding each part to the network by conditioning activations in the corresponding block of the Generator. You can find a detailed description of the architecture, along with quality assessment, in my Master's Thesis text (expected defense: Q4 2018).
# Training: # Fill in src/constants.py, and run $ cd src $ python jonasz/experiments/2018_08_28/exp_consistency_300.py # Working with the trained Generator: $ cd src $ python -m jupyter notebook --port 5088
Now you can experiment with the generator in a notebook: src/jonasz/notebooks/generator.ipynb
Summary of selected isolated features
See also the animated, extended version of the summary at: https://youtu.be/U2okTa0JGZg. Some of the subtler changes are better visible when animated. For each of the features listed below, there is a link to the exact corresponding timestamp in the animation.
Smile: upper lip
Left / right rotation
Face oval: size
Hairstyle: background size
Lower jaw size
Forward backward inclination
Mouth: open / closed
Hair: wavy / straight
Eyebrows: up / down
Nose: upturned tip
Vertical face stretch
Color of the irises
Shape of the nostrils
A comprehensive list of all isolated features is at: https://youtu.be/mOckeVkM1jU.