avatarJonathan Hui

Summary

The website content discusses the progressive growing of GANs (Generative Adversarial Networks), a method to train GANs incrementally to generate high-resolution images efficiently and effectively.

Abstract

The progressive growing of GANs involves a multi-phase training process where the network starts by generating low-resolution images and incrementally adds layers to increase the resolution. Initially, a latent feature vector ( z ) is used to generate 4×4 images through two convolution layers. The discriminator is trained with these and real 4×4 images. As training stabilizes, additional convolution layers are introduced to upsample the generator's output and downsample the discriminator's input, progressively increasing the image resolution. This method allows for the generation of high-quality 1024 × 1024 celebrity-look images. The progressive training not only accelerates the process by 2–6 times compared to traditional methods but also stabilizes it, leading to better image quality. New layers are smoothly faded in using a weight parameter ( \alpha ) that gradually increases from 0 to 1. The approach also incorporates a simplified Minibatch discrimination technique to enhance image diversity by penalizing generated images that lack diversity compared to real images. Weight initialization is carefully handled using a specific initialization scheme, and feature normalization is applied to the generator's convolution layers to maintain stable training dynamics.

Opinions

  • The progressive growing technique is deemed effective for generating high-resolution images with improved quality.
  • The method is praised for stabilizing the GAN training process, particularly by conducting most iterations at lower resolutions.
  • The training speed is considered significantly faster with the progressive approach, while maintaining comparable or better image quality.
  • The use of Minibatch discrimination is seen as a key factor in improving the diversity of generated images.
  • The specific weight initialization and runtime scaling are believed to contribute to the stability and performance of the GAN.
  • Feature normalization in the generator is highlighted as a beneficial technique for maintaining stable training dynamics.
Photo by Nathan Dumlao

GAN — Progressive growing of GANs

Progressive growing of GANs

The progressive growing of GANs trains the GAN network in multiple phases. In phase 1, it takes in a latent feature z and uses two convolution layers to generate 4×4 images. Then, we train the discriminator with the generated images and the 4×4 real images. Once the training stables, we add 2 more convolution layers to upsampling the image to 8×8 and 2 more convolution layers to downsampling images in the discriminator.

Indeed, if we have 9 phases in total, we can generate the 1024 × 1024 celebrity-look images.

Progressive growing of GANs

The progressive training speeds up and stabilizes the regular GAN training methods. Most of the iterations are done at lower resolutions, and training is 2–6 times faster with comparable image quality using other approaches. In short, it produces higher resolution images with better image quality. Here is the final network when all phases of training are completed.

Progressive growing of GANs

When new layers are added in each phase, it will be faded in smoothly with weight α gradually increases linearly from 0 to 1 below.

Progressive growing of GANs

Image diversity

The progressive GAN also uses a simplified Minibatch discrimination to improve image diversity. The progressive GAN computes the standard deviation for each feature in each spatial location over the minibatch. Then it averages them to yield a single scalar value. It is concatenated to all spatial locations and over the minibatch at one of the latest layers in the discriminator. If the generated images do not have the same diversity as the real images, this value will be different and therefore will be penalized by the discriminator.

Modified from Progressive growing of GANs

Weight initialization

The progressive GAN initializes the filter weights with

and then scale the weights at runtime for each layer

where c is the inverse of

Feature normalization

For the generator, the features at every convolution layers are normalized.

Machine Learning
Deep Learning
Gans
Recommended from ReadMedium