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

Tune DNN hyperparameters #145

Closed
Tracked by #54
bfhealy opened this issue Oct 31, 2022 · 6 comments
Closed
Tracked by #54

Tune DNN hyperparameters #145

bfhealy opened this issue Oct 31, 2022 · 6 comments
Assignees

Comments

@bfhealy
Copy link
Collaborator

bfhealy commented Oct 31, 2022

The config file contains hyperparameters that may be adjusted for each class to attain optimal DNN performance. We should experiment with these values to determine an appropriate combination for each class. The hyperparameters include:

-threshold specifying the minimum probability to determine positive examples of a class
-balance specifying the ratio of over-to-underrepresented examples in a class
-weight_per_class boolean; if True the loss function responds differently to pos. vs. neg. class examples based on number

The architecture of the DNN is also controlled by hyperparameters (number of neurons, dropout fractions, convolution windows, etc). For now I think we should maintain the DNN structure as-is (consistent with the published architecture) and experiment with the above values in the config file. An alternative architecture is shown in panel (b) of Fig. 8, but with the warning that this architecture tends to have greater variance than the current model.

@bfhealy bfhealy mentioned this issue Oct 31, 2022
48 tasks
@bfhealy bfhealy self-assigned this Nov 3, 2022
@bfhealy
Copy link
Collaborator Author

bfhealy commented Nov 28, 2022

Done for this round of active learning, see #181 and config.defaults.yaml for the current hyperparameter configurations.

@bfhealy bfhealy closed this as completed Nov 28, 2022
@bfhealy
Copy link
Collaborator Author

bfhealy commented Dec 20, 2022

Reopening to obtain better model performance on inference fields.

@bfhealy bfhealy reopened this Dec 20, 2022
@bfhealy
Copy link
Collaborator Author

bfhealy commented Feb 7, 2023

Closing again; currently using the full training set for each classifier rather than limiting sources with the balance hyperparameter. This reduces recall but gives good precision for several classes. weight_per_class is currently False - while this hyperparameter can improve recall, on the full dataset it comes with a drastic reduction in precision for highly imbalanced classes.

@bfhealy bfhealy closed this as completed Feb 7, 2023
@mcoughlin
Copy link
Collaborator

@bfhealy In principle we can turn this on or off at the class level?

@bfhealy
Copy link
Collaborator Author

bfhealy commented Feb 7, 2023

@mcoughlin Yes, the config file allows us to customize these parameters for each class going forward.

@mcoughlin
Copy link
Collaborator

@bfhealy cool!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants