I am using bayesopt for a 2D optimization problem, and I have several time come across results where only a small portion of the search space is explored. That is the tested points cluster very densely in some regions while other regions are unexplored. The below figure (leftmost subfigure) shows a example of this. I have a constraint saying ba1>ba2, so half of the search space is correctly unexplored. But in allowed region (Probability of feasibility = 1) there is still unexplored regions as shown by the yellow circles I have drawn in the middle subplot. Inspecting the Acquisition function (right plot) it is seen that it is nonzero (and nearly constant) in the unexplored region.

This problem is rather large and takes days to finish, so I created a very simple example to test the behavior of bayesopt, and in the hope to figure out how to set the parameters (the choice of acquisition function and the exploration rate). Unfortunately that just gave me extra questions which I hope you can help me understand.
My example code is:
ba1=optimizableVariable('ba1',[1,100],'Type','integer');
fun=@(x)opt_fun(x);
intial_ba=table(1);
results=bayesopt(fun,ba1,'IsObjectiveDeterministic',true,...
'MaxObjectiveEvaluations',10,'NumSeedPoints',1,'InitialX',intial_ba);
plot(results,'all')
function res=opt_fun(x)
res=2*x.ba1;
end
It is a very simple linear function, and bayesopt() works perfectly and finds the minimum (being ba1=1) in a few iterations.
However, my concern is that after it finds the minimum it starts to re-evaluate this same value over and over again, even though I have specified that the objective function is deterministic.
My questions are concerning the below figure:
1: Why do bayesopt testing the same point again (I forced it to start in ba1=1) and already the next (fourth) point is ba1=1 again.
Additional question:
Why is the acquisition function not zero at ba1=1, when this point is already tested?
Also, why is the acquisition function not increasing in the region where the errorbars increases? Instead it is (almost) zero.
To show the behavior I removed the last two options
results=bayesopt(fun,ba1,'IsObjectiveDeterministic',true,'MaxObjectiveEvaluations',10);
And got the following results:
As you see ba1=1 is tested four times in a row.
I have played around with the Acquisition function and Exploration ratio but it still test 1 several times.
I hope you can enlight me. Thanks in advance.
0 Comments
Sign in to comment.