ganhacks icon indicating copy to clipboard operation
ganhacks copied to clipboard

Trick 11: How to schedule thresholds A and B?

Open benstaf opened this issue 7 years ago • 2 comments

I want to use trick 11, because I have a collapsed GAN problem: discriminator is too strong (accuracy=1, loss =0). I want to use the trick:

while lossD > A: train D while lossG > B: train G

But how to schedule A and B at each step? Do you have a principled approach? For example, can I choose (A_{n+1}, B_{n+1})= 0.5 * (A_n, B_n) ? What do you recommend?

Do you have other suggestions? New references on this topic?

benstaf avatar Aug 08 '17 16:08 benstaf

I tried this by adjust different learning rate to G and D, but the results is even worse.

danielkaifeng avatar Sep 22 '17 02:09 danielkaifeng

I want to propose a slightly different approach of avoiding the collapse that might be easier to formulate:

while lossD > A: train D while lossD < B: train G

The idea behind the changed part is the following: If the discriminator is too bad, then lossD >= B and the generator should not be trained anymore because the generator could start outperforming the discriminator ("helvetica scenario" if I am correct?).

Setting the threshold on the discriminator loss was more comprehensable for us, but this will be open for discussion. Even though we are currently using this approach I am very sorry that I can not provide any proof that we successfully avoided the collapse thanks to it.

florian-boehm avatar Feb 06 '18 21:02 florian-boehm