Skip to content

Code not consistent with the paper formulation #29

@hengshiyu

Description

@hengshiyu

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions