is the objective function stochastic (-> use something like patternsearch) or deterministic?

My objective function is given by
f(x) = ||d^sim(x) - d^exp||^2
d^exp is a constant vector of measurements, to which I add random noise utilizing randn. Then I call the optimization (lsqnonlin, fmincon, whatever,...) In particular, d^exp does not depend on the parameters x.
Since I add the noise just once a priori to the optimization, my objective function is still deterministic, right?
I just wanted to double-check that because, at least I read about that, objective functions including noise are better handled by derivative-free optimizers like patternsearch.

 Accepted Answer

Since I add the noise just once a priori to the optimization, my objective function is still deterministic, right?
Right, but why do you add noise to your measurement data ? Aren't they noisy enough already ?
I just wanted to double-check that because, at least I read about that, objective functions including noise are better handled by derivative-free optimizers like patternsearch.
Stochastic optimization (thus optimization with an objective with random outputs) isn't possible with any tool from the optimization toolbox.

5 Comments

Right, but why do you add noise to your measurement data ? Aren't they noisy enough already ?
Because d^exp is generated numerically (so far).
Stochastic optimization (thus optimization with an objective with random outputs) isn't possible with any tool from the optimization toolbox.
Here, it is stated that patternsearch is appropriate to minmize stochastic objective functions.
Here, it is stated that patternsearch is appropriate to minmize stochastic objective functions.
Maybe. I'm still not sure from the description of the example whether the noise added to the function varies from iteration to iteration or if it is imposed only once at the beginning and remains constant during the optimization. In this case, I'd also classify the example as "deterministic".
The example in Examples/R2022b/globaloptim/stochasticOpt/smoothFcn.m does add noise per-call, not once before the fitting.
I just wanted to double-check that because, at least I read about that, objective functions including noise are better handled by derivative-free optimizers like patternsearch.
Just to add to the statement above: The measurement data (d^exp) can be noisy. The main requirement for the use of conventional deterministic optimizers is that the fitting function (d^sim) is a smooth function of the fitting parameters and the independent variable.

Sign in to comment.

More Answers (0)

Asked:

on 3 Mar 2023

Edited:

on 4 Mar 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!