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

biteopt #9

Open
notwa opened this issue Apr 8, 2021 · 1 comment
Open

biteopt #9

notwa opened this issue Apr 8, 2021 · 1 comment
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@notwa
Copy link

notwa commented Apr 8, 2021

biteopt is an optimizer i found out about very recently only after digging through the source code for Tom7's lowestcase/uppestcase project. i may not have found it otherwise, as my search terms have never brought it up, and it's even absent from your pretty comprehensive list on the humpday blogpost. anyway, there's quite a hefty readme if you'd like to read about it.

in some preliminary experimentation on humpday.objectives.allobjectives, it seems to perform so-so with a small number of evaluations (n=80) and pretty well with a large number (n=550). roughly speaking, it ranks worse than dlib and similar to bobyqa for short and long runs respectively. i suspect the poor performance with fewer evals has to do with the highly probabilistic nature of the method, but that's just a guess as i'm still learning about the method.

it has a (slightly outdated) barebones python interface of the same name on pypi (source) and can be invoked as such:

iterations = n_trials // (attempts * int(np.sqrt(depth)))
x_optimal = biteopt.minimize(objective, lower_bounds, upper_bounds, iterations, depth, attempts)

the interface does not return the optimal function value, so either tracking it within an objective wrapper or performing an additional eval will be necessary. the number of attempts defaults to 10, but this puts it at a significant disadvantage to the other optimizers in humpday for <1000 evals — i'd try 1 or 2. the depth could be set to 1 or 4, but 1 seems to be performing better for me.

even if you decide to pass on adding biteopt to humpday, i'd like to hear any thoughts you have on it!

@microprediction
Copy link
Owner

microprediction commented Oct 11, 2021

The more the merrier. Sorry I just saw this note, thanks @notwa it looks like a great find.

@microprediction microprediction added enhancement New feature or request help wanted Extra attention is needed labels Oct 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants