-
Notifications
You must be signed in to change notification settings - Fork 303
Description
Hi,
I read the paper of InfoGAN (https://arxiv.org/abs/1606.03657) and I found that it has the objective function for Discriminator (D), Generator (G), and mutual information network (Q) in equation (6).
So, in the implementation, D is to maximize the part which originally for GAN, G is to minimize its own part for GAN minus the mutual information times a tuning lambda, and Q is to maximize the mutual information as it uses a lower bound for mutual information.
However, in this InfoGAN official code, I actually found in InfoGAN/infogan/algos/infogan_trainer.py that:
discriminator_loss -= self.info_reg_coeff * disc_mi_est
generator_loss -= self.info_reg_coeff * disc_mi_est
So both the discriminator loss and the generator loss incorporate the mutual information lower bound. I found this is not consistent with the paper.
First, the discriminator loss does not have the mutual information lower bound in the formulation. Although the paper says it constructed Q network from the last hidden layer of D, training the D network should not incorporate the mutual information lower bound value.
Second, in equation (6) or any other GANs, G and D should always have opposite signs (+ or -) for the same term. But the paired code above used mutual information both to be the negative sign for D and G to minimize. This does not make sense and it means the equation (6) in paper is not correct and should be changed.
Could you help me with this?