Simple
Simple copied to clipboard
Does simple support noisy functions?
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?
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.
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):
See how it is very difficult to reach very close to the global maximum, because the noise confuses the algorithm.