InfoGAN is an unsupervised version of CGAN. In CGAN, we learned how to condition the generator and discriminator to generate the image we want. But how can we do that when we have no labels in the dataset? Assume we have an MNIST dataset with no labels; how can we tell the generator to generate the specific image that we are interested in? Since the dataset is unlabeled, we do not even know about the classes present in the dataset.
We know that generators use noise z as an input and generate the image. Generators encapsulate all the necessary information about the image in the z and it is called entangled representation. It is basically learning the semantic representation of the image in z. If we can disentangle this vector, then we can discover interesting features of our image.
So, we will split this z into two:
- Usual noise
- Code c
What is the code? The...