GANs were first introduced in 2014 by a group of researchers at the University of Montreal led by Ian Goodfellow. The main idea behind a GAN is to have two competing neural network models. One takes noise as input and generates samples (and so is called the generator). The other model (called the discriminator) receives samples from both the generator and the training data, and has to be able to distinguish between the two sources. These two networks play a continuous game, where the generator is learning to produce more and more realistic samples, and the discriminator is learning to get better and better at distinguishing generated data from real data. These two networks are trained simultaneously, and the hope is that the competition will drive the generated samples to be indistinguishable from real data.
- Use more convolutional layers in generator for better performance.
- Binary noise(sequence of -1, 1) works amazingly well.
Most of the code is borrowed from yunjey.