You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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. I feel your code is not the paper means.
However, in your InfoGAN code, I actually found in tensorflow-infogan/infogan/__init__.py that:
So the mutual information is not added into the training of the generator loss, but it incorporates G, D, Q all to maximize itself. This is not consistent with InfoGAN paper's definition in equation (6).
First, the discriminator loss does not have the mutual information lower bound in the formulation. So you shall not use D to maximize the mutual information lower bound.
Second, in equation (6) or any other GANs, G and D should always have opposite signs (+ or -) for the same term. Even if you think D influences mutual information, D and G should have opposite influences. So maybe from the very start, you shall not use all three networks to maximize this mutual lower bound.
Third, I do not think the paper means to directly maximize mutual lower bound here, but to maximize the sum of minus G objective and this maximum lower bound. Separating this term and maximize it outside is not the paper means.
Could you help me with this?
The text was updated successfully, but these errors were encountered:
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. I feel your code is not the paper means.
However, in your InfoGAN code, I actually found in
tensorflow-infogan/infogan/__init__.py
that:So the mutual information is not added into the training of the generator loss, but it incorporates G, D, Q all to maximize itself. This is not consistent with InfoGAN paper's definition in equation (6).
First, the discriminator loss does not have the mutual information lower bound in the formulation. So you shall not use D to maximize the mutual information lower bound.
Second, in equation (6) or any other GANs, G and D should always have opposite signs (+ or -) for the same term. Even if you think D influences mutual information, D and G should have opposite influences. So maybe from the very start, you shall not use all three networks to maximize this mutual lower bound.
Third, I do not think the paper means to directly maximize mutual lower bound here, but to maximize the sum of minus G objective and this maximum lower bound. Separating this term and maximize it outside is not the paper means.
Could you help me with this?
The text was updated successfully, but these errors were encountered: