Optimize Expected value of noisy data (stochastic aproximation)

178 Views Asked by At

I have a simulation that gives me noisy/stochastic data for every vector of parameters I put into it. So for the simulation data we can consider a function: $$ F(\theta ,\xi ) $$

where $\theta$ is our parameter vector and $\xi$ is a random variable. Now I want to optimize the parameters $\theta$ for the expected value: $$ f(\theta) = \mathbf{E}\left [ F(\theta ,\xi ) \right ] $$ $$\theta_{min} = argmin(f(\theta)) $$

I thought about using a simplex algorithm and for each data point I could run a monte carlo simulation which gives me the expected value of any point in the parameter space. But since each simulation run can take more than 10 sec this isn't a feasible method.

Please tell my if this is acceptable from a mathematical point of view at least!

In a paper I read a method used for this type of problems is "stochastic aproximation" AMONG OTHERS.

So my question is what are these other methods to solve such a optimization problem and what method/algorithm is actually used in practice for my example and perhaps even available in software like matlab or python?

1

There are 1 best solutions below

3
On

One general approach is to run simulations for a variety of values of $\theta$ and treat the resulting observed outputs $\hat{F}(\theta_1;\epsilon_1),\dots, \hat{F}(\theta_N; \epsilon_N)$ as a random sample. Fit a regression function (typically not linear, but preferably smooth and ideally convex), then find the optimal value $\theta^*$ of the fitted function. Some people will then design a new experiment, with $\theta$ values clustered around $\theta^*$ and less disperse than the orginal $theta$ sample, and repeat ad nauseum.

Techniques like this are frequently treated in text books on simulation. A good search phrase to use is "response surface methodology". Wikipedia entry: https://en.wikipedia.org/wiki/Response_surface_methodology.