AC GAN
Introduction
As we already know in regular GANs that they improve the quality of generated samples using conditional GAN idea. So, from this, we are aware that basic GAN can enhance by filling side information like class labels, image captions or bounding box localisation.
However, in AC GAN they came up with a new idea instead of feeding side information to the discriminator, they want to reconstruct the side information through discriminator by using an auxiliary auto-encoder network that outputs the class labels for the training data. Using that motivation, they made a model that joins both approaches that is one to use the class label in the generator as in conditional GAN and another one to predict the probability of the class labels of training data in discriminator.
AC GAN
In the AC GAN, in generator part, every generated sample has corresponding class labels. c~probability(c) where c is marked with noise z then,
fake image(X) = G(c,z)
In discriminator, we introduce two likelihood function one for telling the probability of real or fake data and another one for the probability of class labels.So it has two probability distribution P(D|X) and P(C|X), where D for real/fake and C for labels. Using these notations we write the log-likelihood function for both.
L(D) = E[log P(D=real|X(real))]+E[log P(D=fake|X(fake))]
L(C) = E[log P(C=c|X(real))]+E[log P(C=c|X(fake))]
Loss function for Discriminator is L(C)+L(D).
For the generator, it is L(C)-L(D).
Here the negative sign on the L(D) in generator's loss suggests that the generator is trying to fool the discriminator.
However, the above model is not very much different from already implemented GAN variants, but this produced excellent results.
Forcing the discriminator to predict the class label of generator also is novelty from what I understood in this variant.
- This model also told that higher resolution samples provide more information than low-resolution samples.
- We were able to plot 64x64 images using this variant(we have few shortcomings regarding computational power).
The code for this variant can be found here.

Comments
Post a Comment