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

Feature/Tutorial Request: Hyperparameter tuning #257

Open
ParadaCarleton opened this issue Oct 3, 2023 · 5 comments
Open

Feature/Tutorial Request: Hyperparameter tuning #257

ParadaCarleton opened this issue Oct 3, 2023 · 5 comments

Comments

@ParadaCarleton
Copy link

Grad student descent is definitely not fun, so it would be very nice to have a way to tune hyperparameters efficiently, and a tutorial on how to do this. (MLJTuning.jl lets you do it in theory, but only provides a handful of black-box optimizers like random or grid search.)

@jeremiedb
Copy link
Member

Are there specific hyper tuning methods you'd like to see covered?
With regard to demonstation with internal EvoTrees API, I'd tend to recommend a simple random search.
And for more specific tuning technics, I'd tend to favor developing them in a mostly algo agnostic way. MLJ seems like a good target in that regard. Were you seeing reasons to build a more elaborate hyper tuning wihtin a specific algo?

@ParadaCarleton
Copy link
Author

Are there specific hyper tuning methods you'd like to see covered?

Mostly just a gradient method for the continuous parameters. Grid search should be fine for the discrete hyperparameters, given there's only 1 or 2.

@jeremiedb
Copy link
Member

Could you precise the nature of the hyper search you're envisioning? I'm not clear how a gradient method could be applied here for hyper-search as the an EvoTree loss function isn't differentiable with respect to its hyper-parameter. Perhaps you're referring to apply a gradient method to eval metric outcomes to inform on next hyper candidate to test?
Other than Random search, my undertanding is that bayesian search may be the other most useful approach, but I may well have blind spots in my portrait of the hyper-tuning landscape.

@ParadaCarleton
Copy link
Author

ParadaCarleton commented Oct 17, 2023

Whoops, this is supposed to be in EvoLinear.jl 😅

(Although, I thought the loss was differentiable with respect to lambda? But I might be mixing that up with some other decision tree algorithm.)

@jeremiedb
Copy link
Member

Even in the context of EvoLinear, I'm not understanding the applicability of a gradient method for hyper params tuning.
Would you have an example (package/paper) of what you're trying to achieve?
Hyper param tuning is typically about figuring a hyper-param that leads to better generalisation on an out-of-sample dataset. In that context, I have difficulty to see how the feedback from the out-of-sample may be used to infer a udate to the hyper-param. Taking a minimal use case, linear regression with L2 regularization, how would L2 be updated from the out of sample metric?

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