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

Undesired CSA behavior with large population size #231

Open
nikohansen opened this issue Apr 4, 2023 · 3 comments
Open

Undesired CSA behavior with large population size #231

nikohansen opened this issue Apr 4, 2023 · 3 comments

Comments

@nikohansen
Copy link
Contributor

nikohansen commented Apr 4, 2023

on the BBOB Rastrigin function F15.

import cocoex

suite = cocoex.Suite('bbob', '', '')
N = 40
fbbob = suite.get_problem_by_function_dimension_instance(15, N, 1)

CMA-ES with popsize=3999 will increase the initial standard deviation by almost a factor of 1000 when the initial point is chosen like

x0 = 8 * np.random.rand(N)

Strangely enough, and remarkably, this does not happen on the cma.ff.rastrigin function.
issue

Strangely enough, we see even full-blown divergence with TPA (and no problem on ff.rastrigin).

@nikohansen
Copy link
Contributor Author

nikohansen commented Apr 5, 2023

Changing the damping factor by just 1.5 (usually) fixes this specific case with CSA (and for TPA a factor of 2 from 4.5 to 9):
Screenshot 2023-04-05 at 11 45 41

@nikohansen
Copy link
Contributor Author

nikohansen commented Apr 6, 2023

A little additional insight: this happens on F3 and F12 too (and arguably on F6), and it depends on the initial point in a peculiar way only when initialized badly, here on F3 in the all-positive domain.
p1259
p2222

@nikohansen
Copy link
Contributor Author

nikohansen commented Dec 5, 2023

As a poor temporary band-aid, the TPA damping is changed from 0.7 + np.log(eval('N')) to 0.7 + 2 * np.log(eval('N')) with commit 38b9845

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

No branches or pull requests

1 participant