Setup an optimization problem using Bayesian Optimization
Show older comments
Dear all,
Problem:I try to find the optimal set of variables using Bayesian optimization.
Before I go further into the depth, let me explain the background of what I am trying to achieve here.
I first did some physical experiments. These physical experiments give me certain results (i.e. objectives). For example I measured a total mass of 27 kg. I measured other results as well.
Then, in a simulation I try to recreate the results of the physical experiments. In those simulations I define the range and interval of the variables I try to optimize. The variables I try to optimize are mu_s (ranging from 0.1 to 0.5 with an interval of 0.1) and mu_r (ranging from 0.1 to 0.5 with an interval of 0.1).
The simulations will give me predicted results for certain combinations of variables. For example:
mu_s = 0.1 and mu_r = 0.7 will give me a predicted total mass of 29.45 kg.
Then I want to use Bayesian optimization to find the optimal set of variables that can predict the results of the physical experiment as close as possible using the data I have available from the simulations.
With the documentation from the links below I tried to make a Bayesian optimization, but I am kind of stuck on how to define the objective function.
This is how far I got
optimVars = [
optimizableVariable('\mu_s',[0.1 0.5])
optimizableVariable('\mu_r',[0.1 0.5])];
objFcn = makeObjFcn(
Something to point out:
It is a single-objective problem. The objective function is defined as the total relative discrepancies between the simulation outputs and the experimental measurements using weighted sum. The weights of error components are equally contributing to the total simulation error. Thus, the weights of each term are set to be the same.
To search for new points to be evaluated next by the objective function, I want to use a combined acquisition function. First, we look for a point that maximizes Expected Improvement (EI), then for a point that maximizes Probability of Improvement. Thus, two new points are determined per iteration, which can then be evaluated in parallel. I think by using 'UseParallel' this can be achieved.
I looked at the global optimization tool under de section surrogate modelling, but I think that is not quite what I want.
Accepted Answer
More Answers (0)
Categories
Find more on Choose a Solver in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
