DCGAN Image Generation Demo
Generate a Number
Architecture
I used a modified Deep Convolutional Generative Adversarial Network containing a Generator, a Discriminator, and a Classifier. Images are created by the Generator from random noise and a class (digit). The Discriminator tries to recognise which images are real, and which were generated. The Classifier was trained on the same dataset to recognise which digit it is. The goal of the Generator is to fool the Discriminator while being validated by the Classifier. The Generator and the Discriminator learn side by side.
An image is generated, then forwarded to both the Discriminator, and the Classifier. The results are then used to train the Discriminator by adding also real images from the dataset. The outputs are fed back to the Generator and used for its training.
More details available in the notebook linked below.
Data
Traditional MNIST dataset was used.
Results
This project resulted with images that are recognisable, however, they have some artifacts due to MNIST containing a lot of crooked digits. Some data filtering would help with this problem, but it is a time-consuming task. The Classifier may be used to remove digits that are not easily classifiable (low confidence).