Simple icon indicating copy to clipboard operation
Simple copied to clipboard

Does simple support noisy functions?

Open thomasahle opened this issue 4 years ago • 2 comments

Thank you for the great tool! Baysian optimization really is very slow.

One thing I'm unsure about from the readme is whether Simple assumes that calling f(x) once gives the true value of the function, or if it still works if f(x) is heavily noisy, say returns a random value 95% of the time?

thomasahle avatar Sep 04 '19 08:09 thomasahle

If the noise is a large component of the function, as opposed to the signal, my guess is that the algorithm will have more trouble finding global maxima, as the acquisition function will have a large random component.

But that is true for every optimization algorithm.

danuker avatar Jun 25 '22 12:06 danuker

I tried out renderAlgorithm from Animations.py with the following new function adding high-frequency cosines to griewank:

def griewank_random(vector):
	noise = math.cos(vector[0] * 1000) + math.cos(vector[1] * 1000)
	return griewank(vector) + noise - 2

Here is the result (rendering took 10 minutes on my old laptop): animation-noisy

See how it is very difficult to reach very close to the global maximum, because the noise confuses the algorithm.

danuker avatar Jun 25 '22 13:06 danuker