Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discriminator should train more than generator #101

Closed
Baukebrenninkmeijer opened this issue Dec 2, 2020 · 6 comments · Fixed by #103
Closed

Discriminator should train more than generator #101

Baukebrenninkmeijer opened this issue Dec 2, 2020 · 6 comments · Fixed by #103
Assignees
Labels
internal The issue doesn't change the API or functionality
Milestone

Comments

@Baukebrenninkmeijer
Copy link
Contributor

The CTGAN does not implement the extra update iterations of the critic, when compared to the original implementation of WGAN and WGAN-GP. Is this intentional? In my experiments, I have seen that sometimes the generator becomes too powerful and exploits the discriminator. I think this might be improved by implementing the critic extra updates, compared to the generator.

image
From the paper, we see the critic is updated 5 times more compared to the generator.

@Baukebrenninkmeijer
Copy link
Contributor Author

@csala I can create a PR for this if you like.

@fealho
Copy link
Member

fealho commented Dec 2, 2020

Good suggestion! As long as you add the number of iterations as a hyperparameter, I'm all for it. @csala

@shreyanshs
Copy link

Yes I have also seen the same thing as @Baukebrenninkmeijer describes. This suggestion should definitely serve as an improvement.

@Baukebrenninkmeijer
Copy link
Contributor Author

Yeah, indeed. I think it's most suited in the .fit function.

@csala
Copy link
Contributor

csala commented Dec 2, 2020

I like the suggestion @Baukebrenninkmeijer, and a PR would be very welcome !

Regarding where to put the argument, I'd prefer to add it as a hyperparameter, as @fealho suggested. In the fit method we should try to keep only the arguments that relate to the data which the model is being fitted to, and then have all the hyperparameters that control the learning process in the __init__.

Also, I would add a default value of 1 for now so that by default the behavior is the same that we had before while still having the possibility to tweak the value to higher numbers.

@csala
Copy link
Contributor

csala commented Dec 2, 2020

Regarding where to put the argument, I'd prefer to add it as a hyperparameter, as @fealho suggested. In the fit method we should try to keep only the arguments that relate to the data which the model is being fitted to, and then have all the hyperparameters that control the learning process in the __init__.

I just opened #102 too, since the log_frequency is escaping a bit this abstraction.

@fealho fealho added the internal The issue doesn't change the API or functionality label Dec 18, 2020
@fealho fealho added this to the 0.3.0 milestone Dec 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
internal The issue doesn't change the API or functionality
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants