This program was written with PyTorch and uses a GAN with a Wasserstein loss function to try to recover image data that has had some type of data loss function applied to it (erased pixels, lowered resolution, or added noise). During training, the function causing data loss is applied to the output of the GAN generator and the discriminator must discern between such output and real images with data loss. This setup induces the generator to learn the underlying true data distribution of the images to best imitate real images with data loss subject to the data loss function being applied to its output. The model training is done with the MNIST dataset using image batches and an Adam optimizer.
MNIST images:
Output images from the generator:
Pixel-erased MNIST images:
Images after applying pixel erasing to the generator output:
Images directly from the generator output without any data loss function applied:
Low-resolved MNIST images:
Images after applying low-resolving to the generator output:
Images directly from the generator output without any data loss function applied:
Noised MNIST images:
Images after adding Gaussian noise to the generator output:
Images directly from the generator output without any data loss function applied: